Main Page   Class Hierarchy   Data Structures   File List   Data Fields   Globals  

/lib/libtvuvisu3D/tvu_scenario_simulation.h

Go to the documentation of this file.
00001 
00011 #ifndef __TVU_SMSCENARIO_H__
00012 #define __TVU_SMSCENARIO_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_SMSCENARIO_ID          10900
00024 #define CLASSNAME_SMSCENARIO             "SMScenario"
00025 #define CLASSNAME_SMACTOR_ID             10901
00026 #define CLASSNAME_SMACTOR                "SMActor"
00027 #define CLASSNAME_SMPATH_ID              10902
00028 #define CLASSNAME_SMPATH                 "SMPath"
00029 #define CLASSNAME_SMSCENARIOHOLDER_ID    10903
00030 #define CLASSNAME_SMSCENARIOHOLDER       "SMScenarioHolder"
00031 
00032 #define ENAME_SM_SCENARIO_EXECUTE       "Execute"
00033 
00034 #define ENAME_SM_SCENARIO_ACTORS                "SActors"
00035 #define ENAME_SM_SCENARIO_SUBSCENARIOS  "SSubScenarios"
00036 #define ENAME_SM_SCENARIO_TIMEPOINTS    "STimePoints"
00037 #define ENAME_SM_SCENARIO_POSITIONS             "SPositions"
00038 
00039 #define ENAME_SM_SCENARIOHOLDER_START   "SStart"
00040 #define ENAME_SM_SCENARIOHOLDER_LOOPS   "SLoops"
00041 #define ENAME_SM_SCENARIOHOLDER_ACTORS  "SActorNames"
00042 
00043 #define ENAME_SM_ACTOR_PATHS                    "APaths"
00044 #define ENAME_SM_ACTOR_AUTONAME         "Auto"
00045 
00046 /*========================================================*/
00047 #define SM_REGISTER_ATTRIBUTE_CONSTRUCTOR(NameItem, class) \
00048     REGISTER_ATTRIBUTE_CONSTRUCTOR(CTSMScenario::m_ItemConstructors, NameItem, class)
00049 /*========================================================*/
00050 class CTSMScenario;
00051 class CTSMScenarioHolder;
00052 class CTSMActor;
00053 class CTSMPath;
00054 /*--------------------------------------------------------*/
00056 class CTSMScenario : public CTObject
00057 {
00058     public:
00060         CTSMScenario();
00061         ~CTSMScenario();
00063                 DEFINE_ID_FUNCTIONS(CTSMScenario, CTObject, CLASSNAME_SMSCENARIO_ID, CLASSNAME_SMSCENARIO)
00064         public:
00066                 virtual TBOOL   OnPreLoad(LPTBYTE* lpBuffers);
00067                 virtual TBOOL   OnPostLoad(LPTBYTE* lpBuffers);
00068                 virtual CTList  GetSaveLoadObjects(TBOOL bOnLoad = TTRUE);
00069         public:
00071                 virtual TBOOL Build(CTList EnvObjects);
00072                 virtual TBOOL BuildSubScenarios(CTList EnvObjects);
00074                 virtual TBOOL ReStart();
00077                 virtual CTList Execute();
00079                 virtual CTList Execute(CTList pActorNames);
00081                 virtual TBOOL IsTerminated();
00083                 virtual TINT GetStartTime() { return m_StartTime; };
00084                 virtual TINT GetStopTime() { return m_StopTime; };
00085                 virtual TINT GetDuration() { return m_StopTime - m_StartTime; } ;
00086         public:
00088                 CTSMScenario& operator = (CTSMScenario& Object);
00089     public:
00091                 TINT m_Time;
00092                 TINT m_StartTime, m_StopTime;
00094                 CTList m_Actors;
00096                 CTList m_SubScenarios;
00098                 CTList m_TimePoints;
00100                 CTList m_Positions;
00102                 TBOOL m_IsBuilt;
00103     public:
00105                 static TBOOL BuildNames();
00107                 static CTTree m_ItemConstructors;
00108                 CTTree m_OldItemConstructors;
00109                 TBOOL  m_OldNameMustBeRead;
00111                 static CTList m_AllActors;
00112                 static TINT   m_ActorID;
00113 };
00114 typedef CTSMScenario* LPCTSMScenario;
00115 /*--------------------------------------------------------*/
00116 class CTSMScenarioHolder : public CTObject
00117 {
00118     public:
00120         CTSMScenarioHolder();
00121         ~CTSMScenarioHolder();
00123                 DEFINE_ID_FUNCTIONS(CTSMScenarioHolder, CTObject, CLASSNAME_SMSCENARIOHOLDER_ID, CLASSNAME_SMSCENARIOHOLDER)
00124         public:
00126                 virtual CTList  GetSaveLoadObjects(TBOOL bOnLoad = TTRUE);
00128                 virtual TBOOL Build(CTList TimePoints);
00130                 virtual TBOOL ReStart();
00133                 virtual CTList Execute(TINT t);
00135                 virtual TBOOL IsTerminated(TINT t);
00137                 virtual TINT GetDuration() { return m_pScenario->GetDuration()*m_Loops.m_i; };
00138         public:
00140                 CTSMScenarioHolder& operator = (CTSMScenarioHolder& Object);
00141     public:
00142                 CTSMScenario* m_pScenario; 
00143                 CTSMScenario* m_pParentScenario; 
00144                 CTInt*        m_pStartTime; 
00145                 CTList        m_Actors; 
00146                 CTInt         m_Loops; 
00147                 CTString      m_StartTimeName; // Name of start time object
00148                 CTList        m_ActorNames; 
00149 };
00150 typedef CTSMScenarioHolder* LPCTSMScenarioHolder;
00151 /*--------------------------------------------------------*/
00152 class CTSMActor : public CTObject
00153 {
00154     public:
00156         CTSMActor();
00157         ~CTSMActor();
00159                 DEFINE_ID_FUNCTIONS(CTSMActor, CTObject, CLASSNAME_SMACTOR_ID, CLASSNAME_SMACTOR)
00160         public:
00161                 virtual CTList  GetSaveLoadObjects(TBOOL bOnLoad = TTRUE);
00162         public:
00164                 virtual TBOOL Build(CTList TimePoints, CTList Positions, CTList EnvObjects);
00167                 virtual CTPersonPipe* Execute(TINT t);
00169                 virtual CTSMPath* FindPath(TINT t);
00171                 virtual TINT GetStartTime();
00172                 virtual TINT GetStopTime();
00173         public:
00175                 CTSMActor& operator = (CTSMActor& Object);
00176     public:
00177                 CTList        m_Paths;
00178                 CTPersonPipe* m_Person;
00180                 static CTList m_AllPersonPipes;
00181                 static TINT   m_PersonID;
00182 };
00183 typedef CTSMActor* LPCTSMActor;
00184 /*--------------------------------------------------------*/
00185 class CTSMPath : public CTObject
00186 {
00187     public:
00189         CTSMPath();
00190         ~CTSMPath();
00192                 DEFINE_ID_FUNCTIONS(CTSMPath, CTObject, CLASSNAME_SMPATH_ID, CLASSNAME_SMPATH)
00193         public:
00194                 virtual TBOOL Load(LPTBYTE* lpBuffers);
00195         public:
00197                 virtual TBOOL Build(CTList TimePoints, CTList Positions, CTList EnvObjects);
00198         public:
00200                 CTSMPath& operator = (CTSMPath& Object);
00201     public:
00202                 CTInt*    m_StartTime;
00203                 CTObject* m_StartPos;
00204                 CTInt*    m_StopTime;
00205                 CTObject* m_StopPos;
00207                 CTList m_Points;
00208 };
00209 typedef CTSMPath* LPCTSMPath;
00210 /*========================================================*/
00211 #endif 

Generated at Wed Aug 6 15:58:58 2003 for TVU's libraries for video surveillance: by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001