![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #if DtTENA 00008 00009 #ifndef DtTENAReflectedEntity_H_ 00010 #define DtTENAReflectedEntity_H_ 00011 00012 #include "tReflectedObj.h" 00013 #include "globalObjDes.h" 00014 #include "entitySR.h" 00015 00019 00020 class DT_DLL_VL DtExerciseConn; 00021 class DT_DLL_VL DtReflectedEntity; 00022 class DT_DLL_VL DtEntityStateDecoder; 00023 00025 typedef void (*DtEntityCallbackFunction)( 00026 DtReflectedEntity* obj, void* userData); 00027 00028 00032 class DT_DLL_VL DtReflectedEntity : public DtReflectedObject 00033 { 00034 public: 00035 00038 typedef DtEntityStateRepository* (*DtStateRepCreator)(); 00039 00040 public: 00041 00043 DtReflectedEntity(DtExerciseConn* conn); 00044 00046 DtReflectedEntity(DtExerciseConn* conn, DtBaseStateRepCreator esrToUse); 00047 00049 virtual ~DtReflectedEntity(); 00050 00051 private: 00052 00054 DtReflectedEntity(const DtReflectedEntity& orig); 00055 00057 DtReflectedEntity& operator=(const DtReflectedEntity& orig); 00058 00059 public: 00060 00062 virtual DtReflectedEntity* next() const; 00063 00066 virtual DtEntityStateRepository* entityStateRep() const; 00067 00069 virtual DtEntityStateRepository* esr() const; 00070 00072 virtual DtReflectedEntity* prev() const; 00073 00076 virtual DtReflectedEntity* wrapNext() const; 00077 00080 virtual DtReflectedEntity* wrapPrev() const; 00081 00083 void removePostUpdateCallback( DtEntityCallbackFunction , void* ); 00084 00086 void addPostUpdateCallback( DtEntityCallbackFunction , void* ); 00087 00089 virtual const DtObjectId& id() const; 00090 00092 virtual const DtGlobalObjectDesignator& globalId() const; 00093 00095 virtual void printDataToStream(std::ostream& str) const; 00096 00097 public: 00099 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00100 00101 static void setUseDeadReckoning(bool yesNo); 00102 static bool useDeadReckoning(); 00103 protected: 00104 00105 static DtStateRepCreator theStateRepCreator; 00106 static bool theUseDeadReckoning; 00107 00108 00109 }; 00110 00111 inline DtEntityStateRepository* DtReflectedEntity::entityStateRep() const 00112 { 00113 return (DtEntityStateRepository*) myStateRep; 00114 } 00115 00116 inline DtEntityStateRepository* DtReflectedEntity::esr() const 00117 { 00118 return (DtEntityStateRepository*) myStateRep; 00119 } 00120 00121 00122 #endif //! DtReflectedEntity_H_ 00123 #endif //! DtTENA 00124