VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfGuiOrbatManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
7 
9 
10 #pragma once
11 
12 
14 #include <vrfGuiCore/vrfGuiCore.h>
15 #include <vrfGuiCore/orbatState.h>
16 #include <vrfutil/rwUUID.h>
17 #include <vlpi/entityType.h>
18 #include <vrvCore/DtUniqueID.h>
20 #include <vrvCore/DtEntityState.h>
23 #include <vlutil/vlFilename.h>
24 #include <vrfutil/rwOrbatData.h>
26 
28 
29 #include <boost/unordered_map.hpp>
30 #include <boost/smart_ptr/shared_ptr.hpp>
31 
32 #include <map>
33 
34 class DtIfOrbatOperation;
35 class DtScenario;
36 
37 namespace makVrv
38 {
39  class DtDe;
40  class DtSimObjectEntry;
41 }
42 
43 class DtSimMessage;
44 class DtRwOrbatData;
45 
47 #define DtOrbatNodeIdentifier "DtOrbatNodeIdentifier"
48 
49 namespace makVrf
50 {
51  class DtVrfMsdlOrbatImporterExporter;
52 
55  {
56  public:
58 
59  typedef std::map<DtUUID, OrbatWithStateView> OrbatTreeWithStateView;
60 
62  {
65  };
66 
68 
69  typedef std::map<DtUUID, OrbatWithRwOrbatData> OrbatTreeWithRwOrbatData;
70 
72  {
75  };
76 
77  public:
79  virtual ~DtVrfGuiOrbatManager();
80 
82  static DtVrfGuiOrbatManager& instance(makVrv::DtDe& de);
83 
86  static void registerInstance(makVrv::DtDe& de, DtVrfGuiOrbatManager* object);
87 
90  virtual void removeObjectFromOrbat(makVrv::DtUniqueID);
91 
93  virtual void removeObjectsFromOrbat(const std::vector<makVrv::DtUniqueID>&);
94 
96  virtual void removeObjectFromOrbat(const DtUUID&);
97 
98  virtual void removeObjectsFromOrbat(const std::vector<DtUUID>&);
99 
101  virtual DtUUID orbatUUID(makVrv::DtUniqueID) const;
102 
104  virtual void addObjectToOrbat(const DtString& name, const DtUUID& uuid, const DtEntityType& entityType, int force,
105  const DtUUID& parent = DtUUID::nullUUID(), bool createSubordinates = true);
106 
108  virtual void addObjectsToOrbat(const std::vector<DtRwOrbatData>&, bool createSubordinates = true);
109 
111  virtual void requestOrbatList();
112 
114  virtual bool inOrbatViewOnly(makVrv::DtUniqueID) const;
115  virtual bool inOrbatViewOnly(const DtUUID&) const;
116 
118  virtual bool inOrbatView(makVrv::DtUniqueID) const;
119  virtual bool inOrbatView(const DtUUID&) const;
120 
122  virtual bool isOrbatNode(makVrv::DtUniqueID) const;
123 
126  virtual const makVrv::DtStateView<DtOrbatState>* orbatData(makVrv::DtUniqueID) const;
127  virtual const makVrv::DtStateView<DtOrbatState>* orbatData(const DtUUID&) const;
129  virtual const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* orbatStateData(const DtUUID&) const;
130 
133  virtual void makePartOfOrbat(makVrv::DtUniqueID);
134 
136  virtual void makePartOfOrbat(const std::vector<makVrv::DtUniqueID>&);
137 
139  virtual void makePartOfOrbat(const DtUUID&);
140 
142  virtual void makePartOfOrbat(const std::vector<DtUUID>&);
143 
145  virtual void makeAllSimulationObjectsPartOfOrbat();
146 
148  virtual void removeAllSimulationObjectsFromOrbat();
149 
151  virtual void modifyOrbatEntry(makVrv::DtUniqueID, const DtRwOrbatData&);
152  virtual void modifyOrbatEntry(const DtUUID&, const DtRwOrbatData&);
153 
155  virtual void setOrbatOrder(makVrv::DtUniqueID, int);
156  virtual void setOrbatOrder(const DtUUID&, int);
157 
162  virtual void reparentOrbatEntry(makVrv::DtUniqueID, makVrv::DtUniqueID parentID, int orbatOrder = -1);
163  virtual void reparentOrbatEntries(const std::vector<makVrv::DtUniqueID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
164 
165  virtual void reparentOrbatEntry(const DtUUID&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
166  virtual void reparentOrbatEntries(const std::vector<DtUUID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
167 
169  virtual void reparentToForce(makVrv::DtUniqueID, int force, int orbatOrder = -1);
170  virtual void reparentToForce(const std::vector<makVrv::DtUniqueID>&, int force, int orbatOrder = -1);
171 
172  virtual void reparentToForce(const DtUUID&, int force, int orbatOrder = -1);
173  virtual void reparentToForce(const std::vector<DtUUID>&, int force, int orbatOrder = -1);
174 
176  virtual DtUUID parentUUIDOfOrbatNode(makVrv::DtUniqueID id) const;
177 
179  virtual makVrv::DtUniqueID orbatId(makVrv::DtUniqueID) const;
180  virtual makVrv::DtUniqueID orbatId(const DtUUID&) const;
181 
183  virtual bool isCreated(makVrv::DtUniqueID) const;
184 
186  virtual makVrv::DtUniqueID createdId(makVrv::DtUniqueID) const;
187 
189  virtual void clearOrbatList();
190 
192  virtual int orbatOrder(makVrv::DtUniqueID) const;
193  virtual int orbatOrder(const DtUUID&) const;
194 
197  virtual void exportOrbat(const DtFilename&, const std::set<std::string>& smsFilenames = std::set<std::string>());
198 
201  virtual OrbatTreeWithStateView orbat() const;
202 
205  virtual bool importOrbat(const DtFilename&, std::vector<DtRwOrbatData>&);
206 
209  virtual DtVrfGuiOrbatManager::OrbatTreeWithRwOrbatData orbatFromFile(const DtFilename&, DtScenario& scenario);
210 
212  virtual void createOrbatObject(const DtUUID&, const DtVector& location);
213 
214  public:
216  boost::signals2::signal<void (makVrv::DtUniqueID, bool)> signal_orbatStateChanged;
217 
219  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_orbatObjectAdded;
220 
222  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_orbatObjectRemoved;
223 
224  protected:
227 
228  virtual void initialize();
229 
230  virtual void hierarchyItemsModified(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
231 
232  virtual void slot_stateAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
233  virtual void slot_stateRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
234 
235  protected:
238 
239  typedef std::map<DtUUID, makVrv::DtUniqueID> OrbatStateViews;
241 
242  std::set<makVrv::DtUniqueID> myMarkingTextResolvers;
243  };
244 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
OrbatTreeWithStateView children
Definition: vrfGuiOrbatManager.h:64
Definition: ifOrbatOperation.h:20
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< DtUUID, makVrv::DtUniqueID > OrbatStateViews
Definition: vrfGuiOrbatManager.h:239
Definition: scenario.h:52
std::map< DtUUID, OrbatWithRwOrbatData > OrbatTreeWithRwOrbatData
Definition: vrfGuiOrbatManager.h:67
The DtVrfGuiOrbatManager is the interface to determine if items are in the orbat hierarchy or not...
Definition: vrfGuiOrbatManager.h:54
Contains the DtUUID class declaration.
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_orbatObjectAdded
Signal sent when an orbat object is added.
Definition: vrfGuiOrbatManager.h:219
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
const makVrv::DtStateView< DtOrbatState > * root
Definition: vrfGuiOrbatManager.h:63
static const DtUUID & nullUUID()
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_orbatObjectRemoved
Signal sent when an orbat object is removed.
Definition: vrfGuiOrbatManager.h:222
Contains makVrv::DtVirtualBaseClass class.
Definition: rwOrbatData.h:20
OrbatTreeWithRwOrbatData children
Definition: vrfGuiOrbatManager.h:74
OrbatStateViews myOrbatStateViews
Definition: vrfGuiOrbatManager.h:240
File: simMsg.h.
Definition: simMessage.h:35
A DtStateView is a the interface to simulation state information. Users can create DtStateViews for s...
Definition: DtStateView.h:49
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:45
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtRwOrbatData root
Definition: vrfGuiOrbatManager.h:73
Definition: vrfGuiOrbatManager.h:61
Contains makVrv::DtVrlinkSimulatedEntityState class.
makVrv::DtSignalConnectionManager myConnections
Definition: vrfGuiOrbatManager.h:237
std::set< makVrv::DtUniqueID > myMarkingTextResolvers
Definition: vrfGuiOrbatManager.h:242
std::map< DtUUID, OrbatWithStateView > OrbatTreeWithStateView
Definition: vrfGuiOrbatManager.h:57
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
Definition: vrfGuiOrbatManager.h:71
Contains the DtElementAttributeManager class declaration.
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:70
boost::signals2::signal< void(makVrv::DtUniqueID, bool)> signal_orbatStateChanged
Sent when the orbat state has changed (in or out of orbat)
Definition: vrfGuiOrbatManager.h:216
makVrv::DtDe & myDe
Definition: vrfGuiOrbatManager.h:236
Contains makVrv::DtElementChanges class.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)