00001 00011 #ifndef __TVU_SCENARIO_H__ 00012 #define __TVU_SCENARIO_H__ 00013 00014 #ifndef __TVU_TYPESDEF_H__ 00015 #include "tvu_typesdef.h" 00016 #endif 00017 00018 #ifndef __TVU_VISU3D_APPLICATION_H__ 00019 #include "tvu_visu3d.application.h" 00020 #endif 00021 /*========================================================*/ 00022 00023 #define CLASSNAME_SCENARIO "Scenario" 00024 #define CLASSNAME_SCENARIO_ID 10500 00025 00026 #define ENAME_SCENARIO_ACTORS "actors" 00027 #define ENAME_SCENARIO_ACTIONS "behaviors" 00028 #define ENAME_SCENARIO_STARTTIME "start_time" 00029 #define ENAME_SCENARIO_STOPTIME "stop_time" 00030 #define ENAME_SCENARIO_CHILDREN "sub_scenarios" 00031 00032 class CTHumanBody; 00033 /*--------------------------------------------------------*/ 00035 class CTScenario : public CTReferableObject 00036 { 00037 public: 00039 CTScenario(); 00040 virtual ~CTScenario() { Delete(); }; 00041 DEFINE_ID_FUNCTIONS(CTScenario, CTReferableObject, CLASSNAME_SCENARIO_ID, CLASSNAME_SCENARIO) 00042 public: 00044 virtual CTList GetSaveLoadObjects(TBOOL bOnLoad = TTRUE); 00046 virtual TBOOL BuildObject(); 00048 virtual TBOOL IsWellConstructed(); 00050 virtual TBOOL ReferTo(CTReferableObject* lpObject); 00052 CTHumanBody* GetActor(TLPCSTR lpName); 00053 public: 00055 CTScenario* GetSubScenario(TLPCSTR lpName); 00056 public: 00058 virtual TBOOL Init(); 00060 virtual TBOOL Display(TINT tTime, THFILE lpDevice = TNULL); 00062 virtual TBOOL Execute(TINT tTime); 00064 virtual void SetSpeed(TINT Speed); 00065 public: 00067 virtual void Delete(); 00068 public: 00070 virtual CTScenario& operator = (CTScenario& AScenario); 00071 public: 00073 CTList GetNamesActors(){ return m_NamesActors; }; 00074 00075 CTList GetChildren(){ return m_Children; }; 00076 00077 CTInt& GetStartTime() { return m_StartTime; }; 00078 CTInt& GetStopTime() { return m_StopTime; }; 00079 protected: 00081 CTInt m_StartTime; 00082 CTInt m_StopTime; 00083 00084 00085 CTList m_NamesActors; 00086 00087 CTList m_Actions; 00089 CTList m_Children; 00091 CTList m_Actors; 00093 CTScenario* m_Parent; 00094 }; 00096 typedef CTScenario* LPCTScenario; 00097 /*========================================================*/ 00098 #endif