![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef hReflEntList_H_ 00007 #define hReflEntList_H_ 00008 00009 #if DtHLA 00010 00011 #include "hRefObjList.h" 00012 #include "hReflectedEnt.h" 00013 #include "region.h" 00014 00015 #include <matrix/geodCoord.h> 00016 #include <vector> 00017 class DtGeodeticRegion; 00018 00023 00038 class DT_DLL_VL DtReflectedEntityList : public DtReflectedObjectList 00039 { 00040 public: 00041 00042 00048 DtReflectedEntityList( 00049 DtExerciseConn* exConn, 00050 bool smoothCapable = false, 00051 const DtDDMRegionSet* regionSetToUse = 0 ); 00052 00053 DtReflectedEntityList( 00054 DtExerciseConn* exConn, 00055 const DtString& updateRateTag, 00056 bool smoothCapable = false, 00057 const DtDDMRegionSet* regionSetToUse = 0 ); 00058 00066 00067 DtReflectedEntityList( 00068 DtExerciseConn* exConn, 00069 const DtList *handleList, 00070 bool smoothCapable = false, 00071 const DtDDMRegionSet* regionSetToUse = 0 ); 00072 00073 DtReflectedEntityList( 00074 DtExerciseConn* exConn, 00075 const DtList *handleList, 00076 const DtString& updateRateTag, 00077 bool smoothCapable = false, 00078 const DtDDMRegionSet* regionSetToUse = 0 ); 00079 00081 virtual ~DtReflectedEntityList(); 00082 00083 private: 00084 00086 DtReflectedEntityList(const DtReflectedEntityList& orig); 00087 00089 DtReflectedEntityList& operator=(const DtReflectedEntityList& orig); 00090 00091 public: 00092 00095 virtual DtReflectedEntity* lookup( 00096 #if DtHLA_1516 00097 RTI::ObjectInstanceHandle id); 00098 #else 00099 RTI::ObjectHandle id); 00100 #endif 00101 00104 virtual DtReflectedEntity* lookup(const DtGlobalObjectDesignator& objName); 00105 00108 virtual DtReflectedEntity* lookup(const DtEntityIdentifier& entityId); 00109 00113 virtual DtReflectedEntity* first() const; 00114 00118 virtual DtReflectedEntity* last() const; 00119 00123 virtual void addToObjectList(DtReflectedObject* refObj); 00124 00128 virtual void addToEntityIdentifierHashList(DtReflectedEntity* ent); 00129 00133 virtual void addEntityAdditionCallback( 00134 DtEntityCallbackFunction cb, void* userData); 00135 00139 virtual void removeEntityAdditionCallback( 00140 DtEntityCallbackFunction cb, void* userData); 00141 00145 virtual void addEntityRemovalCallback( 00146 DtEntityCallbackFunction cb, void* userData); 00147 00151 virtual void removeEntityRemovalCallback( 00152 DtEntityCallbackFunction cb, void* userData); 00153 00159 virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo); 00160 00161 00162 protected: 00163 00166 virtual const DtList* dfltHandleList(); 00167 00170 virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const; 00171 00174 virtual DtReflectedEntity* newReflectedEntity(DtHlaObject* obj) const; 00175 00178 virtual void removeAndDelete(DtReflectedObject* object, char* msg); 00179 00183 virtual void removeAndDelete(DtReflectedEntity* entity, char* msg = NULL); 00184 00187 virtual void objectAdded(DtReflectedObject* obj); 00188 00193 virtual void entityAdded(DtReflectedEntity* ent); 00194 00195 protected: 00196 00200 static bool checkEntityType(DtReflectedObject* obj, void* usr); 00201 00206 static void checkEntityId(DtReflectedEntity* ent, void* usr); 00207 00208 protected: 00209 00211 bool mySmoothCapable; 00212 00214 DtHashlist myEntityIdentifierHashlist; 00215 }; 00216 00217 #endif 00218 #endif 00219