#pragma once #ifndef _VIEWERWIDGET_HPP_ #define _VIEWERWIDGET_HPP_ #include #include #include #include #include #include #include #include class Model; class ViewerWidget : public QGLWidget { Q_OBJECT QString currentFile; QTimer timer; GameWorld* gworld; GameObject* dummyObject; quint16 currentObjectID; Model* _lastModel; Animation* canimation; float viewDistance; glm::vec2 viewAngles; bool dragging; QPointF dstart; glm::vec2 dastart; DrawBuffer* _frameWidgetDraw; GeometryBuffer* _frameWidgetGeom; void drawFrameWidget(ModelFrame* f, const glm::mat4& = {}); public: ViewerWidget(QWidget* parent = 0, const QGLWidget* shareWidget = 0, Qt::WindowFlags f = 0); virtual void initializeGL(); virtual void resizeGL(int w, int h); virtual void paintGL(); Model *currentModel() const; GameWorld* world(); public slots: void showItem(qint16 item); void exportModel(); void dataLoaded(GameWorld* world); signals: void fileOpened(const QString& file); void modelChanged(Model* model); protected: virtual void mousePressEvent(QMouseEvent*); virtual void mouseReleaseEvent(QMouseEvent*); virtual void mouseMoveEvent(QMouseEvent*); virtual void wheelEvent(QWheelEvent*); }; #endif