00001 /*========================================================================= 00002 UberSim Source Code Release 00003 ------------------------------------------------------------------------- 00004 Copyright (C) 2002 Manuela Veloso, Brett Browning, Mike Bowling, 00005 James Bruce; {mmv, brettb, mhb, jbruce}@cs.cmu.edu 00006 Erick Tryzelaar {erickt}@andrew.cmu.edu 00007 School of Computer Science, Carnegie Mellon University 00008 ------------------------------------------------------------------------- 00009 This software is distributed under the GNU General Public License, 00010 version 2. If you do not have a copy of this licence, visit 00011 www.gnu.org, or write: Free Software Foundation, 59 Temple Place, 00012 Suite 330 Boston, MA 02111-1307 USA. This program is distributed 00013 in the hope that it will be useful, but WITHOUT ANY WARRANTY, 00014 including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00015 -------------------------------------------------------------------------*/ 00016 00017 #ifndef __SIM_EVENT_H__ 00018 #define __SIM_EVENT_H__ 00019 00026 #include "Vector3.h" 00027 #include "Matrix33.h" 00028 00029 class Event 00030 { 00031 public: 00032 Event (); 00033 virtual ~Event (); 00034 int ID; 00035 unsigned int syncIndex; 00036 }; 00037 00038 class FrameEvent : public Event 00039 { 00040 }; 00041 00042 class KickerEvent : public Event 00043 { 00044 public: 00045 KickerEvent (const bool isEnabled); 00046 00047 public: 00048 bool isEnabled; 00049 }; 00050 00051 class DribblerEvent : public Event 00052 { 00053 public: 00054 DribblerEvent (const bool isEnabled); 00055 00056 public: 00057 bool isEnabled; 00058 }; 00059 00060 class PositionEvent : public Event 00061 { 00062 public: 00063 PositionEvent (const Vector3& position); 00064 00065 public: 00066 Vector3 position; 00067 }; 00068 00069 class RotationEvent : public Event 00070 { 00071 public: 00072 RotationEvent (const Matrix33& rotation); 00073 00074 public: 00075 Matrix33 rotation; 00076 }; 00077 00078 class VelocityEvent : public Event 00079 { 00080 public: 00081 VelocityEvent (const Vector3& linearVelocity, const Vector3& angularVelocity); 00082 00083 public: 00084 Vector3 linearVelocity; 00085 Vector3 angularVelocity; 00086 }; 00087 00088 class MoleculeStopEvent : public Event 00089 { 00090 public: 00091 MoleculeStopEvent (); 00092 }; 00093 00094 class MoleculeAtomizeEvent : public Event 00095 { 00096 public: 00097 MoleculeAtomizeEvent (); 00098 }; 00099 00100 class LegLinkEvent : public Event 00101 { 00102 public: 00103 LegLinkEvent (); 00104 }; 00105 00106 class ServoMotorStopEvent : public Event 00107 { 00108 public: 00109 ServoMotorStopEvent (); 00110 }; 00111 00112 class ServoMotorTargetPositionEvent : public Event 00113 { 00114 public: 00115 ServoMotorTargetPositionEvent (const int targetPosition); 00116 00117 public: 00118 int targetPosition; 00119 }; 00120 00121 class ServoMotorTargetVelocityEvent : public Event 00122 { 00123 public: 00124 ServoMotorTargetVelocityEvent (const int targetVelocity); 00125 00126 public: 00127 int targetVelocity; 00128 }; 00129 00130 00131 #endif