![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hReflectedEnt_H_ 00008 #define hReflectedEnt_H_ 00009 00010 #if DtHLA 00011 00012 #include "entitySR.h" 00013 #include "hReflectedObj.h" 00014 00019 00020 class DT_DLL_VL DtReflectedEntity; 00021 00023 typedef void (*DtEntityCallbackFunction)( 00024 DtReflectedEntity* obj, void* userData); 00025 00029 class DT_DLL_VL DtReflectedEntity : public DtReflectedObject 00030 { 00031 public: 00032 00034 typedef DtEntityStateRepository* (*DtStateRepCreator)(); 00035 00036 public: 00037 00039 DtReflectedEntity(DtHlaObject* obj, DtExerciseConn* conn); 00040 00044 DtReflectedEntity(DtExerciseConn* conn, DtEntityStateRepository* esrToUse); 00045 00047 DtReflectedEntity(DtHlaObject* obj, DtExerciseConn* conn, 00048 DtBaseStateRepCreator esrToUse); 00049 00051 virtual ~DtReflectedEntity(); 00052 00055 virtual DtEntityStateRepository* entityStateRep() const; 00056 00058 virtual DtEntityStateRepository* esr() const; 00059 00061 virtual DtReflectedEntity* next() const; 00062 00064 virtual DtReflectedEntity* prev() const; 00065 00068 virtual DtReflectedEntity* wrapNext() const; 00069 00072 virtual DtReflectedEntity* wrapPrev() const; 00073 00075 virtual void addPostUpdateCallback( 00076 DtEntityCallbackFunction cb, void* userData); 00077 virtual void removePostUpdateCallback( 00078 DtEntityCallbackFunction cb, void* userData); 00079 00080 public: 00081 00083 static DtStateRepCreator setStateRepCreator(DtStateRepCreator creator); 00084 00085 public: 00086 00088 typedef DtStateRepCreator DtEsrCreator; 00089 00091 #if DtHLA_1516 00092 virtual RTI::ObjectInstanceHandle entityObjectId() const; 00093 #else 00094 virtual RTI::ObjectHandle entityObjectId() const; 00095 #endif 00096 00099 static DtEsrCreator setEsrCreator(DtEsrCreator creator); 00100 00101 protected: 00102 00104 DtReflectedEntity(const DtReflectedEntity& orig); 00105 00107 DtReflectedEntity& operator=(const DtReflectedEntity& orig); 00108 00109 protected: 00110 00111 static DtStateRepCreator theStateRepCreator; 00112 }; 00113 00114 inline DtEntityStateRepository* DtReflectedEntity::entityStateRep() const 00115 { 00116 return (DtEntityStateRepository*) myStateRep; 00117 } 00118 00119 inline DtEntityStateRepository* DtReflectedEntity::esr() const 00120 { 00121 return (DtEntityStateRepository*) myStateRep; 00122 } 00123 00124 #endif //! DtHLA 00125 #endif //! DtReflectedEntity_H_ 00126