00001 00010 #ifndef GRABNAVINT_H 00011 #define GRABNAVINT_H 00012 00013 // Gluebase includes 00014 #define OUTSIDE_GLUE_CORE 00015 #include <fsa/fsa.H> 00016 #include <mlib/points.H> 00017 #include <dev/room6d.H> 00018 #include <dev/buttons.H> 00019 #include <config/config.H> 00020 #include <std/hash.H> 00021 00022 #include "DrawPoint.H" 00023 00024 namespace InSpace { 00025 00026 class GrabNavInt : public Interactor<GrabNavInt> 00027 { 00028 public: 00029 00030 GrabNavInt(); 00031 virtual ~GrabNavInt() {} 00032 00033 protected: 00034 00035 00036 void start_grab(cEVENTbtnptr &evt, STATE *&); 00037 void motion(cEVENTroom6dptr &evt, STATE *&); 00038 void end_grab(cEVENTbtnptr &evt, STATE *&); 00039 00040 void start_scale(cEVENTbtnptr &evt, STATE *&); 00041 void scale_rhand(cEVENTroom6dptr &evt, STATE *&); 00042 void scale_lhand(cEVENTroom6dptr &evt, STATE *&); 00043 void end_scale(cEVENTbtnptr &evt, STATE *&); 00044 void scale_stuff(); 00045 00046 00047 STATE _moving; 00048 STATE _scaling; 00049 00050 EVENTroom6dptr _tracker; 00051 EVENTroom6dptr _stracker; 00052 00053 EVENTbtnptr _grabbtnon; 00054 EVENTbtnptr _grabbtnoff; 00055 EVENTbtnptr _scalebtnon; 00056 EVENTbtnptr _scalebtnoff; 00057 00058 DrawPoint *_rotPointMarker; 00059 00060 bool _lhandValid; 00061 bool _rhandValid; 00062 Wtransf _lhand; 00063 Wtransf _rhand; 00064 double _initialHandDist; 00065 Wtransf _initialXform; 00066 00067 ARRAY<Wtransf> _objInitialXforms; 00068 00069 }; 00070 00071 } 00072 #endif