AnimaL |
Tutorial |
Documentation |
00001 00002 // viewer.h // 00004 00005 #ifndef VIEWER_H 00006 #define VIEWER_H 00007 00008 #include <list> 00009 #include <QGLViewer/qglviewer.h> 00010 #include <animal/picking.h> 00011 00012 #include "viewerQt.h" 00013 00014 class MainController; 00015 00016 namespace X3DTK{ 00017 namespace Qt{ 00018 00020 class Viewer : public QGLViewer 00021 { 00022 public: 00024 Viewer(); 00026 Viewer(QWidget* q, const char * c); 00028 ~Viewer(); 00029 00031 void viewAll(); 00032 00034 void updateFrustum(); 00035 00037 void init(); 00038 00043 bool viewCapture(); 00044 00046 void drawAfterAnimation(); 00047 00055 bool mpeg2encode(); 00056 00059 bool xvidcap(); 00060 00061 //---------------------- Setters ----------------------------------------- 00062 00064 void setMainController(::MainController * mainController); 00065 00069 bool setSnapshot(bool b); 00070 00073 void setSnapshotFilename(QString s); 00074 00076 void setVideoName(QString); 00077 00079 enum video_mode{ 00080 ANIMATION=0, 00082 DISPLAY=1, 00084 SCREEN=2 00085 }; 00087 void setVideoMode(video_mode mode) 00088 { videoMode = mode;} 00089 00090 00091 //---------------------- End - Setters ---------------------------------- 00092 00093 //---------------------- Getters ----------------------------------------- 00094 00096 ::MainController * getMainController(){ return mainController; } 00097 00099 ViewerQt * getViewerGUI(){ return viewerGUI; } 00100 00102 bool getSnapshot(){ return snapshot; } 00103 00105 QString getVideoName(); 00106 00108 video_mode getVideoMode(){return videoMode;} 00109 00110 //---------------------- End - Getters ------------------------------------ 00111 00112 protected : 00113 00115 virtual void draw(); 00116 00121 virtual void postDraw(); 00122 00124 QString helpString() const; 00125 00126 //-----------Mouse and key board events------------- 00128 virtual void keyPressEvent(QKeyEvent *e); 00130 virtual void keyReleaseEvent(QKeyEvent *e); 00132 virtual void mouseDoubleClickEvent(QMouseEvent * e); 00134 virtual void mouseMoveEvent(QMouseEvent * e); 00136 virtual void mousePressEvent(QMouseEvent * e); 00138 virtual void mouseReleaseEvent(QMouseEvent * e); 00139 //----------- End Mouse and key board events---------- 00140 00141 protected://Members 00143 ::MainController * mainController; 00144 00146 ViewerQt * viewerGUI; 00147 00149 bool snapshot; 00150 00157 QString snapshotFilename; 00158 00160 int snapshotCounter; 00161 00165 QString snapshotFormat; 00166 00171 video_mode videoMode; 00172 00173 // ---------- FF: picking ----------------------------- 00175 typedef enum { MOVE_CAMERA, SELECT_OBJECT } InteractionMode; 00176 00178 InteractionMode interactionMode; 00179 00181 typedef std::list<animal::ConstrainedItem*> ItemList; 00182 00184 ItemList manipulatedObjects; 00185 00187 animal::ConstrainedItem* selectedPoint; 00188 00189 // ---------- end FF: picking ----------------------------- 00190 }; 00191 00192 }// Qt 00193 }// X3DTK 00194 00195 #endif