11 #include <matrix/vlVector.h>
12 #include <matrix/vlTaitBryan.h>
16 #include <vlpi/entityIdentifier.h>
17 #include <vlpi/entityType.h>
18 #include <legionStandardOM/sets/writeEntityRepository.hpp>
19 #include "legionStandardOM/sets/readEntityRepository.hpp"
28 { myWorldPositions.push_back(DtVector::zero()); };
71 double simulationTimeSent()
const
73 return myDictionary.doubleValue(
"SimulationTime");
78 std::string str = myDictionary.value(
"DisplayType");
86 return myDictionary.value(
"PerceivedType");
92 return atoi(myDictionary.value(
"PerceivedAppearance").c_str());
97 return (DtForceType)(atoi(myDictionary.value(
"PerceivedForce").c_str()));
102 return DtEntityType(myDictionary.value(
"PerceivedType").c_str());
107 return myWorldPositions;
112 return myWorldPositions;
117 if (!myWorldPositions.empty())
119 return myWorldPositions[0];
122 return DtVector::zero();
127 if (myWorldPositions.empty())
129 myWorldPositions.push_back(v);
133 myWorldPositions[0] = v;
149 std::map<makVrv::DtUniqueID, double>::iterator iter = myObservedBy.find(s);
151 if (iter == myObservedBy.end())
153 myObservedBy[s] = simTime;
158 iter->second = simTime;
165 std::map<makVrv::DtUniqueID, double>::iterator iter = myObservedBy.find(s);
167 if (iter != myObservedBy.end())
169 myObservedBy.erase(iter);
175 return (myObservedBy.find(s) != myObservedBy.end());
178 const std::map<makVrv::DtUniqueID, double>&
observedBy()
const
185 myDictionary.setValue(
"Protocol", s);
190 return myDictionary.value(
"Protocol");
195 myDictionary.setValue(
"Domain", s);
200 return myDictionary.value(
"Domain");
211 bool myIsTDLReport =
false;
218 unsigned long long myUserData = 0;
248 virtual const std::vector<DtVector>& worldPositions()
const {
throw DtUnimplementedMethod(
"The const std::vector<DtVector>& worldPositions() 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"); };
268 virtual const std::string displayType()
const override;
270 virtual const std::string protocol()
const override;
271 virtual void setProtocol(
const std::string&)
override;
273 virtual const std::string domain()
const override;
274 virtual void setDomain(
const std::string&)
override;
276 virtual void setWorldPosition(
const DtVector&)
override;
277 virtual const DtVector worldPosition()
const override;
278 virtual const std::vector<DtVector>& worldPositions()
const override;
280 virtual void setWorldOrientation(
const DtTaitBryan&)
override;
281 virtual const DtTaitBryan& worldOrientation()
const override;
283 virtual void setWorldVelocity(
const DtVector&)
override;
284 virtual const DtVector& worldVelocity()
const override;
286 virtual void setContactUUID(
const DtUUID&)
override;
287 virtual const DtUUID& contactUUID()
const override;
289 virtual void setIsTDLReport(
const bool&)
override;
290 virtual const bool& isTDLReport()
const override;
292 virtual void setDateTimeOfReport(
const double&)
override;
293 virtual const double& dateTimeOfReport()
const override;
295 virtual const std::string& dataHandlerType()
const override;
296 virtual void setDataHandlerType(
const std::string&)
override;
298 virtual const std::string& visualHandlerType()
const override;
299 virtual void setVisualHandlerType(
const std::string&)
override;
301 virtual const std::string& uniqueIdentifier()
const override;
302 virtual void setUniqueIdentifier(
const std::string&)
override;
307 virtual const std::map<makVrv::DtUniqueID, double>& observedBy()
const override;
314 virtual const bool& isLocal()
const override;
315 virtual void setIsLocal(
const bool&)
override;
317 virtual const bool& checkForNameReservation()
const override;
318 virtual void setCheckForNameReservation(
const bool&)
override;
320 virtual const DtString& globalId()
const override;
321 virtual void setGlobalId(
const DtString&)
override;
323 virtual const DtUUID& uuid()
const override;
324 virtual void setUUID(
const DtUUID& u)
override;
326 virtual const DtString& markingText()
const override;
327 virtual void setMarkingText(
const DtString&)
override;
329 virtual const DtForceType forceType()
const override;
330 virtual void setForceType(
const DtForceType&)
override;
332 virtual const UInt32 appearanceBits()
const override;
333 virtual void setAppearanceBits(
const UInt32&)
override;
335 virtual const DtEntityType
entityType()
const override {
return objectType(); };
336 virtual const DtEntityType objectType()
const override;
337 virtual void setEntityType(
const DtEntityType& t)
override;
339 virtual const unsigned long long userLongLongData()
const override;
340 virtual void setUserLongLongData(
const unsigned long long&)
override;
342 virtual const DtEntityIdentifier& entityId()
const override;
343 virtual void setEntityId(
const DtEntityIdentifier&)
override;
344 virtual const DtSimulationAddress simEngineAddress()
const override;
347 virtual void makeWritable()
override;
350 virtual void makeReadOnly()
override;
362 virtual const std::string protocol()
const override;
363 virtual const std::string domain()
const override;
364 virtual const std::string displayType()
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;
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;
391 virtual const std::map<makVrv::DtUniqueID, double>& observedBy()
const override;
423 if (myNextFrameState.isWritable())
425 myCurrentFrameState.advanceFrame(myNextFrameState.frameState());
428 myCurrentFrameState.emitComponentUpdated();
433 myCurrentFrameState.updateStateData(sd);
434 myNextFrameState.updateStateData(sd);
440 myCurrentFrameState.aboutToBeDeleted();
441 myNextFrameState.aboutToBeDeleted();
444 virtual void convertToLocal()
override;
445 virtual void convertToRemote()
override;
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
Definition: stateComponent.h:68