VR-Forces 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 
13 #include <vrfGuiCore/vrfGuiCore.h>
16 #include <vrfutil/rwUUID.h>
17 #include <vlpi/entityType.h>
18 #include <vrvCore/DtUniqueID.h>
22 #include <vlutil/vlFilename.h>
23 #include <vrfutil/rwOrbatData.h>
25 
27 
28 #include <boost/unordered_map.hpp>
29 #include <boost/smart_ptr/shared_ptr.hpp>
30 
31 #include <map>
32 
33 class DtIfOrbatOperation;
34 class DtScenario;
35 
36 namespace makVrv
37 {
38  class DtDe;
39 }
40 
41 class DtSimMessage;
42 class DtRwOrbatData;
43 
44 namespace makVrf
45 {
46  class DtVrfMsdlOrbatImporterExporter;
47  class DtOrbatStateComponent;
48  class DtStateComponent;
49 
52  {
53  public:
55 
56  typedef std::map<DtUUID, OrbatWithStateView> OrbatTreeWithStateView;
57 
59  {
62  };
63 
65 
66  typedef std::map<DtUUID, OrbatWithRwOrbatData> OrbatTreeWithRwOrbatData;
67 
69  {
72  };
73 
74  public:
76  virtual ~DtVrfGuiOrbatManager() override;
77 
79  static DtVrfGuiOrbatManager& instance(makVrv::DtDe& de);
80 
83  static void registerInstance(makVrv::DtDe& de, DtVrfGuiOrbatManager* object);
84 
87  virtual void removeObjectFromOrbat(makVrv::DtUniqueID);
88 
90  virtual void removeObjectsFromOrbat(const std::vector<makVrv::DtUniqueID>&);
91 
93  virtual void removeObjectFromOrbat(const DtUUID&);
94 
95  virtual void removeObjectsFromOrbat(const std::vector<DtUUID>&);
96 
98  virtual DtUUID orbatUUID(makVrv::DtUniqueID) const;
99 
101  virtual void addObjectToOrbat(const DtString& name, const DtString& label, const DtUUID& uuid, const DtEntityType& entityType, int force,
102  const DtUUID& parent = DtUUID::nullUUID(), bool createSubordinates = true);
103 
105  virtual void addObjectsToOrbat(const std::vector<DtRwOrbatData>&, bool createSubordinates = true);
106 
108  virtual void requestOrbatList();
109 
111  virtual bool inOrbatViewOnly(makVrv::DtUniqueID) const;
112  virtual bool inOrbatViewOnly(const DtUUID&) const;
113 
115  virtual bool inOrbatView(makVrv::DtUniqueID) const;
116  virtual bool inOrbatView(const DtUUID&) const;
117 
119  virtual bool isOrbatNode(makVrv::DtUniqueID) const;
120 
123  virtual DtSimObjectReference orbatData(makVrv::DtUniqueID) const;
124  virtual DtSimObjectReference orbatData(const DtUUID&) const;
125 
128  virtual void makePartOfOrbat(makVrv::DtUniqueID);
129 
131  virtual void makePartOfOrbat(const std::vector<makVrv::DtUniqueID>&);
132 
134  virtual void makePartOfOrbat(const DtUUID&);
135 
137  virtual void makePartOfOrbat(const std::vector<DtUUID>&);
138 
140  virtual void makeAllSimulationObjectsPartOfOrbat();
141 
143  virtual void removeAllSimulationObjectsFromOrbat();
144 
146  virtual void modifyOrbatEntry(makVrv::DtUniqueID, const DtRwOrbatData&);
147  virtual void modifyOrbatEntry(const DtUUID&, const DtRwOrbatData&);
148 
150  virtual void setOrbatOrder(makVrv::DtUniqueID, int);
151  virtual void setOrbatOrder(const DtUUID&, int);
152 
157  virtual void reparentOrbatEntry(makVrv::DtUniqueID, makVrv::DtUniqueID parentID, int orbatOrder = -1);
158  virtual void reparentOrbatEntries(const std::vector<makVrv::DtUniqueID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
159 
160  virtual void reparentOrbatEntry(const DtUUID&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
161  virtual void reparentOrbatEntries(const std::vector<DtUUID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
162 
164  virtual void reparentToForce(makVrv::DtUniqueID, int force, int orbatOrder = -1);
165  virtual void reparentToForce(const std::vector<makVrv::DtUniqueID>&, int force, int orbatOrder = -1);
166 
167  virtual void reparentToForce(const DtUUID&, int force, int orbatOrder = -1);
168  virtual void reparentToForce(const std::vector<DtUUID>&, int force, int orbatOrder = -1);
169 
171  virtual DtUUID parentUUIDOfOrbatNode(makVrv::DtUniqueID id) const;
172 
174  virtual makVrv::DtUniqueID orbatId(makVrv::DtUniqueID) const;
175  virtual makVrv::DtUniqueID orbatId(const DtUUID&) const;
176 
178  virtual bool isCreated(makVrv::DtUniqueID) const;
179 
181  virtual makVrv::DtUniqueID createdId(makVrv::DtUniqueID) const;
182 
184  virtual void clearOrbatList();
185 
187  virtual int orbatOrder(makVrv::DtUniqueID) const;
188  virtual int orbatOrder(const DtUUID&) const;
189 
192  virtual void exportOrbat(const DtFilename&, const std::set<std::string>& smsFilenames = std::set<std::string>());
193 
196  virtual OrbatTreeWithStateView orbat() const;
197 
200  virtual bool importOrbat(const DtFilename&, std::vector<DtRwOrbatData>&);
201 
204  virtual DtVrfGuiOrbatManager::OrbatTreeWithRwOrbatData orbatFromFile(const DtFilename&, DtScenario& scenario);
205 
207  virtual void createOrbatObject(const DtUUID&, const DtVector& location);
208 
209  public:
211  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_orbatObjectAdded;
212 
214  boost::signals2::signal<void (makVrv::DtUniqueID)> signal_orbatObjectRemoved;
215 
216  protected:
219 
220  virtual void initialize();
221 
222  virtual void slot_stateAdded(DtSimObjectReference);
223  virtual void slot_stateRemoved(DtSimObjectReference);
224 
225  protected:
228 
230  {
232  };
233 
234  typedef std::map<DtUUID, OrbatStateView> OrbatStateViews;
236  };
237 }
Definition: vrfGuiOrbatManager.h:229
UUID is a unique ID wrapper class.
Definition: uuid.h:59
OrbatTreeWithStateView children
Definition: vrfGuiOrbatManager.h:61
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
Definition: scenario.h:52
std::map< DtUUID, OrbatWithRwOrbatData > OrbatTreeWithRwOrbatData
Definition: vrfGuiOrbatManager.h:64
std::map< DtUUID, OrbatStateView > OrbatStateViews
Definition: vrfGuiOrbatManager.h:234
The DtVrfGuiOrbatManager is the interface to determine if items are in the orbat hierarchy or not...
Definition: vrfGuiOrbatManager.h:51
Contains the DtUUID class declaration.
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_orbatObjectAdded
Signal sent when an orbat object is added.
Definition: vrfGuiOrbatManager.h:211
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
static const DtUUID & nullUUID()
boost::signals2::signal< void(makVrv::DtUniqueID)> signal_orbatObjectRemoved
Signal sent when an orbat object is removed.
Definition: vrfGuiOrbatManager.h:214
Contains makVrv::DtVirtualBaseClass class.
Definition: rwOrbatData.h:20
OrbatTreeWithRwOrbatData children
Definition: vrfGuiOrbatManager.h:71
OrbatStateViews myOrbatStateViews
Definition: vrfGuiOrbatManager.h:235
File: simMsg.h.
Definition: simMessage.h:35
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtRwOrbatData root
Definition: vrfGuiOrbatManager.h:70
Definition: vrfGuiOrbatManager.h:58
makVrv::DtSignalConnectionManager myConnections
Definition: vrfGuiOrbatManager.h:227
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::map< DtUUID, OrbatWithStateView > OrbatTreeWithStateView
Definition: vrfGuiOrbatManager.h:54
Base class to provide boost signal/slot management.
Contains makVrv::DtUniqueID type.
Definition: vrfGuiOrbatManager.h:68
Contains the DtElementAttributeManager class declaration.
DtSimObjectReference root
Definition: vrfGuiOrbatManager.h:60
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
makVrv::DtDe & myDe
Definition: vrfGuiOrbatManager.h:226
Contains makVrv::DtElementChanges class.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)