diff options
Diffstat (limited to 'sons_of_sol/ControlMotionEvent.hpp')
| -rw-r--r-- | sons_of_sol/ControlMotionEvent.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/sons_of_sol/ControlMotionEvent.hpp b/sons_of_sol/ControlMotionEvent.hpp new file mode 100644 index 0000000..5a93a69 --- /dev/null +++ b/sons_of_sol/ControlMotionEvent.hpp @@ -0,0 +1,65 @@ +#ifndef CONTROLMOTIONEVENT_HPP_ +#define CONTROLMOTIONEVENT_HPP_ + +/* + * Author: jrahm + * created: 2013/11/01 + * ControlMotionEvent.hpp: <description> + */ + +/* This is the class used to + * signal an event from the controller. + * + * These values have been normalized */ +class ControlMotionEvent { +public: + enum MotionEventType { + NONE + , PITCH + , ROLL + , YAW + , THROTTLE + , STRAFE_SIDE + , STRAFE_UP + , FIRE_PRIMARY + }; + + enum MotionOrigin { + JOYSTICK, + MOUSE, + BUTTON + }; + + ControlMotionEvent( MotionEventType type, double mag, MotionOrigin origin ) : + mag( mag ), type( type ), origin( origin ) {} + + inline double getMagnitude() const { + return mag; + } + + inline MotionEventType getType() const { + return type; + } + + inline MotionOrigin getOrigin() const { + return origin; + } + + inline void setMagnitude( double mag ) { + this->mag = mag; + } + + inline void setType( MotionEventType type ) { + this->type = type; + } + + inline void setOrigin( MotionOrigin origin ) { + this->origin = origin; + } +private: + double mag; + MotionEventType type; + MotionOrigin origin; +}; + +#endif /* CONTROLMOTIONEVENT_HPP_ */ |