ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef QTOPENGL_MAIN_WINDOW_H 00008 #define QTOPENGL_MAIN_WINDOW_H 00009 00010 namespace argos { 00011 class CQTOpenGLMainWindow; 00012 class CQTOpenGLWidget; 00013 class CQTOpenGLLogStream; 00014 class CQTOpenGLUserFunctions; 00015 } 00016 00017 class QMainWindow; 00018 class QWidget; 00019 class QHBoxLayout; 00020 class QPushButton; 00021 class QLCDNumber; 00022 class QStatusBar; 00023 class QDockWidget; 00024 class QTextEdit; 00025 class QButtonGroup; 00026 class QSpinBox; 00027 class QDoubleSpinBox; 00028 class QActionGroup; 00029 00030 #include <argos3/core/utility/configuration/argos_configuration.h> 00031 #include <argos3/core/simulator/visualization/visualization.h> 00032 #include <QMainWindow> 00033 00034 namespace argos { 00035 00036 class CQTOpenGLMainWindow : public QMainWindow { 00037 00038 Q_OBJECT 00039 00040 public: 00041 00042 CQTOpenGLMainWindow(TConfigurationNode& t_tree); 00043 virtual ~CQTOpenGLMainWindow(); 00044 00045 inline CQTOpenGLWidget& GetOpenGLWidget() { 00046 return *m_pcOpenGLWidget; 00047 } 00048 00049 inline const QString& GetIconDir() const { 00050 return m_strIconDir; 00051 } 00052 00053 inline const QString& GetTextureDir() const { 00054 return m_strTextureDir; 00055 } 00056 00057 private: 00058 00059 void ReadSettingsPreCreation(); 00060 void ReadSettingsPostCreation(); 00061 void WriteSettings(); 00062 00063 void CreateSimulationActions(); 00064 void CreateCameraActions(); 00065 void CreatePOVRayActions(); 00066 void CreateHelpActions(); 00067 00068 void CreateSimulationToolBar(); 00069 void CreateSimulationMenu(); 00070 void CreateCameraToolBar(); 00071 void CreateCameraMenu(); 00072 void CreatePOVRayMenu(); 00073 void CreateHelpMenu(); 00074 00075 void CreateOpenGLWidget(TConfigurationNode& t_tree); 00076 00077 void CreateLogMessageDock(); 00078 00079 void CreateConnections(); 00080 00081 CQTOpenGLUserFunctions* CreateUserFunctions(TConfigurationNode& t_tree); 00082 00083 virtual void closeEvent(QCloseEvent* pc_event); 00084 00085 signals: 00086 00087 void CameraSwitched(int); 00088 void SimulationReset(); 00089 00090 public slots: 00091 00092 void StopSimulation(); 00093 void SimulationCanProceed(bool); 00094 void SimulationDone(); 00095 void ResetSimulation(); 00096 void CameraXMLPopUp(); 00097 QString GetCameraXMLData(); 00098 // void POVRaySceneXMLPopUp(); 00099 // QString GetPOVRaySceneXMLData(); 00100 // void POVRayScenePreview(); 00101 void SwitchCamera(QAction*); 00102 00103 private: 00104 00105 CQTOpenGLWidget* m_pcOpenGLWidget; 00106 QString m_strIconDir; 00107 QString m_strTextureDir; 00108 00109 QAction* m_pcPlayAction; 00110 QAction* m_pcStepAction; 00111 QAction* m_pcFastForwardAction; 00112 QAction* m_pcResetAction; 00113 QAction* m_pcCaptureAction; 00114 QAction* m_pcQuitAction; 00115 QSpinBox* m_pcDrawFrameEvery; 00116 QLCDNumber* m_pcCurrentStepLCD; 00117 QToolBar* m_pcSimulationToolBar; 00118 QMenu* m_pcSimulationMenu; 00119 00120 QAction* m_pcToggleAntiAliasingAction; 00121 QAction* m_pcShowCameraXMLAction; 00122 QList<QAction*> m_pcSwitchCameraActions; 00123 QActionGroup* m_pcSwitchCameraActionGroup; 00124 QDoubleSpinBox* m_pcFocalLength; 00125 QToolBar* m_pcCameraToolBar; 00126 QMenu* m_pcCameraMenu; 00127 00128 QAction* m_pcPOVRayXMLAction; 00129 QAction* m_pcPOVRayPreviewAction; 00130 QMenu* m_pcPOVRayMenu; 00131 00132 QAction* m_pcAboutQTAction; 00133 QMenu* m_pcHelpMenu; 00134 00135 QStatusBar* m_pcStatusbar; 00136 00137 QDockWidget* m_pcLogDock; 00138 QDockWidget* m_pcLogErrDock; 00139 QTextEdit* m_pcDockLogBuffer; 00140 QTextEdit* m_pcDockLogErrBuffer; 00141 CQTOpenGLLogStream* m_pcLogStream; 00142 CQTOpenGLLogStream* m_pcLogErrStream; 00143 00144 bool m_bWasLogColored; 00145 00146 CQTOpenGLUserFunctions* m_pcUserFunctions; 00147 }; 00148 00149 } 00150 00151 #endif