00001 #ifndef __MountedCameraController__ 00002 #define __MountedCameraController__ 00003 00004 #include "ICameraController.h" 00005 #include "OSGCanvas.h" 00006 #include "util.h" 00007 #include "math.h" 00008 00009 00010 #define VIEWPOINTDISTANCE 100 00011 00012 00031 class MountedCameraController : public ICameraController { 00032 public: 00033 00034 enum { 00035 STANDBY, 00036 ROTATION, 00037 PANNING, 00038 ZOOM 00039 }; 00040 00041 MountedCameraController(ICameraManipulator* cameraManipulator, OSGCanvas* canvas); 00042 00043 00044 ICameraManipulator* getCameraManipulator(); 00045 void setCameraManipulator(ICameraManipulator* cameraManipulator); 00046 00047 00048 void enable(int x, int y); 00049 void disable(); 00050 00051 bool isEnabled(); 00052 00053 void onMouseLeftUp(int x, int y); 00054 void onMouseLeftDown(int x, int y); 00055 00056 void onMouseMiddleUp(int x, int y); 00057 void onMouseMiddleDown(int x, int y); 00058 00059 void onMouseRightUp(int x, int y); 00060 void onMouseRightDown(int x, int y); 00061 00062 void onMouseMove(int x, int y); 00063 void onMouseWheel(int x, int y, int d); 00064 00065 void onKeyDown(int key); 00066 void onKeyUp(int key); 00067 00068 protected: 00069 00070 void setState(int state, int x, int y); 00071 00072 00073 int _mouseX, 00074 _mouseY; 00075 int _state; 00076 00077 bool _enabled; 00078 00079 ICameraManipulator* _cameraManipulator; 00080 OSGCanvas* _canvas; 00081 }; 00082 00083 #endif