nuclear@73: #ifndef GOATVIEW_H_ nuclear@73: #define GOATVIEW_H_ nuclear@73: nuclear@75: #include nuclear@73: #include nuclear@73: #include nuclear@74: #include "goat3d.h" nuclear@85: #include "scenemodel.h" nuclear@74: nuclear@88: void post_redisplay(); nuclear@88: nuclear@74: extern goat3d *scene; nuclear@73: nuclear@82: class GoatViewport; nuclear@76: nuclear@73: class GoatView : public QMainWindow { nuclear@83: private: nuclear@73: Q_OBJECT nuclear@83: nuclear@82: GoatViewport *glview; nuclear@85: QTreeView *treeview; nuclear@85: SceneModel *scene_model; nuclear@82: nuclear@75: void closeEvent(QCloseEvent *ev); nuclear@73: bool make_menu(); nuclear@73: bool make_dock(); nuclear@73: bool make_center(); nuclear@73: nuclear@73: private slots: nuclear@73: void open_scene(); nuclear@73: void open_anim(); nuclear@73: nuclear@73: public: nuclear@73: GoatView(); nuclear@73: ~GoatView(); nuclear@82: nuclear@82: bool load_scene(const char *fname); nuclear@83: nuclear@83: void show_about(); nuclear@73: }; nuclear@73: nuclear@73: class GoatViewport : public QGLWidget { nuclear@82: private: nuclear@73: Q_OBJECT nuclear@82: nuclear@82: QWidget *main_win; nuclear@82: bool initialized; nuclear@82: nuclear@73: public: nuclear@82: GoatViewport(QWidget *main_win); nuclear@73: ~GoatViewport(); nuclear@73: nuclear@73: QSize sizeHint() const; nuclear@73: nuclear@73: void initializeGL(); nuclear@73: void resizeGL(int xsz, int ysz); nuclear@73: void paintGL(); nuclear@78: nuclear@83: void toggle_lighting(); nuclear@83: nuclear@78: void mousePressEvent(QMouseEvent *ev); nuclear@78: void mouseMoveEvent(QMouseEvent *ev); nuclear@73: }; nuclear@73: nuclear@73: #endif // GOATVIEW_H_