#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_textures; QVector m_drawList; BoundingBox m_boundings; void loadTexture(QString filePath, QString fileName); void clearData(); public slots: void loadFile(QString filePath); void drawGeometry(QOpenGLShaderProgram *program); signals: void requestResetView(); void sendMessage(QString message, int severity); void requestUpdate(); void sendFileInfo(QString name, QStringList textures, int vertices, int triangle); };