00001 #ifndef __main__
00002 #define __main__
00003
00004 #include <osg/Node>
00005 #include <wx/wx.h>
00006 #include <wx/progdlg.h>
00007 #include <wx/splash.h>
00008 #include <osgDB/ReadFile>
00009 #include "util.h"
00010 #include "IController.h"
00011 #include "MainFrame.h"
00012 #include "SceneManager.h"
00013 #include "IToolController.h"
00014 #include "IContextMenuController.h"
00015 #include "CameraManipulator.h"
00016 #include "FreeformCameraController.h"
00017 #include "MountedCameraController.h"
00018 #include "XMLIO.h"
00019 #include "SelectToolController.h"
00020 #include "TranslationToolController.h"
00021 #include "RotationToolController.h"
00022 #include "ScaleToolController.h"
00023 #include "ContextMenuController.h"
00024 #include "InsertObjectController.h"
00025
00026
00027
00028 class App: public wxApp, IController {
00029 public:
00030
00031
00032
00033 App();
00034 ~App();
00035
00036 virtual bool OnInit();
00037 virtual int OnExit();
00038
00039 void preloadData(wxProgressDialog* progressDialog);
00040
00041
00042
00043
00044 void onOpen();
00045 void onExit();
00046
00047 void onNoTool();
00048 void onSelectTool();
00049 void onRotationTool();
00050 void onTranslationTool();
00051 void onScaleTool();
00052 void onInsertTool(osg::Node* model, const char* fileName);
00053
00054 void onInsertSceneObject(const char* fileName);
00055 void onModelPreview(const char* fileName);
00056
00057 void onImportXMLScene();
00058 void onEmportXMLScene();
00059
00060 void onCanvasMouseLeftUp(int x, int y);
00061 void onCanvasMouseLeftDown(int x, int y);
00062
00063 void onCanvasMouseMiddleUp(int x, int y);
00064 void onCanvasMouseMiddleDown(int x, int y);
00065
00066 void onCanvasMouseRightUp(int x, int y);
00067 void onCanvasMouseRightDown(int x, int y);
00068
00069 void onCanvasMouseMove(int x, int y);
00070 void onCanvasMouseWheel(int x, int y, int d);
00071
00072 void onCanvasKeyUp(int key);
00073 void onCanvasKeyDown(int key);
00074
00075 protected:
00076 XMLIO *_XMLParser;
00077
00078 ICameraController* _activeCameraController;
00079 IToolController* _activeToolController;
00080 IContextMenuController* _contextMenuController;
00081
00082 FreeformCameraController* _freeformCameraController;
00083 MountedCameraController* _mountedCameraController;
00084
00085 MainFrame* _mainFrame;
00086
00087 SceneManager& _sceneManager;
00088
00089 map<string, osg::ref_ptr<osg::Node>> _objectNodes;
00090
00091 bool _insertMode;
00092 };
00093
00094
00095 #endif