VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
spotReportStateComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <matrix/vlVector.h>
12 #include <matrix/vlTaitBryan.h>
13 #include <vrfutil/rwUUID.h>
14 #include <vrvCore/DtUniqueID.h>
16 #include <vlpi/entityIdentifier.h>
17 #include <vlpi/entityType.h>
18 #include <legionStandardOM/sets/writeEntityRepository.hpp>
19 #include "legionStandardOM/sets/readEntityRepository.hpp"
20 
21 namespace makVrf
22 {
23 
26  {
27  DtSpotReportStateComponentData() : myContactUUID(DtUUID::nullUUID()), myUUID(DtUUID::nullUUID())
28  { myWorldPositions.push_back(DtVector::zero()); };
29 
31  {
32  *this = orig;
33  };
34 
36  {
37  myWorldVelocity = orig.myWorldVelocity;
38  myUniqueIdentifier = orig.myUniqueIdentifier;
39  myObservedBy = orig.myObservedBy;
40  myVisualHandlerType = orig.myVisualHandlerType;
41  myDataHandlerType = orig.myDataHandlerType;
42  myContactUUID = orig.myContactUUID;
43  myUUID = orig.myUUID;
44  myDateTimeOfReport = orig.myDateTimeOfReport;
45  myIsTDLReport = orig.myIsTDLReport;
46  myDictionary = orig.myDictionary;
47  myWorldPositions = orig.myWorldPositions;
48  myWorldOrientation = orig.myWorldOrientation;
49  myGlobalId = orig.myGlobalId;
50  myEntityId = orig.myEntityId;
51  myUserData = orig.myUserData;
52  myMarkingText = orig.myMarkingText;
53 
54  return *this;
55  };
56 
57  DEFINE_ACCESSOR_MUTATOR(std::string, uniqueIdentifier, UniqueIdentifier)
58  DEFINE_ACCESSOR_MUTATOR(std::string, visualHandlerType, VisualHandlerType)
59  DEFINE_ACCESSOR_MUTATOR(std::string, dataHandlerType, DataHandlerType)
60  DEFINE_ACCESSOR_MUTATOR(DtUUID, contactUUID, ContactUUID)
61  DEFINE_ACCESSOR_MUTATOR(DtUUID, uuid, UUID)
62  DEFINE_ACCESSOR_MUTATOR(bool, isTDLReport, IsTDLReport)
63  DEFINE_ACCESSOR_MUTATOR(double, dateTimeOfReport, DateTimeOfReport)
64  DEFINE_ACCESSOR_MUTATOR(DtTaitBryan, worldOrientation, WorldOrientation)
65  DEFINE_ACCESSOR_MUTATOR(DtVector, worldVelocity, WorldVelocity)
66  DEFINE_ACCESSOR_MUTATOR(DtString, globalId, GlobalId)
67  DEFINE_ACCESSOR_MUTATOR(DtString, markingText, MarkingText)
68  DEFINE_ACCESSOR_MUTATOR(DtEntityIdentifier, entityId, EntityId)
69  DEFINE_ACCESSOR_MUTATOR(unsigned long long, userData, UserData)
70 
71  double simulationTimeSent() const
72  {
73  return myDictionary.doubleValue("SimulationTime");
74  }
75 
76  const std::string displayType() const
77  {
78  std::string str = myDictionary.value("DisplayType");
79 
80  if (!str.empty())
81  {
82  return str;
83  }
84  else
85  {
86  return myDictionary.value("PerceivedType");
87  }
88  }
89 
90  int appearanceBits() const
91  {
92  return atoi(myDictionary.value("PerceivedAppearance").c_str());
93  }
94 
95  const DtForceType forceType() const
96  {
97  return (DtForceType)(atoi(myDictionary.value("PerceivedForce").c_str()));
98  }
99 
100  const DtEntityType entityType() const
101  {
102  return DtEntityType(myDictionary.value("PerceivedType").c_str());
103  }
104 
105  const std::vector<DtVector>& worldPositions() const
106  {
107  return myWorldPositions;
108  }
109 
110  std::vector<DtVector>& worldPositions()
111  {
112  return myWorldPositions;
113  }
114 
115  DtVector worldPosition() const
116  {
117  if (!myWorldPositions.empty())
118  {
119  return myWorldPositions[0];
120  }
121 
122  return DtVector::zero();
123  }
124 
125  void setWorldPosition(const DtVector& v)
126  {
127  if (myWorldPositions.empty())
128  {
129  myWorldPositions.push_back(v);
130  }
131  else
132  {
133  myWorldPositions[0] = v;
134  }
135  }
136 
138  {
139  return myDictionary;
140  }
141 
143  {
144  return myDictionary;
145  }
146 
147  bool addObservedBy(const makVrv::DtUniqueID& s, double simTime)
148  {
149  std::map<makVrv::DtUniqueID, double>::iterator iter = myObservedBy.find(s);
150 
151  if (iter == myObservedBy.end())
152  {
153  myObservedBy[s] = simTime;
154  return true;
155  }
156  else
157  {
158  iter->second = simTime;
159  return false;
160  }
161  }
162 
164  {
165  std::map<makVrv::DtUniqueID, double>::iterator iter = myObservedBy.find(s);
166 
167  if (iter != myObservedBy.end())
168  {
169  myObservedBy.erase(iter);
170  }
171  }
172 
173  bool observedBy(const makVrv::DtUniqueID& s) const
174  {
175  return (myObservedBy.find(s) != myObservedBy.end());
176  }
177 
178  const std::map<makVrv::DtUniqueID, double>& observedBy() const
179  {
180  return myObservedBy;
181  }
182 
183  void setProtocol(const std::string& s)
184  {
185  myDictionary.setValue("Protocol", s);
186  }
187 
188  std::string protocol() const
189  {
190  return myDictionary.value("Protocol");
191  }
192 
193  void setDomain(const std::string& s)
194  {
195  myDictionary.setValue("Domain", s);
196  }
197 
198  std::string domain() const
199  {
200  return myDictionary.value("Domain");
201  }
202 
203  protected:
204  std::map<makVrv::DtUniqueID, double> myObservedBy;
205  std::string myVisualHandlerType;
206  std::string myDataHandlerType;
207  std::string myUniqueIdentifier;
211  bool myIsTDLReport = false;
213  std::vector<DtVector> myWorldPositions;
214  DtVector myWorldVelocity;
215  DtTaitBryan myWorldOrientation;
217  DtEntityIdentifier myEntityId;
218  unsigned long long myUserData = 0;
220  };
221 
225  {
226  public:
228 
231  {
232 
233  }
234 
235  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(std::string, dataHandlerType, DataHandlerType);
236  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(std::string, visualHandlerType, VisualHandlerType);
237  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtUUID, contactUUID, ContactUUID);
238  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(double, dateTimeOfReport, DateTimeOfReport);
239  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(bool, isTDLReport, IsTDLReport);
240  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(DtVector, worldPosition, WorldPosition);
241  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtTaitBryan, worldOrientation, WorldOrientation);
242  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(DtVector, worldVelocity, WorldVelocity);
243  UNDEFINED_RETURNVALUE_ACCESSOR(std::string, displayType)
244  UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(std::string, uniqueIdentifier, UniqueIdentifier);
245  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(std::string, protocol, Protocol);
246  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(std::string, domain, Domain);
247 
248  virtual const std::vector<DtVector>& worldPositions() const { throw DtUnimplementedMethod("The const std::vector<DtVector>& worldPositions() const method is unimplemented"); };
249  virtual const DtSpotReportStateComponentData& frameState() const { throw DtUnimplementedMethod("The const DtSpotReportStateComponentData& frameState() const method is unimplemented"); };
250  virtual void setFrameState(const DtSpotReportStateComponentData&) { throw DtUnimplementedMethod("The void setFrameState(const DtSpotReportStateComponentData&) method is unimplemented"); };
251  virtual bool addObservedBy(const makVrv::DtUniqueID& s, double simTime) { throw DtUnimplementedMethod("The bool addObservedBy(const makVrv::DtUniqueID& s, double simTime) const method is unimplemented"); };
252  virtual void removeObservedBy(const makVrv::DtUniqueID& s) { throw DtUnimplementedMethod("The removeObservedBy(const makVrv::DtUniqueID& s) const method is unimplemented"); };
253  virtual bool observedBy(const makVrv::DtUniqueID& s) const { throw DtUnimplementedMethod("The bool observedBy(const makVrv::DtUniqueID& s) const method is unimplemented"); };
254  virtual const std::map<makVrv::DtUniqueID, double>& observedBy() const { throw DtUnimplementedMethod("The const std::map<makVrv::DtUniqueID, double>& observedBy() const method is unimplemented"); };
255  virtual const DtSimpleTypedDictionary& dictionary() const { throw DtUnimplementedMethod("The const DtSimpleTypeDictionary& dictionary() const method is unimplemented"); };
256  virtual DtSimpleTypedDictionary& dictionary() { throw DtUnimplementedMethod("The const DtSimpleTypeDictionary& dictionary() const method is unimplemented"); };
257  };
258 
261  {
262  public:
264 
265  virtual const DtSimpleTypedDictionary& dictionary() const override;
266  virtual DtSimpleTypedDictionary& dictionary() override;
267 
268  virtual const std::string displayType() const override;
269 
270  virtual const std::string protocol() const override;
271  virtual void setProtocol(const std::string&) override;
272 
273  virtual const std::string domain() const override;
274  virtual void setDomain(const std::string&) override;
275 
276  virtual void setWorldPosition(const DtVector&) override;
277  virtual const DtVector worldPosition() const override;
278  virtual const std::vector<DtVector>& worldPositions() const override;
279 
280  virtual void setWorldOrientation(const DtTaitBryan&) override;
281  virtual const DtTaitBryan& worldOrientation() const override;
282 
283  virtual void setWorldVelocity(const DtVector&) override;
284  virtual const DtVector& worldVelocity() const override;
285 
286  virtual void setContactUUID(const DtUUID&) override;
287  virtual const DtUUID& contactUUID() const override;
288 
289  virtual void setIsTDLReport(const bool&) override;
290  virtual const bool& isTDLReport() const override;
291 
292  virtual void setDateTimeOfReport(const double&) override;
293  virtual const double& dateTimeOfReport() const override;
294 
295  virtual const std::string& dataHandlerType() const override;
296  virtual void setDataHandlerType(const std::string&) override;
297 
298  virtual const std::string& visualHandlerType() const override;
299  virtual void setVisualHandlerType(const std::string&) override;
300 
301  virtual const std::string& uniqueIdentifier() const override;
302  virtual void setUniqueIdentifier(const std::string&) override;
303 
304  virtual bool addObservedBy(const makVrv::DtUniqueID& s, double simTime) override;
305  virtual void removeObservedBy(const makVrv::DtUniqueID& s) override;
306  virtual bool observedBy(const makVrv::DtUniqueID& s) const override;
307  virtual const std::map<makVrv::DtUniqueID, double>& observedBy() const override;
308 
310  virtual const DtSpotReportStateComponentData& frameState() const override { return myData; };
311  DtSpotReportStateComponentData& frameState() { markModified(); return myData; };
312  virtual void setFrameState(const DtSpotReportStateComponentData&) override;
313 
314  virtual const bool& isLocal() const override;
315  virtual void setIsLocal(const bool&) override;
316 
317  virtual const bool& checkForNameReservation() const override;
318  virtual void setCheckForNameReservation(const bool&) override;
319 
320  virtual const DtString& globalId() const override;
321  virtual void setGlobalId(const DtString&) override;
322 
323  virtual const DtUUID& uuid() const override;
324  virtual void setUUID(const DtUUID& u) override;
325 
326  virtual const DtString& markingText() const override;
327  virtual void setMarkingText(const DtString&) override;
328 
329  virtual const DtForceType forceType() const override;
330  virtual void setForceType(const DtForceType&) override;
331 
332  virtual const UInt32 appearanceBits() const override;
333  virtual void setAppearanceBits(const UInt32&) override;
334 
335  virtual const DtEntityType entityType() const override { return objectType(); };
336  virtual const DtEntityType objectType() const override;
337  virtual void setEntityType(const DtEntityType& t) override;
338 
339  virtual const unsigned long long userLongLongData() const override;
340  virtual void setUserLongLongData(const unsigned long long&) override;
341 
342  virtual const DtEntityIdentifier& entityId() const override;
343  virtual void setEntityId(const DtEntityIdentifier&) override;
344  virtual const DtSimulationAddress simEngineAddress() const override;
345 
347  virtual void makeWritable() override;
348 
350  virtual void makeReadOnly() override;
351 
352  protected:
354  };
355 
358  {
359  public:
361 
362  virtual const std::string protocol() const override;
363  virtual const std::string domain() const override;
364  virtual const std::string displayType() const override;
365  virtual const DtSimpleTypedDictionary& dictionary() const override;
366  virtual const std::string& dataHandlerType() const override;
367  virtual const std::string& visualHandlerType() const override;
368  virtual const std::string& uniqueIdentifier() const override;
369  virtual const DtUUID& contactUUID() const override;
370  virtual const double& dateTimeOfReport() const override;
371  virtual const bool& isTDLReport() const override;
372  virtual const DtVector worldPosition() const override;
373  virtual const std::vector<DtVector>& worldPositions() const override;
374  virtual const DtTaitBryan& worldOrientation() const override;
375  virtual const DtVector& worldVelocity() const override;
376  virtual const bool& isLocal() const override;
377 
378  virtual const bool& checkForNameReservation() const override;
379  virtual const DtString& globalId() const override;
380  virtual const DtUUID& uuid() const override;
381  virtual const DtString& markingText() const override;
382  virtual const DtForceType forceType() const override;
383  virtual const UInt32 appearanceBits() const override;
384  virtual const DtEntityType entityType() const override { return objectType(); };
385  virtual const DtEntityType objectType() const override;
386  virtual const unsigned long long userLongLongData() const override;
387  virtual const DtEntityIdentifier& entityId() const override;
388  virtual const DtSimulationAddress simEngineAddress() const override;
389 
390  virtual bool observedBy(const makVrv::DtUniqueID& s) const override;
391  virtual const std::map<makVrv::DtUniqueID, double>& observedBy() const override;
392 
394  virtual const DtSpotReportStateComponentData& frameState() const override { return myData; };
395  DtSpotReportStateComponentData& frameState() { return myData; };
396 
397  protected:
400  {
401  myData = data;
402  }
403 
404  protected:
406  };
407 
411  {
412  public:
414  virtual ~DtSpotReportStateComponentImplementation() override;
415 
416  bool isDoubleBuffered() { return true; };
417  virtual const DtFrameStateInterface* currentFrameState() const override { return &myCurrentFrameState; }
418  virtual DtFrameStateInterface* nextFrameState() override { return &myNextFrameState; };
419  virtual const DtFrameStateInterface* nextFrameState() const override { return &myNextFrameState; };
420 
421  virtual void updateDataStorage() override
422  {
423  if (myNextFrameState.isWritable())
424  {
425  myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
426  }
427 
428  myCurrentFrameState.emitComponentUpdated();
429  }
430 
431  virtual void updateStateData(DtStateData* sd) override
432  {
433  myCurrentFrameState.updateStateData(sd);
434  myNextFrameState.updateStateData(sd);
435  }
436 
437  virtual void aboutToBeDeleted() override
438  {
440  myCurrentFrameState.aboutToBeDeleted();
441  myNextFrameState.aboutToBeDeleted();
442  }
443 
444  virtual void convertToLocal() override;
445  virtual void convertToRemote() override;
446 
447  protected:
450  LOM::WriteEntityRepository myWriteSpotReportStateRepository;
451  };
452 
456 }
virtual bool addObservedBy(const makVrv::DtUniqueID &s, double simTime)
Definition: spotReportStateComponent.h:251
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual const std::map< makVrv::DtUniqueID, double > & observedBy() const
Definition: spotReportStateComponent.h:254
std::string myDataHandlerType
Definition: spotReportStateComponent.h:206
bool addObservedBy(const makVrv::DtUniqueID &s, double simTime)
Definition: spotReportStateComponent.h:147
const std::map< makVrv::DtUniqueID, double > & observedBy() const
Definition: spotReportStateComponent.h:178
Definition: stateDataTypes.h:23
double myDateTimeOfReport
Definition: spotReportStateComponent.h:210
const std::vector< DtVector > & worldPositions() const
Definition: spotReportStateComponent.h:105
virtual const DtEntityType entityType() const override
Definition: spotReportStateComponent.h:384
DtUUID myUUID
Definition: spotReportStateComponent.h:209
2) Define the next frame class. This will be used for write access.
Definition: spotReportStateComponent.h:260
DtSpotReportStateComponentData myData
Definition: spotReportStateComponent.h:353
unsigned int UInt32
Definition: stateDataTypes.h:18
Definition: stateComponent.h:269
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
unsigned long long myUserData
Definition: spotReportStateComponent.h:218
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: spotReportStateComponent.h:421
DtSimpleTypedDictionary & dictionary()
Definition: spotReportStateComponent.h:137
#define UNDEFINED_RETURNVALUE_ACCESSOR(ReturnType, Member)
Definition: doubleBufferedDataStorage.h:31
DtTaitBryan myWorldOrientation
Definition: spotReportStateComponent.h:215
DtSpotReportStateComponentData & frameState()
Definition: spotReportStateComponent.h:311
Contains the DtUUID class declaration.
bool isDoubleBuffered()
Definition: spotReportStateComponent.h:416
int appearanceBits() const
Definition: spotReportStateComponent.h:90
std::string domain() const
Definition: spotReportStateComponent.h:198
std::vector< DtVector > & worldPositions()
Definition: spotReportStateComponent.h:110
DtString myMarkingText
Definition: spotReportStateComponent.h:219
DtVector worldPosition() const
Definition: spotReportStateComponent.h:115
DtSpotReportStateComponentCurrentFrame myCurrentFrameState
Definition: spotReportStateComponent.h:448
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: spotReportStateComponent.h:419
virtual const DtEntityType entityType() const override
Definition: spotReportStateComponent.h:335
virtual const DtSimpleTypedDictionary & dictionary() const
Definition: spotReportStateComponent.h:255
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: spotReportStateComponent.h:410
DtUUID myContactUUID
Definition: spotReportStateComponent.h:208
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: spotReportStateComponent.h:417
DtSpotReportStateComponentData & operator=(const DtSpotReportStateComponentData &orig)
Definition: spotReportStateComponent.h:35
DtVector myWorldVelocity
Definition: spotReportStateComponent.h:214
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
Definition: simpleTypedDictionary.h:27
1) Define the interface class that will be used to represent the next and current frames...
Definition: spotReportStateComponent.h:224
virtual DtSimpleTypedDictionary & dictionary()
Definition: spotReportStateComponent.h:256
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
virtual void removeObservedBy(const makVrv::DtUniqueID &s)
Definition: spotReportStateComponent.h:252
std::string myVisualHandlerType
Definition: spotReportStateComponent.h:205
std::vector< DtVector > myWorldPositions
Definition: spotReportStateComponent.h:213
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
DtStateComponentCreator< DtSpotReportStateComponentImplementation > DtSpotReportStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: spotReportStateComponent.h:455
void removeObservedBy(const makVrv::DtUniqueID &s)
Definition: spotReportStateComponent.h:163
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
virtual void aboutToBeDeleted()
0) Define the State Component Data. This struct replaces the legion stuff
Definition: spotReportStateComponent.h:25
virtual const DtSpotReportStateComponentData & frameState() const override
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: spotReportStateComponent.h:394
void advanceFrame(const DtSpotReportStateComponentData &data)
Definition: spotReportStateComponent.h:399
const DtEntityType entityType() const
Definition: spotReportStateComponent.h:100
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
3) Define the current frame class. This will be used for read access.
Definition: spotReportStateComponent.h:357
virtual DtFrameStateInterface * nextFrameState() override
Definition: spotReportStateComponent.h:418
LOM::WriteEntityRepository myWriteSpotReportStateRepository
Definition: spotReportStateComponent.h:450
DtSimpleTypedDictionary myDictionary
Definition: spotReportStateComponent.h:212
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
DtSpotReportStateComponentData()
Definition: spotReportStateComponent.h:27
virtual bool observedBy(const makVrv::DtUniqueID &s) const
Definition: spotReportStateComponent.h:253
virtual void setFrameState(const DtSpotReportStateComponentData &)
Definition: spotReportStateComponent.h:250
bool myIsTDLReport
Definition: spotReportStateComponent.h:211
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
void setWorldPosition(const DtVector &v)
Definition: spotReportStateComponent.h:125
void setDomain(const std::string &s)
Definition: spotReportStateComponent.h:193
const DtSimpleTypedDictionary & dictionary() const
Definition: spotReportStateComponent.h:142
DtString myGlobalId
Definition: spotReportStateComponent.h:216
DtEntityIdentifier myEntityId
Definition: spotReportStateComponent.h:217
DtSpotReportStateComponentData(const DtSpotReportStateComponentData &orig)
Definition: spotReportStateComponent.h:30
const DtForceType forceType() const
Definition: spotReportStateComponent.h:95
void setProtocol(const std::string &s)
Definition: spotReportStateComponent.h:183
virtual void aboutToBeDeleted() override
Definition: spotReportStateComponent.h:437
Contains makVrv::DtUniqueID type.
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
DtSpotReportStateComponentData myData
Definition: spotReportStateComponent.h:405
std::map< makVrv::DtUniqueID, double > myObservedBy
Definition: spotReportStateComponent.h:204
virtual const DtSpotReportStateComponentData & frameState() const
Definition: spotReportStateComponent.h:249
Contains the DtStateComponent class declaration.
const std::string displayType() const
Definition: spotReportStateComponent.h:76
bool observedBy(const makVrv::DtUniqueID &s) const
Definition: spotReportStateComponent.h:173
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: spotReportStateComponent.h:431
DtSpotReportStateComponentNextFrame myNextFrameState
Definition: spotReportStateComponent.h:449
std::string protocol() const
Definition: spotReportStateComponent.h:188
std::string myUniqueIdentifier
Definition: spotReportStateComponent.h:207
virtual const DtSpotReportStateComponentData & frameState() const override
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: spotReportStateComponent.h:310

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)