17 #include <tbb/spin_rw_mutex.h>
19 #include <unordered_map>
20 #include <unordered_set>
21 #include <boost/signals2.hpp>
25 class DtCoordinateSystem;
58 virtual DtStateDataWrapper* createSimObject(
const DtEntityIdentifier& entid)
const override;
81 return myLocalObjects;
86 virtual bool has(
const DtUUID&)
const;
87 virtual bool has(
unsigned long long)
const;
105 return mySimObjectsByUUID;
111 virtual void slot_tick();
125 virtual const std::set<makVrv::DtUniqueID>& dIGuyIds();
126 virtual const std::set<makVrv::DtUniqueID>& tacticalGraphicElements()
const;
129 virtual DtVector centerOfMass(
const std::set<DtUUID>& uuids,
bool ignoreEmbarked =
true)
const;
134 virtual bool clearing()
const;
138 virtual void signalWhenAllObjectsDiscovered(
const std::map<short, int>&);
140 typedef boost::signals2::signal<void (DtSimObjectReference, DtStateComponent::StateComponentType)>
StateComponentSignal;
149 : signal_stateComponentAdded(orig.signal_stateComponentAdded)
150 , signal_stateComponentRemoved(orig.signal_stateComponentRemoved)
151 , connections(orig.connections)
168 virtual void resizeContainer(
unsigned);
170 template <
typename T_Component>
173 resizeContainer(T_Component::ComponentType());
174 return *(myStateComponentSignals[T_Component::ComponentType()].signal_stateComponentAdded);
177 template <
typename T_Component>
180 resizeContainer(T_Component::ComponentType());
181 return *(myStateComponentSignals[T_Component::ComponentType()].signal_stateComponentRemoved);
186 boost::signals2::signal<void (const DtUUID&, const DtUUID&, DtSimObjectReference)>
signal_uuidChanged;
197 virtual int maxMarkingTextLengthFor(
const DtEntityType&)
const;
201 virtual int defaultMaxMarkingTextLengthFunction(
const DtEntityType&);
204 virtual void uniqueEntityTypes(
makVrv::DtUniqueID, std::vector<DtEntityType>& entityTypes);
209 return myStealthStates;
226 virtual void slot_uuidChanged(
const DtUUID& oldUUID,
const DtUUID& newUUID);
229 virtual void uniqueEntityTypes(
makVrv::DtUniqueID, std::vector<DtEntityType>& entityTypes, std::set<std::string>& typesChecked);
231 virtual void slot_gateUnlocked();
232 virtual void slot_gateLocked();
233 virtual void slot_modelSetLoaded();
237 virtual void setupComponentModifiedConnections();
238 virtual void slot_onCoordinateSystemChanged(
const std::string& coordinateSystem,
const std::string& coordinateParameters);
284 typedef std::unordered_map<DtUUID, unsigned long long>
IdsByUUID;
292 bool myClearing =
false;
std::set< DtSimObjectReference > myObjectsUpdated
Definition: vrfGuiSimObjectManager.h:261
UUID is a unique ID wrapper class.
Definition: uuid.h:59
makVrv::DtDe & myDe
Definition: vrfGuiSimObjectManager.h:254
std::map< int, std::set< DtSimObjectReference > > myComponentsUpdated
Definition: vrfGuiSimObjectManager.h:260
SimObjectsByUUID SimObjects
Definition: vrfGuiSimObjectManager.h:102
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DT_DLL_VRFGUICORE std::vector< DtUUID > convertMarkingTextVectorToUUIDVector(const std::vector< DtString > &v)
Helper code for connectors. Does not exist in it's own project but is included by all projects that u...
Definition: vrfConnectionHelper.h:130
DT_DLL_VRFGUICORE std::vector< std::string > convertUUIDVectorToMarkingTextVector(const std::vector< DtUUID > &v)
Returns a vector of objectName() from UUID.
boost::signals2::signal< void(const DtUUID &, const DtUUID &, DtSimObjectReference)> signal_uuidChanged
Definition: vrfGuiSimObjectManager.h:186
StateComponent(const StateComponent &orig)
Definition: vrfGuiSimObjectManager.h:148
ComponentsAddedRemoved myComponentsRemoved
Definition: vrfGuiSimObjectManager.h:250
Contains makVrv:DtSelectionManager class.
Definition: vrfGuiSimObjectManager.h:141
std::set< makVrv::DtUniqueID > myStealthStates
Definition: vrfGuiSimObjectManager.h:252
std::map< DtUUID, DtGuiLocalObject * > myLocalObjects
Definition: vrfGuiSimObjectManager.h:277
const SimObjectsByUUID & simObjects() const
Definition: vrfGuiSimObjectManager.h:103
StateComponent()
Definition: vrfGuiSimObjectManager.h:143
SimObjectsByUUID mySimObjectsByUUID
Definition: vrfGuiSimObjectManager.h:282
std::unordered_set< makVrv::DtUniqueID > myIdsToCheckForDIGuy
Definition: vrfGuiSimObjectManager.h:266
DtMaxMarkingTextLengthFunction myMaxMarkingTextLengthFunction
Definition: vrfGuiSimObjectManager.h:267
std::map< short, int > myWaitingForDiscovery
Definition: vrfGuiSimObjectManager.h:268
ComponentsAddedRemoved myComponentsAdded
Definition: vrfGuiSimObjectManager.h:249
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
boost::signals2::connection myTickConnection
Definition: vrfGuiSimObjectManager.h:257
makVrv::DtDe & myDe
Definition: vrfGuiSimObjectManager.h:61
StateComponentSignal & signalWhenStateComponentRemoved()
Definition: vrfGuiSimObjectManager.h:178
makVrv::DtSignalConnectionManager myConnections
Definition: vrfGuiSimObjectManager.h:275
static const DtUUID & nullUUID()
tbb::spin_mutex myUpdatedMutex
Definition: vrfGuiSimObjectManager.h:259
const std::map< DtUUID, DtGuiLocalObject * > & localObjects() const
Definition: vrfGuiSimObjectManager.h:79
Contains makVrv::DtVirtualBaseClass class.
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
boost::signals2::signal< void()> signal_cleared
Definition: vrfGuiSimObjectManager.h:192
std::set< makVrv::DtUniqueID > myTacticalGraphicElements
Definition: vrfGuiSimObjectManager.h:264
const SimObjects & simObjects() const
Definition: vrfGuiSimObjectManager.h:44
boost::signals2::signal< void(DtSimObjectReference)> signal_objectAdded
Definition: vrfGuiSimObjectManager.h:184
boost::signals2::signal< void()> signal_allObjectsDiscovered
If set up for it, a signal sent when the object counts map has had all the objects of all kind/domain...
Definition: vrfGuiSimObjectManager.h:191
std::vector< DtUniqueID > SceneObjectIdList
Public Type Definitions.
Definition: DtElementData.h:38
boost::signals2::scoped_connection myGateUnlockedConnection
Definition: vrfGuiSimObjectManager.h:271
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
This class is the central access point for all current-frame state of all objects in the simulation i...
Definition: simObjectManagerTemplate.h:39
DtSimObjectReference findStateView(makVrv::DtUniqueID id) const
Definition: vrfGuiSimObjectManager.h:74
std::set< DtSimObjectReference > myObjectsDeleted
Definition: vrfGuiSimObjectManager.h:262
std::unordered_map< DtUUID, DtSimObjectReference > SimObjectsByUUID
Definition: vrfGuiSimObjectManager.h:101
ElementType
Definition: DtElementEntry.h:26
StateComponent & operator=(const StateComponent &rhs)
Definition: vrfGuiSimObjectManager.h:154
StateComponentSignals myStateComponentSignals
Definition: vrfGuiSimObjectManager.h:280
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
boost::signals2::signal< void(const DtString &, const DtString &, DtSimObjectReference)> signal_objectRenamed
Definition: vrfGuiSimObjectManager.h:187
IdsByUUID myIdsByUUID
Definition: vrfGuiSimObjectManager.h:285
std::map< DtUUID, DtUUID > myUUIDChanged
Definition: vrfGuiSimObjectManager.h:287
Definition: guiLocalObject.h:18
std::map< unsigned long long, DtSimObjectReferenceTemplate< DtGuiSimObject >> SimObjects
Definition: simObjectManagerTemplate.h:93
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Definition: stateComponent.h:52
const std::set< makVrv::DtUniqueID > & stealthStates() const
Returns all the current stealth states. myEntityId is the site/app id of the stealth.
Definition: vrfGuiSimObjectManager.h:207
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: stateDataWrapper.h:49
std::map< DtUUID, std::set< int > > ComponentsAddedRemoved
Definition: vrfGuiSimObjectManager.h:247
StateComponentSignal & signalWhenStateComponentAdded()
Definition: vrfGuiSimObjectManager.h:171
Base class to provide boost signal/slot management.
The DtVrfGuiSimObjectManager class is a wrapper around the DtStateDataManager created in the network ...
Definition: vrfGuiSimObjectManager.h:36
The DtGuiLocalObjectManager is the interface to be used when creating objects that are not to be publ...
Definition: guiLocalObjectManager.h:393
std::shared_ptr< StateComponentSignal > signal_stateComponentRemoved
Definition: vrfGuiSimObjectManager.h:165
std::set< makVrv::DtUniqueID > myDIGuyIds
Definition: vrfGuiSimObjectManager.h:265
std::vector< StateComponent > StateComponentSignals
Definition: vrfGuiSimObjectManager.h:279
Contains makVrv::DtUniqueID type.
std::shared_ptr< StateComponentSignal > signal_stateComponentAdded
Definition: vrfGuiSimObjectManager.h:164
boost::signals2::signal< void(DtSimObjectReference, DtStateComponent::StateComponentType)> StateComponentSignal
Definition: vrfGuiSimObjectManager.h:140
boost::signals2::signal< void(DtSimObjectReference)> signal_objectDeleted
Definition: vrfGuiSimObjectManager.h:185
boost::function< int(const DtEntityType &)> DtMaxMarkingTextLengthFunction
Definition: vrfGuiSimObjectManager.h:30
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
boost::signals2::scoped_connection myGateLockedConnection
Definition: vrfGuiSimObjectManager.h:270
DtModelSetId
Definition: DtModelSetEnums.h:19
tbb::spin_mutex myAdvanceFrameMutex
Definition: vrfGuiSimObjectManager.h:289
tbb::spin_rw_mutex myUUIDChangedMutex
Definition: vrfGuiSimObjectManager.h:288
std::shared_ptr< makVrv::DtSignalConnectionManager > connections
Definition: vrfGuiSimObjectManager.h:163
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
The GuiSimObjectManager will hold instances of DtGuiLocalObject.
Definition: vrfGuiSimObjectManager.h:40
DT_DLL_VRFGUICORE std::vector< std::string > convertUUIDVectorToUUIDStringVector(const std::vector< DtUUID > &v)
Returns a vector of uuidString.
std::unordered_map< DtUUID, unsigned long long > IdsByUUID
Definition: vrfGuiSimObjectManager.h:284
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfGuiSimObjectManager.h:258
DtEntityType myStealthType
Definition: vrfGuiSimObjectManager.h:253
DtSimObjectReference findStateView(const DtUUID &id) const
Definition: vrfGuiSimObjectManager.h:77
tbb::spin_rw_mutex myComponentMutex
Definition: vrfGuiSimObjectManager.h:246
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73