VR-Link API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
reflectedEntityListHLA.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 1992-2025 MAK Technologies, Inc
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtHLA
11 
12 #pragma once
13 
15 #include <vl/reflectedEntityHLA.h>
16 #include <vl/region.h>
17 #include <matrix/geodeticCoord.h>
18 #include <vector>
19 
20 class DtGeodeticRegion;
23 
39 {
40 public:
41 
48  DtExerciseConn* exConn,
49  bool smoothCapable = false,
50  const DtDDMRegionSet* regionSetToUse = 0 );
51 
53  DtExerciseConn* exConn,
54  const DtString& updateRateTag,
55  bool smoothCapable = false,
56  const DtDDMRegionSet* regionSetToUse = 0 );
57 
65 
67  DtExerciseConn* exConn,
68  const DtList *handleList,
69  bool smoothCapable = false,
70  const DtDDMRegionSet* regionSetToUse = 0 );
71 
73  DtExerciseConn* exConn,
74  const DtList *handleList,
75  const DtString& updateRateTag,
76  bool smoothCapable = false,
77  const DtDDMRegionSet* regionSetToUse = 0 );
78 
80  virtual ~DtReflectedEntityList();
81 
84  virtual DtReflectedEntity* lookup(
85 #if DtHLA_1516
86  RTI::ObjectInstanceHandle id);
87 #else
89 #endif
90 
93  virtual DtReflectedEntity* lookup(const DtGlobalObjectDesignator& objName);
94 
97  virtual DtReflectedEntity* lookup(const DtEntityIdentifier& entityId);
98 
102  virtual DtReflectedEntity* first() const;
103 
107  virtual DtReflectedEntity* last() const;
108 
112  virtual void addToObjectList(DtReflectedObject* refObj);
113 
117  virtual void addToEntityIdentifierHashList(DtReflectedEntity* ent);
118 
122  virtual void addEntityAdditionCallback(
123  DtEntityCallbackFunction cb, void* userData);
124 
128  virtual void removeEntityAdditionCallback(
129  DtEntityCallbackFunction cb, void* userData);
130 
134  virtual void addEntityRemovalCallback(
135  DtEntityCallbackFunction cb, void* userData);
136 
140  virtual void removeEntityRemovalCallback(
141  DtEntityCallbackFunction cb, void* userData);
142 
148  virtual void discoverOnlyWhenEntityTypeKnown(bool yesNo);
149 
151  virtual void addReflectedDIGuyObjectToList(DtReflectedDIGuyObject* refDiguy);
152 
153 protected:
154 
157  virtual const DtList* dfltHandleList();
158 
161  virtual DtReflectedObject* newReflectedObject(DtHlaObject* obj) const;
162 
165  virtual DtReflectedEntity* newReflectedEntity(DtHlaObject* obj) const;
166 
169  virtual void removeAndDelete(DtReflectedObject* object, const char* msg);
170 
174  virtual void removeAndDelete(DtReflectedEntity* entity, const char* msg = NULL);
175 
178  virtual void objectAdded(DtReflectedObject* obj);
179 
184  virtual void entityAdded(DtReflectedEntity* ent);
185 
188  virtual void initializeDIGuy();
189 
195  virtual void processDiGuyObjectAddition( DtReflectedDIGuyObject* beam );
196  virtual void processDiGuyObjectUpdate( DtReflectedDIGuyObject* beam );
197  virtual void processDiGuyObjectRemoval( DtReflectedDIGuyObject* beam );
198 
202  virtual void resolveOrphans();
203 
204 protected:
205 
209  static bool checkEntityType(DtReflectedObject* obj, void* usr);
210 
215  static void checkEntityId(DtReflectedEntity* ent, void* usr);
216 
220  static void diGuyObjectAdditionCb(
221  DtReflectedDIGuyObject* beam, void* usr );
222  static void diGuyObjectUpdateCb(
223  DtReflectedDIGuyObject* beam, void* usr );
224  static void diGuyObjectRemovalCb(
225  DtReflectedDIGuyObject* beam, void* usr );
226 
228  static void resolveOrphansPostDrainCb( void* usr );
229 
234  static bool delayDiGuyObjectDiscoveryCondition(
235  DtReflectedObject* beam, void* usr );
236 
237 private:
238 
241 
244 
245 protected:
246 
249 
252 
253  std::set<DtReflectedDIGuyObject*> myOrphanDiGuyObjects;
255 
256 };
257 
258 #endif // DtHLA
Instances of DtReflectedEntity are used to represent a simulation entity reflected across a network (...
Definition: reflectedEntityHLA.h:29
class DtReflectedObjectList
Definition: reflectedObjectListHLA.h:58
DtReflectedDIGuyObjectList * myReflectedDiGuyObjects
Definition: reflectedEntityListHLA.h:254
Contains the HLA DtReflectedObjectList class declaration.
Instances of DtExerciseConn are used to provide an application&#39;s interface or connection to the netwo...
Definition: exerciseConnHLA.h:61
virtual DtReflectedObject * newReflectedObject(DtHlaObject *obj) const =0
Create a remote object object for the HLA object.
#define DT_DLL_VL
Definition: vlMachineTypes.h:108
void(* DtEntityCallbackFunction)(DtReflectedEntity *obj, void *userData)
Callback function that takes a DtReflectedObject and user data.
Definition: reflectedEntityHLA.h:23
This file provides a definition of GeodeticCoords and several helper functions.
Instances of DtReflectedDIGuyObjectList manage a list of DtReflectedDIGuyObject objects.
Definition: reflectedDiGuyObjectListHLA.h:22
DtReflectedObjectList & operator=(const DtReflectedObjectList &orig)
assignment operator – not implemented
Instances of DtHlaObject are used to represent HLA objects which are communicated across the network...
Definition: hlaObject.h:58
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
ObjectInstanceHandle ObjectHandle
Definition: rtiCompatibility.h:275
bool mySmoothCapable
Determines whether to use smoothing for reflected entities.
Definition: reflectedEntityListHLA.h:248
virtual void addToObjectList(DtReflectedObject *refObj)
Add refObj to myObjectList and initiates discovery callbacks.
Instances of DtReflectedDIGuyObject are used to represent a simulated HLAobjectRoot.DIGuyObject object reflected across a network.
Definition: reflectedDiGuyObject.h:31
class DtReflectedObject:
Definition: reflectedObjectHLA.h:36
Instances of DtReflectedEntityList are used to manage remote entities from the network.
Definition: reflectedEntityListHLA.h:38
DtGeodeticRegion.
Definition: geodeticRegion.h:38
virtual void removeAndDelete(DtReflectedObject *obj, const char *msg=nullptr)
Remove the remote object from the list if found and delete it.
Instances of DtEntityIdentifier are used as a unique ID for entities in DIS.
Definition: entityIdentifier.h:31
std::set< DtDDMRegionSP > DtDDMRegionSet
Definition: region1516.h:32
std::set< DtReflectedDIGuyObject * > myOrphanDiGuyObjects
Definition: reflectedEntityListHLA.h:253
DtHashlist is deprecated and provided for backwards compatibility only.
Definition: vlHashlist.h:69
virtual void objectAdded(DtReflectedObject *object)
Called from processDiscoverObject() after a remote object has been added to the list.
This file provides a declaration of the class DtReflectedEntity and the definition of DtEntityCallbac...
Instances of DtString are used to represent strings.
Definition: vlString.h:36
DtHashlist myEntityIdentifierHashlist
Hash list used for lookup of entity identifiers.
Definition: reflectedEntityListHLA.h:251

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)