00001 #ifndef IPSA_VIEWER_H
00002 #define IPSA_VIEWER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00031 #include "../IPSA.h"
00032
00033 #if (defined(WIN32) && defined(USE_SOWIN))
00034 #include <Inventor/Win/SoWin.h>
00035 #include <Inventor/Win/viewers/SoWinExaminerViewer.h>
00036 #define SO_WINDOW HWND
00037 #define SO_PLATFORM SoWin
00038 #define SO_EXAMINER_VIEWER SoWinExaminerViewer
00039 #define SO_FULL_VIEWER SoWinFullViewer
00040 #else
00041 #include <Inventor/Qt/SoQt.h>
00042 #include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
00043 #define SO_WINDOW QWidget*
00044 #define SO_PLATFORM SoQt
00045 #define SO_EXAMINER_VIEWER SoQtExaminerViewer
00046 #define SO_FULL_VIEWER SoQtFullViewer
00047 #endif
00048
00049 #include <string>
00050
00051 class SbPlist;
00052
00053 #ifndef USE_SOWIN
00054 class QPushButton;
00055 class IpsaDialog;
00056 #endif // USE_SOWIN
00057
00058 class IpsaSimulator;
00059
00060 class IPSA_VIEWER_IMPORT_EXPORT IpsaViewer :
00061 #ifndef USE_SOWIN
00062 public QObject,
00063 #endif
00064 public SO_EXAMINER_VIEWER
00065 {
00066 #ifndef USE_SOWIN
00067 Q_OBJECT
00068 #endif // USE_SOWIN
00069 public:
00070 IpsaViewer(std::string filename = "", SO_WINDOW parent = NULL, const char* name = "IPSA Viewer", SbBool embed = TRUE);
00071 virtual ~IpsaViewer();
00072
00073 bool run(bool doSchedule = false, std::string scenerySaveFile = "");
00074
00075 void setVerbosity(bool verbosityOn = true);
00076 bool getVerbosity();
00077
00078 void setSceneryFilename(const std::string& newFile);
00079
00080 bool isScheduled();
00081
00082 #ifndef USE_SOWIN
00083 public slots:
00084 #endif // USE_SOWIN
00085 void schedule();
00086 void showDialog();
00087 void reloadSimulation();
00088 void resetSimulation();
00089 void saveSceneToFile();
00090
00091 protected:
00092 virtual void createViewerButtons(SO_WINDOW parent, SbPList* buttonlist);
00093
00094 #ifndef USE_SOWIN
00095 QPushButton* scheduleButton;
00096 IpsaDialog* dialog;
00097 #endif // USE_SOWIN
00098
00099 protected:
00100 SO_WINDOW window;
00101 std::string saveFile;
00102 IpsaSimulator* ipsaSimulator;
00103 };
00104
00105 #endif