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