aboutsummaryrefslogtreecommitdiff
path: root/sons_of_sol/ControlMotionEvent.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'sons_of_sol/ControlMotionEvent.hpp')
-rw-r--r--sons_of_sol/ControlMotionEvent.hpp65
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_ */