00001 00010 #ifndef MOUSEINT_H 00011 #define MOUSEINT_H 00012 00013 #include "DrawPoint.H" 00014 00015 // gluebase includes 00016 #define OUTSIDE_GLUE_CORE 00017 #include <fsa/fsa.H> 00018 #include <dev/buttons.H> 00019 #include <dev/dev2d.H> 00020 #include <config/config.H> 00021 #include <mlib/points.H> 00022 00023 namespace InSpace { 00024 00025 class MouseNav : public Interactor<MouseNav> 00026 { 00027 public: 00028 00029 MouseNav(); 00030 virtual ~MouseNav(); 00031 00032 protected: 00033 00034 void nav_on(cEVENTbtnptr &evt, STATE *&); 00035 void nav_off(cEVENTbtnptr &evt, STATE *&); 00036 void nav_motion(cEVENT2dptr &evt, STATE* &next); 00037 00038 // nav motion will set the state so that one of these is called.. 00039 void pan_motion(cEVENT2dptr &evt, STATE *&); 00040 void dolly_motion(cEVENT2dptr &evt, STATE *&); 00041 void trackball_motion(cEVENT2dptr &evt, STATE *&); 00042 00043 EVENT2dptr _mouse2d; 00044 EVENTbtnptr _navbtnon; 00045 EVENTbtnptr _navbtnoff; 00046 00047 STATE _limbo; 00048 STATE _pan; 00049 STATE _dolly; 00050 STATE _trackballrotate; 00051 00052 double _dollyFactor; 00053 00054 DrawPoint *_rotPointMarker; 00055 00056 float _tballActiveDist; 00057 }; 00058 00059 } 00060 #endif