26 #include <legionDataStore/simulationDatabase.h>
27 #include <legionDataStore/writeStateInstance.h>
28 #include <legionDataStore/readStateInstance.h>
29 #include "legionDataStore/view.h"
31 #include <vlutil/vlString.h>
32 #include <vlpi/disEnums.h>
33 #include <tbb/spin_rw_mutex.h>
34 #include <tbb/spin_mutex.h>
35 #include <tbb/mutex.h>
37 #include <boost/signals2.hpp>
41 class WriteEntityRepository;
42 class ReadEntityRepository;
47 class SimulationDatabase;
48 class WriteStateInstance;
56 class DtStateDataManager;
57 class DtLaserDesignatorStateComponent;
58 class DtIffStateComponent;
59 class DtActiveSonarStateComponent;
60 class DtTaskVisualizationStateComponent;
61 class DtRadioTransmitterStateComponent;
62 class DtNavAidRadioTransmitterStateComponent;
63 class DtUnderwaterAcousticsStateComponent;
64 class DtEmitterSystemStateComponent;
65 class DtRadioReceiverStateComponent;
66 class DtSimulatedObjectStateComponent;
67 class DtLocationStateComponent;
68 class DtAisDataStateComponent;
69 class DtAircraftLightingStateComponent;
70 class DtGroundVehicleLightingStateComponent;
71 class DtSimpleSimulatedObjectStateComponent;
84 template <
typename T_Component>
87 if (hasStateComponentType(T_Component::ComponentType()))
89 return (dynamic_cast<const T_Component*>(getStateComponent(T_Component::ComponentType())) !=
nullptr);
95 template <
typename T_Component>
98 return dynamic_cast<const T_Component*
>(getStateComponent(T_Component::ComponentType()));
103 template <
typename T_Component>
107 std::vector<const T_Component*> results;
108 int iLimit = numComponents(scType);
110 for (i = 0; i < iLimit; i++)
112 results.push_back(dynamic_cast<const T_Component*>(getStateComponent(scType, i)));
120 virtual void aboutToBeDeleted();
122 unsigned long long legionGlobalId()
const;
154 template <
typename T_Component>
155 T_Component* addStateComponent(
bool checkWritable =
false,
bool isRemote =
false);
157 std::set<int> modifiedStateComponentTypes()
const;
158 bool isModified()
const;
163 template <
typename T_Component>
164 void removeStateComponents();
168 if (scType < myFrameState.size())
170 return myFrameState[scType].size();
177 template <
typename T_Component>
182 const T_Component* comp =
dynamic_cast<const T_Component*
>(getStateComponent(scType, index));
192 template <
typename T_Component>
196 std::vector<T_Component*> results;
198 if (scType < myFrameState.size())
200 std::vector<DtFrameStateInterface*>::const_iterator iter = myFrameState[scType].begin();
201 std::vector<DtFrameStateInterface*>::const_iterator end = myFrameState[scType].end();
204 results.push_back(dynamic_cast<T_Component*>(*iter));
214 if (scType < myFrameState.size())
216 if (index < myFrameState[scType].
size())
218 return myFrameState[scType][index];
227 if (scType < myFrameState.size())
229 if (index < myFrameState[scType].
size())
231 return myFrameState[scType][index];
241 template <
typename T_Component>
244 T_Component* comp = getStateComponent<T_Component>(0,
false);
246 return (comp && comp->isWritable());
250 template <
typename T_Component>
255 if (scType < myFrameState.size())
257 if (index < myFrameState[scType].
size())
263 T_Component* comp =
dynamic_cast<T_Component*
>(sc);
265 if (comp && (!checkWritable || comp->isWritable()))
282 virtual const DtString& markingText()
const override;
286 return myFrameState.size();
298 std::vector<std::vector<DtFrameStateInterface*> > myFrameState{};
311 bool isValid()
const;
312 bool isModified()
const;
315 template <
typename T_Component>
316 const T_Component* getStateComponent(
int index = 0)
const;
318 std::set<int> modifiedStateComponentTypes()
const;
325 if (scType < myFrameState.size())
327 return myFrameState[scType].size();
333 template <
typename T_Component>
337 std::vector<const T_Component*> results;
339 if (scType < myFrameState.size())
341 std::vector<const DtFrameStateInterface*>::const_iterator iter = myFrameState[scType].begin();
342 std::vector<const DtFrameStateInterface*>::const_iterator end = myFrameState[scType].end();
345 results.push_back(dynamic_cast<const T_Component*>(*iter));
357 virtual const DtString& markingText()
const override;
361 return myFrameState.size();
365 const std::vector<std::vector<const DtFrameStateInterface*> >&
frameStates()
const
370 bool advancedFrame()
const;
381 std::vector<std::vector<const DtFrameStateInterface*> > myFrameState{};
406 PublishComponentsOnly
425 virtual void invalidate();
426 virtual bool isValid()
const;
427 virtual bool isWritable()
const;
428 virtual void clearStateDataManager();
430 virtual void setAddToSimObjectManager(
bool);
433 return myAddToSimObjectManager;
436 template <
typename T_Component>
439 if (myWriteStateInstance.isValid())
441 return myWriteStateInstance.typeExtensionCount<T_Component>();
445 return getCurrentFrameNumberOfLegionComponents<T_Component>();
449 template <
typename T_Component>
452 if (myReadStateInstance && myReadStateInstance->isValid())
454 return myReadStateInstance->typeExtensionCount<T_Component>();
462 template <
typename T_Component>
465 if (myWriteStateInstance.isValid())
467 return myWriteStateInstance.typeExtensionCount<T_Component>();
469 else if (myReadStateInstance && myReadStateInstance->isValid())
471 return myReadStateInstance->typeExtensionCount<T_Component>();
477 template <
typename T_Component>
480 if (myWriteStateInstance.isValid())
482 return myWriteStateInstance.findTypeExtension<T_Component>(std::max(0, index));
486 return findCurrentFrameLegionComponent<T_Component>(index);
490 template <
typename T_Component>
493 if (myReadStateInstance && myReadStateInstance->isValid())
495 if (T_Component::isType(myReadStateInstance->instanceHandle()))
497 return T_Component(myReadStateInstance->instanceHandle());
500 return myReadStateInstance->findTypeExtension<T_Component>(std::max(0, index));
504 return T_Component();
508 virtual void markModified();
509 virtual void clearModified();
514 bool isModified()
const;
518 return myAdvancedFrame;
523 return myAdvancingFrame;
528 return &myNextFrameState;
533 return &myCurrentFrameState;
539 template <
typename T_Component>
542 return myNextFrameState.addStateComponent<T_Component>(checkWritable, isRemote);
545 template <
typename T_Component>
548 return myNextFrameState.isWritable<T_Component>();
553 if (myDatabase && myWriteStateInstance.isValid())
555 destroyInstance(myWriteStateInstance);
556 myWriteStateInstance = Legion::WriteStateInstance();
557 delete myReadStateInstance;
558 myReadStateInstance =
nullptr;
564 tbb::mutex::scoped_lock lock(theCreateInstanceMutex);
565 database()->destroyInstance(wsi);
569 virtual void createAndInitializeMainInstance();
571 template <
typename T_Component>
574 tbb::mutex::scoped_lock lock(theCreateInstanceMutex);
575 myWriteStateInstance = myDatabase->createInstance<T_Component>();
578 return T_Component(myWriteStateInstance.instanceHandle());
581 template <
typename T_Component>
584 if (!myWriteStateInstance.isValid())
590 tbb::mutex::scoped_lock lock(theCreateInstanceMutex);
591 T_Component comp = myDatabase->createInstance<T_Component>();
597 return T_Component();
600 template <
typename T_Component>
603 if (!myWriteStateInstance.isValid())
609 tbb::mutex::scoped_lock lock(theCreateInstanceMutex);
610 T_Component comp = myDatabase->createInstance<T_Component>();
613 myWriteStateInstance.addExtension(comp);
618 return T_Component();
621 template <
typename T_Component>
624 if (T_Component::ComponentType() < myStateComponents.size())
626 if (index < myStateComponents[T_Component::ComponentType()].size())
628 return myStateComponents[T_Component::ComponentType()][index];
635 template <
typename T_Component>
638 if (T_Component::ComponentType() < myStateComponents.size())
640 if (index < myStateComponents[T_Component::ComponentType()].size())
642 return myStateComponents[T_Component::ComponentType()][index];
649 template <
typename T_Component>
652 return myNextFrameState.getStateComponentList<T_Component>();
655 template <
typename T_Component>
658 return myCurrentFrameState.getStateComponentList<T_Component>();
661 template <
typename T_Component>
666 if (nextFrameState()->hasStateComponent<T_Component>())
670 return (nextFrameStateComponent<T_Component>()->isWritable());
677 return currentFrameState()->hasStateComponent<T_Component>();
688 template <
typename T_Component>
691 if (currentFrameState()->hasStateComponent<T_Component>())
693 return (dynamic_cast<const T_Component*>(currentFrameState()->getStateComponent<T_Component>()) !=
nullptr);
699 template <
typename T_Component>
702 T_Component* comp = nextFrameState()->getStateComponent<T_Component>(0);
703 if (comp && comp->isWritable())
713 template <
typename T_Component>
716 return currentFrameState()->getStateComponent<T_Component>(0);
723 void removeComponent(Legion::WriteStateInstance& set);
733 void setUserData(
unsigned long long);
734 unsigned long long userData()
const;
736 const DtUUID& uuid()
const;
737 void setUUID(
const DtUUID&);
741 void setCheckForNameReservation(
bool);
742 bool checkForNameReservation()
const;
744 void setGlobalId(
const DtString& s);
747 void setMarkingText(
const DtString& name);
748 const DtString& markingText()
const;
750 void setAppearance(
const DtAppearance&);
751 DtAppearance appearance()
const;
753 void setForceType(DtForceType force);
754 DtForceType forceType()
const;
756 const DtString parentGlobalId()
const;
763 const DtUUID& nextFrameHostId()
const;
764 const DtUUID& currentFrameHostId()
const;
766 bool isClutterEntity()
const;
769 void setEntityType(
const DtEntityType& type);
772 DtEntityType
entityType()
const {
return DtEntityType(objectType()); };
773 DtEntityType objectType()
const;
775 void setEntityId(
const DtEntityIdentifier& s);
776 DtEntityIdentifier entityId()
const;
779 virtual void setAwaitingTransfer(
bool);
782 return myAwaitingTransfer;
789 virtual bool createPublicData(
const DtVrfObjectParameters*,
bool isReflectedObject,
const DtEntityType& et);
797 template <
typename T_Class>
798 void removeInstanceUpdatedCallback(Legion::InstanceHandle instanceHandle,
unsigned int callbackHandle);
799 template <
typename T_Class>
801 const std::vector<Legion::AttributeIndex>& attributeIndexFilter = std::vector<Legion::AttributeIndex>());
803 virtual void advanceFrame();
811 void setIsLocal(
bool b);
812 bool isLocal()
const;
816 return myPublishFlag;
821 return ((myPublishFlag == PublishAll) || (myPublishFlag == PublishComponentsOnly));
826 return myStateDataManager;
831 return myStateDataManager;
834 double absRealTime()
const;
838 return myCoordinateSystem;
843 return myWriteStateInstance;
848 return myReadStateInstance;
853 return myConvertedToLocal;
857 UInt64 legionGlobalId()
const;
860 virtual void clearComponents();
890 virtual void removeIffSystem();
894 virtual void removeUnderwaterAcousticsSystem();
906 virtual void convertToRemote(
bool onAdvanceFrame =
true);
909 virtual void convertToLocal();
919 virtual void shuttingDown();
935 static void addDefaultPublicDataFor(
const std::string& type,
const std::string& componentCreator);
936 static void removeDefaultPublicDataFor(
const std::string& type,
const std::string& componentCreator);
937 static std::set<std::string> defaultPublicDataFor(DtEntityType defaultEntityType,
const std::string& dislpayName,
const std::string& parameterType);
941 static void addPublicDataFor(
const std::string& type,
const std::string& componentCreator);
942 static void removePublicDataFor(
const std::string& type,
const std::string& componentCreator);
943 static std::set<std::string> additionalPublicDataFor(DtEntityType defaultEntityType,
const std::string& dislpayName,
const std::string& parameterType);
949 static void setDefaultMainComponentFor(
const std::string& type,
const std::string& defaultPublicData);
950 static std::string defaultMainComponentFor(DtEntityType defaultEntityType,
const std::string& dislpayName,
const std::string& type);
955 virtual void aboutToBeDeleted();
957 virtual void setPublishingOnLegionNetwork(
bool b);
960 return myPublishingOnLegionNetwork;
970 virtual DtStateData* currentFrameHostStateData()
const;
975 virtual void hostChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
977 virtual void subordinatesChanged(
const std::vector<DtUUID>& oldSubordinates,
const std::vector<DtUUID>& newSubordinates);
988 virtual std::string defaultParameterTypeForEntityType(
const DtEntityType&)
const;
992 virtual void completeRemoteConversion();
994 virtual void hostWasDeleted();
1000 virtual void uuidChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
1001 virtual void markingTextChanged(
const DtString& oldUUID,
const DtString& newUUID);
1011 boost::signals2::signal<void (const DtStateData*, const DtUUID& oldUUID, const DtUUID& newUUID)>
signal_hostChanged;
1030 boost::signals2::signal<void (const DtStateData*, const std::vector<DtUUID>& added,
const std::vector<DtUUID>& removed)> signal_subordinatesChanged;
1048 bool myIsModified =
true;
1076 typedef std::map<std::string, std::set<std::string> >
PublicData;
1096 bool myAdvancingFrame =
false;
1097 bool myConvertedToLocal =
false;
1098 bool myAddToSimObjectManager =
true;
1099 bool myOwnsComponents =
false;
1106 #include <vrfStateData/stateData.inl>
unsigned int StateComponentType
Definition: stateComponent.h:56
bool isWritable()
Definition: stateData.h:242
DtEntityType myEntityType
Definition: stateData.h:1102
UUID is a unique ID wrapper class.
Definition: uuid.h:59
bool myAdvancedFrame
Definition: stateData.h:1060
Instances of DtVrfObjectParameters are the readable/writeable objects that contain the information ne...
Definition: vrfObjectParameters.h:64
boost::signals2::scoped_connection myMarkingTextChangedConnection
Definition: stateData.h:1070
T_Component * nextFrameStateComponent()
Definition: stateData.h:700
std::vector< T_Component * > getNextFrameStateComponentList() const
Definition: stateData.h:650
const DtSimulatedObjectStateComponent * myCurrentFrameSimulatedObjectStateComponent
Definition: stateData.h:1088
const T_Component * getStateComponent() const
Definition: stateData.h:96
bool advancingFrame() const
Definition: stateData.h:521
DtExternalCurrentFrameState(DtStateData *sd)
Definition: stateData.h:304
Definition: stateDataTypes.h:23
unsigned long long SimStateID
Definition: stateDataTypes.h:16
std::vector< const T_Component * > getStateComponentList() const
Definition: stateData.h:334
SimStateID stateId() const
The stateId() is the index into internal vectors that this state data is in the position of...
Definition: stateData.h:792
const bool hasStateComponent() const
Definition: stateData.h:689
boost::signals2::scoped_connection mySubordinatesChangedConnection
Definition: stateData.h:1067
boost::signals2::signal< void(SimStateID)> signal_preFrameAdvanced
Definition: stateData.h:1014
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: radioTransmitterStateComponent.h:140
T_Component * getStateComponent(int index=0, bool checkWritable=true)
The current state frame data.
Definition: stateData.h:251
int mySessionId
Definition: stateData.h:1054
The DtLocationStateComponent interface contains the interface that all DtLocationStateComponents can ...
Definition: locationStateComponent.h:25
DtEntityType entityType() const
Definition: stateData.h:772
int getCurrentFrameNumberOfLegionComponents() const
Definition: stateData.h:450
bool convertedToLocal() const
Definition: stateData.h:851
const Coordinate_System * myCoordinateSystem
Definition: stateData.h:1052
std::vector< std::vector< DtStateComponent * > > myStateComponents
Definition: stateData.h:1056
bool cleared() const
Definition: stateData.h:725
int numberOfFrameStates() const
Definition: stateData.h:359
boost::signals2::signal< void(const DtStateData *)> signal_modified
Signal sent if this state had modified components.
Definition: stateData.h:1020
PublishFlag myPublishFlag
Simulated locally vs. remote representation.
Definition: stateData.h:1050
The DtSimulatedObjectStateComponent is an interface that all main components (those that are consider...
Definition: simulatedObjectStateComponent.h:21
T_Component createUnattachedInstance()
Definition: stateData.h:582
boost::signals2::signal< void(const DtString &, const DtString &, const DtUUID &, SimStateID)> signal_markingTextChanged
Definition: stateData.h:1008
static tbb::mutex theCreateInstanceMutex
Definition: stateData.h:1094
static PublicData theDefaultPublicData
Definition: stateData.h:1077
Definition: stateData.h:404
Legion::SimulationDatabase * database()
Definition: stateData.h:899
PublishFlag publishFlag() const
Definition: stateData.h:814
static DefaultMainComponentMap theDefaultMainComponentMap
Definition: stateData.h:1081
voidpf void uLong size
Definition: ioapi.h:39
const DtStateDataManager * stateDataManager() const
Definition: stateData.h:829
DtFrameStateInterface * getStateComponent(DtStateComponent::StateComponentType scType, int index=0)
Definition: stateData.h:225
void setPublishFlag(PublishFlag b)
Only called during construction.
Definition: stateData.h:982
Legion::SimulationDatabase * myDatabase
Definition: stateData.h:1040
bool addToSimObjectManager() const
Definition: stateData.h:431
bool hasStateComponent(bool checkWritable=false)
Definition: stateData.h:662
Definition: stateData.h:139
boost::signals2::signal< void(const DtStateData *)> signal_frameAdvanced
Signal sent regardless of whether or not this state had any modified components.
Definition: stateData.h:1017
virtual int numComponents(DtStateComponent::StateComponentType scType) const override
Definition: stateData.h:323
Contains the DtUUID class declaration.
unsigned long long UInt64
Definition: stateDataTypes.h:17
DT_DLL_vrfmodel makVrf::DtDynamicTerrainStateComponent * createStateComponent(DtLocalObject *localObject)
Creates a new state component on the localObject and returns a pointer to it. Note that the state com...
boost::signals2::signal< void(const DtUUID &, const DtUUID &, SimStateID)> signal_uuidChanged
Definition: stateData.h:1007
PublishFlag
Definition: stateData.h:402
Legion::ReadStateInstance * myReadStateInstance
Definition: stateData.h:1044
boost::signals2::signal< void(DtStateData *)> signal_convertedToLocal
Definition: stateData.h:1026
unsigned int componentCount() const
Definition: stateData.h:463
std::vector< std::vector< DtStateComponent * > > myCreatedStateComponents
Definition: stateData.h:1057
T_Component findNextFrameLegionComponent(int index=0)
Definition: stateData.h:478
const DtVrfObjectParameters * myParameters
Definition: stateData.h:1084
T_Component createInstance()
Definition: stateData.h:601
unsigned long long SimStateID
Definition: stateData.h:401
Definition: stateData.h:405
virtual int numComponents(DtStateComponent::StateComponentType scType) const override
Definition: stateData.h:166
T_Component findCurrentFrameLegionComponent(int index=0) const
Definition: stateData.h:491
void destroyInstance(const Legion::WriteStateInstance &wsi)
Definition: stateData.h:562
const DtStateComponent * getStateComponent(int index=0) const
Definition: stateData.h:636
int getNextFrameNumberOfLegionComponents()
Definition: stateData.h:437
std::vector< const T_Component * > getCurrentFrameStateComponentList() const
Definition: stateData.h:656
static PublicData theAdditionalPublicData
Definition: stateData.h:1078
boost::signals2::scoped_connection myHostChangedConnection
Definition: stateData.h:1068
std::vector< T_Component * > getStateComponentList() const
Definition: stateData.h:193
boost::signals2::signal< void(const DtExternalFrameStateInterface *)> signal_externalFrameStateToBeDestroyed
Definition: stateData.h:123
DtStateComponent * getStateComponent(int index=0)
Definition: stateData.h:622
DtStateData * myCurrentFrameHostStateData
Definition: stateData.h:1092
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
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: laserDesignatorStateComponent.h:61
bool myPublishingOnLegionNetwork
Definition: stateData.h:1085
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: activeSonarStateComponent.h:286
boost::signals2::signal< void(DtStateData *)> signal_convertedToRemote
Definition: stateData.h:1023
DtExternalNextFrameState * nextFrameState()
Definition: stateData.h:526
Legion::WriteStateInstance myWriteStateInstance
The basic data. This is what all components are hung off of if they are STE compliant.
Definition: stateData.h:1043
typedef long(ZCALLBACK *tell_file_func) OF((voidpf opaque
std::atomic< unsigned int > myComponentNumber
Definition: stateData.h:1065
boost::signals2::signal< void(const DtStateData *, const DtUUID &oldUUID, const DtUUID &newUUID)> signal_hostChanged
Signal sent when the host has changed.
Definition: stateData.h:1011
std::map< std::string, std::string > DefaultMainComponentMap
Definition: stateData.h:1080
const Coordinate_System * coordinateSystem() const
Definition: stateData.h:836
DtExternalCurrentFrameState myCurrentFrameState
Definition: stateData.h:1037
void setObjectType(const DtEntityType &type)
Definition: stateData.h:770
bool isWritable()
Definition: stateData.h:546
std::map< std::string, std::set< std::string > > PublicData
This is added for systems that might not have updated the ope files to the new format to get public d...
Definition: stateData.h:1076
void destroyMainInstance()
Definition: stateData.h:551
Legion::ReadStateInstance * readStateInstance() const
Definition: stateData.h:846
DtStateDataManager * myStateDataManager
Definition: stateData.h:1039
bool myMainComponentOnLegion
Definition: stateData.h:1086
std::vector< const T_Component * > getStateComponentList() const
Definition: stateData.h:104
Definition: stateData.h:301
UInt64 myLegionGlobalId
Definition: stateData.h:1064
boost::signals2::signal< void(DtStateComponent *)> signal_stateComponentRemoved
Definition: stateData.h:1028
DtExternalNextFrameState(DtStateData *sd)
Definition: stateData.h:142
Legion::WriteStateInstance writeStateInstance()
Definition: stateData.h:841
virtual const DtFrameStateInterface * getStateComponent(DtStateComponent::StateComponentType scType, int index=0) const override
Definition: stateData.h:212
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: emitterSystemStateComponent.h:466
bool advancedFrame() const
Definition: stateData.h:516
Definition: stateDataTypes.h:28
DtString myMarkingText
Definition: stateData.h:1101
Definition: stateComponent.h:52
boost::function< void(const std::vector< UInt32 > &)> DtInstanceUpdatedCallback
Definition: stateDataTypes.h:21
boost::signals2::scoped_connection myUUIDChangedConnection
Definition: stateData.h:1069
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: radioReceiverStateComponent.h:64
const DtLocationStateComponent * myCurrentFrameLocationStateComponent
Definition: stateData.h:1089
const DtExternalCurrentFrameState * currentFrameState() const
Definition: stateData.h:531
boost::signals2::signal< void(DtStateComponent *)> signal_stateComponentAdded
Definition: stateData.h:1027
std::set< DtFrameStateInterface * > myRemoveStateComponents
Definition: stateData.h:1058
boost::signals2::scoped_connection myHostWasDeletedConnection
Definition: stateData.h:1071
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: navAidRadioTransmitterStateComponent.h:20
bool myCleared
Definition: stateData.h:136
Definition: stateData.h:73
boost::signals2::signal< void(const DtStateData *)> signal_stateDataToBeDestroyed
Definition: stateData.h:1013
boost::signals2::signal< void(DtStateData *)> signal_convertingToRemote
Definition: stateData.h:1022
bool myConvertToRemote
Definition: stateData.h:1061
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: underwaterAcousticsStateComponent.h:106
bool publishingOnLegionNetwork() const
Definition: stateData.h:958
#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
bool awaitingTransfer() const
Definition: stateData.h:780
bool myAwaitingTransfer
Definition: stateData.h:1062
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: iffStateComponent.h:83
DtStateDataManager * stateDataManager()
Definition: stateData.h:824
const T_Component * getStateComponent(int index=0) const
The current state frame data.
Definition: stateData.h:178
bool myCleared
Definition: stateData.h:1082
tbb::spin_rw_mutex myCurrentFrameHostStateDataMutex
Definition: stateData.h:1093
const DtVrfObjectParameters * parameters()
Definition: stateData.h:925
DtExternalNextFrameState myNextFrameState
Even though this class contains the components, the frame classes will give access to those component...
Definition: stateData.h:1036
1) Define the interface class that will be used to represent the next and current frames...
Definition: taskVisualizationStateComponent.h:260
Contains the DtStateComponent class declaration.
virtual void addStateComponent(DtFrameStateInterface *)
Definition: stateData.h:130
DtSimulatedObjectStateComponent * myNextFrameSimulatedObjectStateComponent
Definition: stateData.h:1091
T_Component createMainInstance()
Definition: stateData.h:572
boost::signals2::signal< void(DtStateData *)> signal_convertingToLocal
Definition: stateData.h:1025
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
T_Component * addStateComponent(bool checkWritable=false, bool isRemote=false)
Using the global state component factory, creates and adds a new state of the given type...
Definition: stateData.h:540
bool hasStateComponent() const
Definition: stateData.h:85
bool isPublishedOnNetwork() const
Definition: stateData.h:819
SimStateID mySimStateID
Definition: stateData.h:1046
const std::vector< std::vector< const DtFrameStateInterface * > > & frameStates() const
Definition: stateData.h:365
const T_Component * currentFrameStateComponent() const
Definition: stateData.h:714
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73
int numberOfFrameStates() const
Definition: stateData.h:284
boost::signals2::signal< void(const DtStateData *)> signal_firstFrameAdvance
Signal sent on the first frame advance.
Definition: stateData.h:1005