9 #include <legionStandardOM/sets/readEnvironmentProcessRepository.hpp>
10 #include <legionStandardOM/sets/writeEnvironmentProcessRepository.hpp>
11 #include <tbb/mutex.h>
17 class DtStateDataManager;
50 : DtLocationStateComponent(storage)
51 , myCenterPositionColumn(0xFFFFFFFF)
52 , myOrientationColumn(0xFFFFFFFF)
73 const DtUUID& hostGlobalId()
const;
74 void setHostGlobalId(
const DtUUID&
id);
79 const bool locationChanged()
const;
81 const double heading()
const;
82 const double pitch()
const;
83 const double roll()
const;
85 const DtVector& worldPosition()
const;
86 const DtVector& relativePosition()
const;
87 const DtVector& parentPosition()
const;
88 const DtVector& localPosition()
const;
89 const DtDcm& worldOrientationMatrix()
const;
90 const bool localPositionIsValid()
const;
91 const bool frozen()
const;
92 void setFrozen(
const bool&);
94 const DtDcm& parentOrientationMatrix()
const;
95 void setLocalOrientationMatrix(
const DtDcm&);
97 const DtDcm& localOrientationMatrix()
const;
99 void setLocalPosition(
const DtVector&);
100 void setWorldPosition(
const DtVector&);
101 void setParentPosition(
const DtVector&);
102 void setWorldOrientationMatrix(
const DtDcm&);
104 const DtTaitBryan orientation()
const;
105 void setOrientation(
const DtTaitBryan&);
107 const DtTaitBryan& worldOrientation()
const;
108 const DtTaitBryan& topographicOrientation()
const;
109 const DtTaitBryan& parentOrientation()
const;
110 const DtTaitBryan& localOrientation()
const;
112 void setLocalOrientation(
const DtTaitBryan&);
113 void setLocalOrientationWrtDatabase(
const DtTaitBryan&);
114 const DtTaitBryan& localOrientationWrtDatabase()
const;
115 void setWorldOrientation(
const DtTaitBryan&);
116 void setParentOrientation(
const DtTaitBryan&);
123 const bool spatiallyFrozen()
const;
126 virtual void makeWritable();
129 virtual void makeReadOnly();
130 void slot_hostDestroyed();
150 const DtUUID& hostGlobalId()
const;
152 const bool localPositionIsValid()
const;
155 const DtVector& worldPosition()
const;
156 const DtVector& relativePosition()
const;
157 const DtVector& parentPosition()
const;
159 const DtDcm& parentOrientationMatrix()
const;
161 const DtVector& localPosition()
const;
163 const DtDcm& worldOrientationMatrix()
const;
164 const DtDcm& localOrientationMatrix()
const;
165 const DtTaitBryan& localOrientationWrtDatabase()
const;
167 const double heading()
const;
168 const double pitch()
const;
169 const double roll()
const;
171 const DtTaitBryan orientation()
const;
172 const DtTaitBryan& worldOrientation()
const;
173 const DtTaitBryan& topographicOrientation()
const;
174 const DtTaitBryan& parentOrientation()
const;
175 const DtTaitBryan& localOrientation()
const;
176 const bool frozen()
const;
178 const bool locationChanged()
const;
181 void refreshKinematicState()
const;
184 const bool spatiallyFrozen()
const;
193 void setLocationChanged(
bool);
194 virtual void needsKinematicStateRefresh();
197 void handleDataUpdated(
const std::vector<UInt32>& attributesUpdated);
227 virtual bool forceAdvance();
229 void updateDataStorage();
233 myCurrentFrameState.updateStateData(sd);
234 myNextFrameState.updateStateData(sd);
242 myCurrentFrameState.aboutToBeDeleted();
243 myNextFrameState.aboutToBeDeleted();
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:63
tbb::mutex myKinematicStateMutex
Definition: environmentalLocationStateComponent.h:204
unsigned int UInt32
Definition: stateDataTypes.h:18
virtual void aboutToBeDeleted() override
Definition: environmentalLocationStateComponent.h:239
UInt32 myOrientationColumn
Definition: environmentalLocationStateComponent.h:59
DtStateData * myStateData
Definition: environmentalLocationStateComponent.h:134
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
bool myLocationChanged
Definition: environmentalLocationStateComponent.h:201
bool isDoubleBuffered()
Definition: environmentalLocationStateComponent.h:218
void updateStateData(DtStateData *sd)
Implement to update data storage to the new state data.
Definition: environmentalLocationStateComponent.h:231
const DtEnvironmentalLocationStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: environmentalLocationStateComponent.h:148
Definition: stateComponent.h:67
Definition: stateComponent.h:257
DtStateDataManager * myStateDataManager
Definition: environmentalLocationStateComponent.h:202
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:136
DtEnvironmentalLocationStateComponentNextFrame myNextFrameState
Definition: environmentalLocationStateComponent.h:248
DtEnvironmentalLocationStateComponentData()
Definition: environmentalLocationStateComponent.h:20
virtual const DtFrameStateInterface * nextFrameState() const
Definition: environmentalLocationStateComponent.h:221
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:206
DtEnvironmentalLocationStateComponentData & operator=(const DtEnvironmentalLocationStateComponentData &rhs)
Definition: environmentalLocationStateComponent.h:29
const DtEnvironmentalLocationStateComponentData & frameState() const
Next frame access write access. Ensure this is only used in a single thread (i.e.a controller thread)...
Definition: environmentalLocationStateComponent.h:70
DtEnvironmentalLocationStateComponentData(const DtEnvironmentalLocationStateComponentData &orig)
Definition: environmentalLocationStateComponent.h:24
boost::signals2::scoped_connection myHostDeletedConnection
Definition: environmentalLocationStateComponent.h:137
DtEnvironmentalLocationStateComponentData & frameState()
Definition: environmentalLocationStateComponent.h:71
bool myNeedsKinematicStateRefresh
Definition: environmentalLocationStateComponent.h:205
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: environmentalLocationStateComponent.h:213
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:219
unsigned int myCallbackHandle
Definition: environmentalLocationStateComponent.h:203
3) Define the current frame class. This will be used for read access.
Definition: environmentalLocationStateComponent.h:141
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:365
virtual DtFrameStateInterface * nextFrameState()
Definition: environmentalLocationStateComponent.h:220
DtVector myParentLocation
Definition: environmentalLocationStateComponent.h:249
void advanceFrame(const DtEnvironmentalLocationStateComponentData &data)
Definition: environmentalLocationStateComponent.h:188
virtual void aboutToBeDeleted()
bool myFrozen
Definition: environmentalLocationStateComponent.h:39
Definition: environmentalLocationStateComponent.h:18
DtEnvironmentalLocationStateComponentCurrentFrame myCurrentFrameState
Definition: environmentalLocationStateComponent.h:247
const DtFrameStateInterface * currentFrameState() const
Definition: environmentalLocationStateComponent.h:219
DtStateComponentCreator< DtEnvironmentalLocationStateComponentImplementation > DtEnvironmentalLocationStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: environmentalLocationStateComponent.h:254
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
const LOM::ReadEnvironmentProcessRepository myReadEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:200
DtEnvironmentalLocationStateComponentData myData
Definition: environmentalLocationStateComponent.h:57
LOM::WriteEnvironmentProcessRepository myWriteEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:133
Definition: rwVrfKinematicState.h:25
#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
DtStateDataManager * myStateDataManager
Definition: environmentalLocationStateComponent.h:135
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: environmentalLocationStateComponent.h:44
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:282
2) Define the next frame class. This will be used for write access.
Definition: environmentalLocationStateComponent.h:63
UInt32 myCenterPositionColumn
Definition: environmentalLocationStateComponent.h:58
DtStateData * myStateData
Definition: environmentalLocationStateComponent.h:208
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71