00001 #ifndef __MainFrame__ 00002 #define __MainFrame__ 00003 00004 #include "TerrainEditor.h" 00005 #include "IController.h" 00006 #include "OsgCanvas.h" 00007 #include "Renderer.h" 00008 #include "PreviewRenderer.h" 00009 00010 #include <osg/Node> 00011 #include <map> 00012 00013 using namespace std; 00014 00015 00016 00017 class MainFrame : public MainFrameBase { 00018 public: 00019 MainFrame(IController* controller, wxWindow* parent); 00020 ~MainFrame(); 00021 00022 void onIdle(wxIdleEvent& event); 00023 00024 void onOpen(wxCommandEvent& event); 00025 void onExit(wxCommandEvent& event); 00026 00027 void onToolNormal(wxCommandEvent& event); 00028 void onToolSelect(wxCommandEvent& event); 00029 void onToolRotate(wxCommandEvent& event); 00030 void onToolTranslate(wxCommandEvent& event); 00031 void onToolScale(wxCommandEvent& event); 00032 void onToolDelete(wxCommandEvent& event); 00033 void onToolNVToggle(wxCommandEvent& event); 00034 void OnAbout(wxCommandEvent& event); 00035 00036 void onToolModelPanel(wxCommandEvent& event); 00037 void toggleShowModelPreview(wxCommandEvent& event); 00038 00039 void setModels(map<string, osg::ref_ptr<osg::Node>>& models); 00040 void onImportXMLScene(wxCommandEvent& event ); 00041 void onEmportXMLScene(wxCommandEvent& event ); 00042 00043 void updateCanvas(wxSizeEvent& event); 00044 00045 void onFullscreen(wxCommandEvent& event); 00046 void onNightvisionMode(wxCommandEvent& event); 00047 00048 void onModelsListDoubleClick(wxCommandEvent& event); 00049 void onModelsListClick(wxCommandEvent& event); 00050 void doRightButtonUp(); 00051 00052 Renderer* getRenderer(); 00053 PreviewRenderer* getPreviewRenderer(); 00054 00055 OSGCanvas* getCanvas(); 00056 00057 protected: 00058 IController* _controller; 00059 00060 OSGCanvas* _canvas; 00061 wxGraphicsWindow* _graphicsWindow; 00062 Renderer* _renderer; 00063 00064 OSGCanvas* _previewCanvas; 00065 wxGraphicsWindow* _previewGraphicsWindow; 00066 PreviewRenderer* _previewRenderer; 00067 00068 private: 00069 AboutDialog *about; 00070 00071 bool _modelPanelVisible; 00072 int _modelPanelSashPosition; 00073 00074 bool _modelPreviewVisible; 00075 int _modelPreviewSashPosition; 00076 bool _revertToInvisibleSidePanel; 00077 }; 00078 00079 #endif