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)
75 const DtUUID& hostGlobalId()
const;
76 void setHostGlobalId(
const DtUUID&
id);
78 const int objectAttachMode()
const;
79 void setObjectAttachMode(
const int&);
84 const bool locationChanged()
const;
86 const double heading()
const;
87 const double pitch()
const;
88 const double roll()
const;
90 const DtVector& worldPosition()
const;
91 const DtVector& relativePosition()
const;
92 const DtVector& parentPosition()
const;
93 const DtVector& localPosition()
const;
94 const DtDcm& worldOrientationMatrix()
const;
95 const bool localPositionIsValid()
const;
96 const bool frozen()
const;
97 void setFrozen(
const bool&);
99 const DtDcm& parentOrientationMatrix()
const;
100 void setLocalOrientationMatrix(
const DtDcm&);
102 const DtDcm& localOrientationMatrix()
const;
104 void setLocalPosition(
const DtVector&);
105 void setWorldPosition(
const DtVector&);
106 void setParentPosition(
const DtVector&);
107 void setWorldOrientationMatrix(
const DtDcm&);
109 const DtTaitBryan orientation()
const;
110 void setOrientation(
const DtTaitBryan&);
112 const DtTaitBryan& worldOrientation()
const;
113 const DtTaitBryan& topographicOrientation()
const;
114 const DtTaitBryan& parentOrientation()
const;
115 const DtTaitBryan& localOrientation()
const;
117 void setLocalOrientation(
const DtTaitBryan&);
118 void setLocalOrientationWrtDatabase(
const DtTaitBryan&);
119 const DtTaitBryan& localOrientationWrtDatabase()
const;
120 void setWorldOrientation(
const DtTaitBryan&);
121 void setParentOrientation(
const DtTaitBryan&);
126 virtual void refreshKinematicState(
const DtEnvironmentalLocationStateComponent&);
128 const bool spatiallyFrozen()
const;
131 virtual void makeWritable();
134 virtual void makeReadOnly();
135 void slot_hostDestroyed();
155 const DtUUID& hostGlobalId()
const;
156 const int objectAttachMode()
const;
158 const bool localPositionIsValid()
const;
161 const DtVector& worldPosition()
const;
162 const DtVector& relativePosition()
const;
163 const DtVector& parentPosition()
const;
165 const DtDcm& parentOrientationMatrix()
const;
167 const DtVector& localPosition()
const;
169 const DtDcm& worldOrientationMatrix()
const;
170 const DtDcm& localOrientationMatrix()
const;
171 const DtTaitBryan& localOrientationWrtDatabase()
const;
173 const double heading()
const;
174 const double pitch()
const;
175 const double roll()
const;
177 const DtTaitBryan orientation()
const;
178 const DtTaitBryan& worldOrientation()
const;
179 const DtTaitBryan& topographicOrientation()
const;
180 const DtTaitBryan& parentOrientation()
const;
181 const DtTaitBryan& localOrientation()
const;
182 const bool frozen()
const;
184 const bool locationChanged()
const;
187 void refreshKinematicState()
const;
190 const bool spatiallyFrozen()
const;
199 void setLocationChanged(
bool);
200 virtual void needsKinematicStateRefresh();
203 void handleDataUpdated(
const std::vector<UInt32>& attributesUpdated);
233 virtual bool forceAdvance();
235 void updateDataStorage();
239 myCurrentFrameState.updateStateData(sd);
240 myNextFrameState.updateStateData(sd);
248 myCurrentFrameState.aboutToBeDeleted();
249 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:63
tbb::mutex myKinematicStateMutex
Definition: environmentalLocationStateComponent.h:210
unsigned int UInt32
Definition: stateDataTypes.h:18
virtual void aboutToBeDeleted() override
Definition: environmentalLocationStateComponent.h:245
DtStateData * myStateData
Definition: environmentalLocationStateComponent.h:139
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
bool myLocationChanged
Definition: environmentalLocationStateComponent.h:207
bool isDoubleBuffered()
Definition: environmentalLocationStateComponent.h:224
void updateStateData(DtStateData *sd)
Implement to update data storage to the new state data.
Definition: environmentalLocationStateComponent.h:237
const DtEnvironmentalLocationStateComponentData & frameState() const
Current frame state only can access current frame buffers. This ensures thread safety.
Definition: environmentalLocationStateComponent.h:153
Definition: stateComponent.h:68
Definition: stateComponent.h:266
DtStateDataManager * myStateDataManager
Definition: environmentalLocationStateComponent.h:208
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:141
DtEnvironmentalLocationStateComponentNextFrame myNextFrameState
Definition: environmentalLocationStateComponent.h:254
DtEnvironmentalLocationStateComponentData()
Definition: environmentalLocationStateComponent.h:20
virtual const DtFrameStateInterface * nextFrameState() const
Definition: environmentalLocationStateComponent.h:227
DtRwVrfKinematicState * myKinematicState
Definition: environmentalLocationStateComponent.h:212
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:142
DtEnvironmentalLocationStateComponentData & frameState()
Definition: environmentalLocationStateComponent.h:73
bool myNeedsKinematicStateRefresh
Definition: environmentalLocationStateComponent.h:211
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: environmentalLocationStateComponent.h:219
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:228
unsigned int myCallbackHandle
Definition: environmentalLocationStateComponent.h:209
3) Define the current frame class. This will be used for read access.
Definition: environmentalLocationStateComponent.h:146
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:379
virtual DtFrameStateInterface * nextFrameState()
Definition: environmentalLocationStateComponent.h:226
DtVector myParentLocation
Definition: environmentalLocationStateComponent.h:255
void advanceFrame(const DtEnvironmentalLocationStateComponentData &data)
Definition: environmentalLocationStateComponent.h:194
virtual void aboutToBeDeleted()
bool myFrozen
Definition: environmentalLocationStateComponent.h:39
Definition: environmentalLocationStateComponent.h:18
DtEnvironmentalLocationStateComponentCurrentFrame myCurrentFrameState
Definition: environmentalLocationStateComponent.h:253
const DtFrameStateInterface * currentFrameState() const
Definition: environmentalLocationStateComponent.h:225
DtStateComponentCreator< DtEnvironmentalLocationStateComponentImplementation > DtEnvironmentalLocationStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: environmentalLocationStateComponent.h:260
#define DEFINE_ACCESSOR_MUTATOR(ReturnType, Accessor, Mutator)
Definition: doubleBufferedDataStorage.h:23
const LOM::ReadEnvironmentProcessRepository myReadEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:206
LOM::WriteEnvironmentProcessRepository myWriteEnvironmentProcessRepository
Definition: environmentalLocationStateComponent.h:138
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:140
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:291
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
DtStateData * myStateData
Definition: environmentalLocationStateComponent.h:214
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73