![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00009 #pragma once 00010 #if DtHLA 00011 00012 #include "hRefObjList.h" 00013 #include "hReflEmitrSys.h" 00014 #include "hRefBeamList.h" 00015 00018 class DT_DLL_VL DtReflectedEmitterSystemList : public DtReflectedObjectList 00019 { 00020 public: 00021 00025 DtReflectedEmitterSystemList(DtExerciseConn* exConn, 00026 bool beamsUpdateSystems = true, const DtDDMRegionSet* regionSetToUse = 0, 00027 const DtString& updateRateTag = DtString("")); 00028 00031 DtReflectedEmitterSystemList(DtExerciseConn* exConn, 00032 const DtList *handleList, bool beamsUpdateSystems = true, 00033 const DtDDMRegionSet* regionSetToUse = 0, 00034 const DtString& updateRateTag = DtString("")); 00035 00037 virtual ~DtReflectedEmitterSystemList(); 00038 00039 private: 00040 00042 DtReflectedEmitterSystemList(const DtReflectedEmitterSystemList& orig); 00043 00045 DtReflectedEmitterSystemList& operator= 00046 (const DtReflectedEmitterSystemList& orig); 00047 00048 public: 00049 00051 virtual DtReflectedEmitterSystem* lookup( 00052 #if DtHLA_1516 00053 RTI::ObjectInstanceHandle id); 00054 #else 00055 RTI::ObjectHandle id); 00056 #endif 00057 00059 virtual DtReflectedEmitterSystem* lookup( 00060 const DtGlobalObjectDesignator& emittingEntity, 00061 int systemId) const; 00062 00064 virtual DtReflectedEmitterSystem* lookup( 00065 const DtGlobalObjectDesignator& objName); 00066 00068 virtual DtReflectedEmitterSystem* first() const; 00069 virtual DtReflectedEmitterSystem* last() const; 00070 00074 virtual void addEmitterSystemAdditionCallback( 00075 DtEmitterSystemCallbackFunction cb, void* userData); 00076 virtual void removeEmitterSystemAdditionCallback( 00077 DtEmitterSystemCallbackFunction cb, void* userData); 00078 00082 virtual void addEmitterSystemRemovalCallback( 00083 DtEmitterSystemCallbackFunction cb, void* userData); 00084 virtual void removeEmitterSystemRemovalCallback( 00085 DtEmitterSystemCallbackFunction cb, void* userData); 00086 00097 virtual DtReflectedEmitterBeamList* refBeamList(); 00098 00104 virtual void setDiscoveryCondition(DtDiscoveryCondition fn, void* usr); 00105 00109 virtual void clearDiscoveryCondition(); 00110 00117 virtual void setBeamDiscoveryCondition(DtDiscoveryCondition fn, void* usr); 00118 00120 virtual void clearBeamDiscoveryCondition(); 00121 00126 virtual bool delayBeamDiscovery(DtReflectedObject* beam, void* emitSysList); 00127 00128 00129 protected: 00130 00134 virtual void processDiscoverObject(DtHlaObject* obj); 00135 00140 virtual void processRemoveObject(DtHlaObject* obj); 00141 00148 virtual void processEmitterBeamAddition(DtReflectedEmitterBeam* beam); 00149 virtual void processEmitterBeamUpdate(DtReflectedEmitterBeam* beam); 00150 virtual void processEmitterBeamRemoval(DtReflectedEmitterBeam* beam); 00151 00155 virtual void resolveOrphans(); 00156 00158 virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const; 00159 00162 virtual DtReflectedEmitterSystem* newReflectedEmitterSystem( 00163 const DtGlobalObjectDesignator& des) const; 00164 00169 virtual void objectAdded(DtReflectedObject* obj); 00170 00174 virtual bool shouldBeTimedOut(DtReflectedObject* object); 00175 00178 virtual const DtList* dfltHandleList(); 00179 00180 00181 protected: 00182 00185 static void emitterBeamAdditionCb( 00186 DtReflectedEmitterBeam* beam, void* usr); 00187 static void emitterBeamUpdateCb( 00188 DtReflectedEmitterBeam* beam, void* usr); 00189 static void emitterBeamRemovalCb( 00190 DtReflectedEmitterBeam* beam, void* usr); 00191 00193 static void resolveOrphansPostDrainCb(void *usr); 00194 00199 static bool delayBeamDiscoveryCondition( 00200 DtReflectedObject* beam, void* emitSysList); 00201 00202 protected: 00203 #if !DtHLA_1516 00204 DtObjectId myCounterId; 00205 #endif 00206 DtList myOrphanBeams; 00207 DtReflectedEmitterBeamList myBeamList; 00208 bool myBeamsUpdateSystems; 00209 00210 DtDiscoveryCondition myBeamDiscoveryCondition; 00211 void* myBeamDiscoveryConditionParameter; 00212 }; 00213 00214 #endif //DtHLA 00215