00001
00010 #ifndef DEV2DTODEV6D_H
00011 #define DEV2DTODEV6D_H
00012
00013
00014 #define OUTSIDE_GLUE_CORE
00015 #include <fsa/fsa.H>
00016 #include <dev/buttons.H>
00017 #include <dev/dev2d.H>
00018 #include <dev/room6d.H>
00019 #include <config/config.H>
00020 #include <mlib/points.H>
00021
00022
00023 class Dev2dToDev6d : public Interactor<Dev2dToDev6d>
00024 {
00025 public:
00026
00027 Dev2dToDev6d(str_ptr dev2d, str_ptr z_button, str_ptr rotx_button,
00028 str_ptr roty_button, str_ptr rotz_button, str_ptr dev6d,
00029 int clampPosToRoom);
00030 virtual ~Dev2dToDev6d();
00031
00032 protected:
00033
00034 int outsideRoom(Wpt p);
00035
00036 void motion(cEVENT2dptr &evt, STATE* &next);
00037 void z_on(cEVENTbtnptr &evt, STATE *&);
00038 void z_off(cEVENTbtnptr &evt, STATE *&);
00039 void z_motion(cEVENT2dptr &evt, STATE* &next);
00040 void rotx(cEVENTbtnptr &evt, STATE *&);
00041 void roty(cEVENTbtnptr &evt, STATE *&);
00042 void rotz(cEVENTbtnptr &evt, STATE *&);
00043
00044 EVENT2dptr _dev2d;
00045 EVENTbtnptr _zbtnon;
00046 EVENTbtnptr _zbtnoff;
00047 EVENTbtnptr _rotx;
00048 EVENTbtnptr _roty;
00049 EVENTbtnptr _rotz;
00050
00051 STATE _changeZ;
00052
00053 DEVice_room6d *_tracker;
00054 Wtransf _trans, _rot;
00055 int _clamp;
00056 double _rotangle;
00057
00058 };
00059
00060
00061 #endif