00001 #ifndef C_BASEOBJECTS__H 00002 #define C_BASEOBJECTS__H 00003 00004 class CStateModifier; 00005 class CStateProperties; 00006 class CStateCollection; 00007 class CState; 00008 class CAction; 00009 class CActionSet; 00010 class CActionData; 00011 class CActionDataSet; 00012 00013 #include <list> 00015 00017 class CActionObject 00018 { 00019 protected: 00020 CActionSet *actions; 00021 bool ownActionSet; 00022 public: 00023 CActionObject(CActionSet *actions, bool createNew = false); 00024 virtual ~CActionObject(); 00025 00026 CActionSet *getActions(); 00027 unsigned int getNumActions(); 00028 00029 }; 00030 00031 00033 00035 class CStateObject 00036 { 00037 protected: 00038 // The properties of the wanted statea 00039 CStateProperties *properties; 00040 public: 00041 CStateObject(CStateProperties *properties); 00042 00043 CStateProperties *getStateProperties(); 00044 00046 bool equalsModelProperties(CStateObject *object); 00047 00049 unsigned int getNumContinuousStates(); 00051 unsigned int getNumDiscreteStates(); 00052 }; 00053 00055 00056 class CStateModifiersObject : public CStateObject 00057 { 00058 protected: 00059 std::list<CStateModifier *> *modifiers; 00060 public: 00061 CStateModifiersObject(CStateProperties *modelState); 00062 CStateModifiersObject(CStateProperties *modelState, std::list<CStateModifier *> *modifiers); 00063 00064 virtual ~CStateModifiersObject(); 00065 00066 00067 virtual void addStateModifier(CStateModifier *modifier); 00068 virtual void addStateModifiers(std::list<CStateModifier *> *modifiers); 00069 00070 virtual void removeStateModifier(CStateModifier *modfier); 00071 00072 std::list<CStateModifier *> *getStateModifiers(); 00073 00074 }; 00075 00076 00077 #endif 00078