#pragma once #include "..\Header\FileInterface.h" #include #include #include #include #include #include struct DrawInformation { unsigned int offset; unsigned int size; unsigned int textureIndex; QMatrix4x4 modelMatrix; }; class GeometryEngine : public QObject, protected QOpenGLFunctions { Q_OBJECT public: GeometryEngine(QObject *parent = Q_NULLPTR); virtual ~GeometryEngine(); private: QOpenGLBuffer m_arrayBuf; QOpenGLBuffer m_indexBuf; QVector* m_materials = Q_NULLPTR; QVector m_drawList; BoundingBox m_boundings; void clearData(); public slots: void loadFile(QString filePath); void drawGeometry(QOpenGLShaderProgram *program, bool wireframe); signals: void requestResetView(); void sendMessage(QString message, int severity); void requestUpdate(); void sendFileInfo(QString name, QVector* materials, int vertices, int triangle); };