9 #include <legionStandardOM/sets/readEnvironmentProcessRepository.hpp>
10 #include <legionStandardOM/sets/writeEnvironmentProcessRepository.hpp>
11 #include <tbb/mutex.h>
17 class DtStateDataManager;
25 : myFrozen(orig.myFrozen)
50 : DtLocationStateComponent(storage)
51 , myCenterPositionColumn(0xFFFFFFFF)
52 , myOrientationColumn(0xFFFFFFFF)
75 virtual const DtUUID& hostGlobalId()
const override;
76 virtual void setHostGlobalId(
const DtUUID&
id)
override;
78 virtual const int objectAttachMode()
const override;
79 virtual void setObjectAttachMode(
const int&)
override;
81 virtual const DtVector location()
const override;
82 virtual void setLocation(
const DtVector&)
override;
84 virtual const bool locationChanged()
const override;
86 virtual const double heading()
const override;
87 virtual const double pitch()
const override;
88 virtual const double roll()
const override;
90 virtual const DtVector& worldPosition()
const override;
91 virtual const DtVector& relativePosition()
const override;
92 virtual const DtVector& parentPosition()
const override;
93 virtual const DtVector& localPosition()
const override;
94 virtual const DtDcm& worldOrientationMatrix()
const override;
95 virtual const bool localPositionIsValid()
const override;
96 virtual const bool frozen()
const override;
97 virtual void setFrozen(
const bool&)
override;
99 virtual const DtDcm& parentOrientationMatrix()
const override;
100 virtual void setLocalOrientationMatrix(
const DtDcm&)
override;
102 virtual const DtDcm& localOrientationMatrix()
const override;
104 virtual void setLocalPosition(
const DtVector&)
override;
105 virtual void setWorldPosition(
const DtVector&)
override;
106 virtual void setParentPosition(
const DtVector&)
override;
107 virtual void setWorldOrientationMatrix(
const DtDcm&)
override;
109 virtual const DtTaitBryan orientation()
const override;
110 virtual void setOrientation(
const DtTaitBryan&)
override;
112 virtual const DtTaitBryan& worldOrientation()
const override;
113 virtual const DtTaitBryan& topographicOrientation()
const override;
114 virtual const DtTaitBryan& parentOrientation()
const override;
115 virtual const DtTaitBryan& localOrientation()
const override;
117 virtual void setLocalOrientation(
const DtTaitBryan&)
override;
118 virtual void setLocalOrientationWrtDatabase(
const DtTaitBryan&)
override;
119 virtual const DtTaitBryan& localOrientationWrtDatabase()
const override;
120 virtual void setWorldOrientation(
const DtTaitBryan&)
override;
121 virtual void setParentOrientation(
const DtTaitBryan&)
override;
126 virtual void refreshKinematicState(
const DtEnvironmentalLocationStateComponent&);
128 const bool spatiallyFrozen()
const;
131 virtual void makeWritable()
override;
134 virtual void makeReadOnly()
override;
135 void slot_hostDestroyed();
154 virtual const DtUUID& hostGlobalId()
const override;
155 virtual const int objectAttachMode()
const override;
157 virtual const bool localPositionIsValid()
const override;
158 virtual const DtVector location()
const override;
160 virtual const DtVector& worldPosition()
const override;
161 virtual const DtVector& relativePosition()
const override;
162 virtual const DtVector& parentPosition()
const override;
164 virtual const DtDcm& parentOrientationMatrix()
const override;
166 virtual const DtVector& localPosition()
const override;
168 virtual const DtDcm& worldOrientationMatrix()
const override;
169 virtual const DtDcm& localOrientationMatrix()
const override;
170 virtual const DtTaitBryan& localOrientationWrtDatabase()
const override;
172 virtual const double heading()
const override;
173 virtual const double pitch()
const override;
174 virtual const double roll()
const override;
176 virtual const DtTaitBryan orientation()
const override;
177 virtual const DtTaitBryan& worldOrientation()
const override;
178 virtual const DtTaitBryan& topographicOrientation()
const override;
179 virtual const DtTaitBryan& parentOrientation()
const override;
180 virtual const DtTaitBryan& localOrientation()
const override;
181 virtual const bool frozen()
const override;
183 virtual const bool locationChanged()
const override;
186 void refreshKinematicState()
const;
189 const bool spatiallyFrozen()
const;
198 void setLocationChanged(
bool);
199 virtual void needsKinematicStateRefresh();
202 void handleDataUpdated(
const std::vector<UInt32>& attributesUpdated);
230 virtual bool forceAdvance()
override;
232 virtual void updateDataStorage()
override;
236 myCurrentFrameState.updateStateData(sd);
237 myNextFrameState.updateStateData(sd);
245 myCurrentFrameState.aboutToBeDeleted();
246 myNextFrameState.aboutToBeDeleted();
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
tbb::mutex myKinematicStateMutex
Definition: environmentalLocationStateComponent.h:209
virtual void aboutToBeDeleted() override
Definition: environmentalLocationStateComponent.h:242
virtual DtFrameStateInterface * nextFrameState() override
Definition: environmentalLocationStateComponent.h:223
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
bool myLocationChanged
Definition: environmentalLocationStateComponent.h:206
bool isDoubleBuffered()
Definition: environmentalLocationStateComponent.h:221
const DtEnvironmentalLocationStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: environmentalLocationStateComponent.h:152
Definition: stateComponent.h:71
unsigned int UInt32
Definition: stateDataTypes.h:18
Definition: stateComponent.h:269
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: environmentalLocationStateComponent.h:222
DtStateDataManager * myStateDataManager
Definition: environmentalLocationStateComponent.h:207
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:140
DtEnvironmentalLocationStateComponentNextFrame myNextFrameState
Definition: environmentalLocationStateComponent.h:251
DtEnvironmentalLocationStateComponentData()
Definition: environmentalLocationStateComponent.h:20
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:211
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:72
DtEnvironmentalLocationStateComponentData(const DtEnvironmentalLocationStateComponentData &orig)
Definition: environmentalLocationStateComponent.h:24
boost::signals2::scoped_connection myHostDeletedConnection
Definition: environmentalLocationStateComponent.h:141
DtEnvironmentalLocationStateComponentData & frameState()
Definition: environmentalLocationStateComponent.h:73
bool myNeedsKinematicStateRefresh
Definition: environmentalLocationStateComponent.h:210
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: environmentalLocationStateComponent.h:234
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: environmentalLocationStateComponent.h:216
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
unsigned int myCallbackHandle
Definition: environmentalLocationStateComponent.h:208
3) Define the current frame class. This will be used for read access.
Definition: environmentalLocationStateComponent.h:145
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
DtVector myParentLocation
Definition: environmentalLocationStateComponent.h:252
void advanceFrame(const DtEnvironmentalLocationStateComponentData &data)
Definition: environmentalLocationStateComponent.h:193
virtual void aboutToBeDeleted()
bool myFrozen
Definition: environmentalLocationStateComponent.h:39
Definition: environmentalLocationStateComponent.h:18
DtEnvironmentalLocationStateComponentCurrentFrame myCurrentFrameState
Definition: environmentalLocationStateComponent.h:250
DtStateComponentCreator< DtEnvironmentalLocationStateComponentImplementation > DtEnvironmentalLocationStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: environmentalLocationStateComponent.h:257
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
const LOM::ReadEnvironmentProcessRepository myReadEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:205
LOM::WriteEnvironmentProcessRepository myWriteEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:138
Definition: rwVrfKinematicState.h:26
#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:139
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: environmentalLocationStateComponent.h:224
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:294
2) Define the next frame class. This will be used for write access.
Definition: environmentalLocationStateComponent.h:65
#define UNDEFINED_MUTATOR(Type, Set)
Definition: doubleBufferedDataStorage.h:44
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73