VR-Forces 4.6 Class Documentation
 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 #include <vrvUtil/signalslib.h>
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>
19 #include <vrvCore/DtElementData.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 
46 namespace makVrv
47 {
49 }
50 
52 #define DtOrbatNodeIdentifier "DtOrbatNodeIdentifier"
53 
54 namespace makVrf
55 {
56  class DtVrfMsdlOrbatImporterExporter;
57 
60  {
61  public:
63 
64  typedef std::map<DtUUID, OrbatWithStateView> OrbatTreeWithStateView;
65 
67  {
70  };
71 
73 
74  typedef std::map<DtUUID, OrbatWithRwOrbatData> OrbatTreeWithRwOrbatData;
75 
77  {
80  };
81 
82  public:
84  virtual ~DtVrfGuiOrbatManager();
85 
87  static DtVrfGuiOrbatManager& instance(makVrv::DtDe& de);
88 
91  static void registerInstance(makVrv::DtDe& de, DtVrfGuiOrbatManager* object);
92 
95  virtual void removeObjectFromOrbat(makVrv::DtUniqueID);
96 
98  virtual void removeObjectsFromOrbat(const std::vector<makVrv::DtUniqueID>&);
99 
101  virtual void removeObjectFromOrbat(const DtUUID&);
102 
103  virtual void removeObjectsFromOrbat(const std::vector<DtUUID>&);
104 
106  virtual DtUUID orbatUUID(makVrv::DtUniqueID) const;
107 
109  virtual void addObjectToOrbat(const DtString& name, const DtUUID& uuid, const DtEntityType& entityType, int force,
110  const DtUUID& parent = DtUUID::nullUUID(), bool createSubordinates = true);
111 
113  virtual void addObjectsToOrbat(const std::vector<DtRwOrbatData>&, bool createSubordinates = true);
114 
116  virtual void requestOrbatList();
117 
119  virtual bool inOrbatViewOnly(makVrv::DtUniqueID) const;
120  virtual bool inOrbatViewOnly(const DtUUID&) const;
121 
123  virtual bool inOrbatView(makVrv::DtUniqueID) const;
124  virtual bool inOrbatView(const DtUUID&) const;
125 
127  virtual bool isOrbatNode(makVrv::DtUniqueID) const;
128 
131  virtual const makVrv::DtStateView<DtOrbatState>* orbatData(makVrv::DtUniqueID) const;
132  virtual const makVrv::DtStateView<DtOrbatState>* orbatData(const DtUUID&) const;
134  virtual const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* orbatStateData(const DtUUID&) const;
135 
138  virtual void makePartOfOrbat(makVrv::DtUniqueID);
139 
141  virtual void makePartOfOrbat(const std::vector<makVrv::DtUniqueID>&);
142 
144  virtual void makePartOfOrbat(const DtUUID&);
145 
147  virtual void makePartOfOrbat(const std::vector<DtUUID>&);
148 
150  virtual void makeAllSimulationObjectsPartOfOrbat();
151 
153  virtual void removeAllSimulationObjectsFromOrbat();
154 
156  virtual void modifyOrbatEntry(makVrv::DtUniqueID, const DtRwOrbatData&);
157  virtual void modifyOrbatEntry(const DtUUID&, const DtRwOrbatData&);
158 
160  virtual void setOrbatOrder(makVrv::DtUniqueID, int);
161  virtual void setOrbatOrder(const DtUUID&, int);
162 
167  virtual void reparentOrbatEntry(makVrv::DtUniqueID, makVrv::DtUniqueID parentID, int orbatOrder = -1);
168  virtual void reparentOrbatEntries(const std::vector<makVrv::DtUniqueID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
169 
170  virtual void reparentOrbatEntry(const DtUUID&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
171  virtual void reparentOrbatEntries(const std::vector<DtUUID>&, makVrv::DtUniqueID parentID, int orbatOrder = -1);
172 
174  virtual void reparentToForce(makVrv::DtUniqueID, int force, int orbatOrder = -1);
175  virtual void reparentToForce(const std::vector<makVrv::DtUniqueID>&, int force, int orbatOrder = -1);
176 
177  virtual void reparentToForce(const DtUUID&, int force, int orbatOrder = -1);
178  virtual void reparentToForce(const std::vector<DtUUID>&, int force, int orbatOrder = -1);
179 
181  virtual DtUUID parentUUIDOfOrbatNode(makVrv::DtUniqueID id) const;
182 
184  virtual makVrv::DtUniqueID orbatId(makVrv::DtUniqueID) const;
185  virtual makVrv::DtUniqueID orbatId(const DtUUID&) const;
186 
188  virtual bool isCreated(makVrv::DtUniqueID) const;
189 
191  virtual makVrv::DtUniqueID createdId(makVrv::DtUniqueID) const;
192 
194  virtual void clearOrbatList();
195 
197  virtual int orbatOrder(makVrv::DtUniqueID) const;
198  virtual int orbatOrder(const DtUUID&) const;
199 
202  virtual void exportOrbat(const DtFilename&, const std::set<std::string>& smsFilenames = std::set<std::string>());
203 
206  virtual OrbatTreeWithStateView orbat() const;
207 
210  virtual bool importOrbat(const DtFilename&, std::vector<DtRwOrbatData>&);
211 
214  virtual DtVrfGuiOrbatManager::OrbatTreeWithRwOrbatData orbatFromFile(const DtFilename&, DtScenario& scenario);
215 
217  virtual void createOrbatObject(const DtUUID&, const DtVector& location);
218 
219  public:
221  boost::signal<void (makVrv::DtUniqueID, bool)> signal_orbatStateChanged;
222 
224  boost::signal<void (makVrv::DtUniqueID)> signal_orbatObjectAdded;
225 
227  boost::signal<void (makVrv::DtUniqueID)> signal_orbatObjectRemoved;
228 
229  protected:
232 
233  virtual void initialize();
234 
235  virtual void hierarchyItemsModified(const makVrv::DtElementData::EntryAttributesList& l);
236 
237  virtual void slot_stateAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
238  virtual void slot_stateRemoved(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>*);
239 
240  protected:
243 
244  typedef std::map<DtUUID, makVrv::DtUniqueID> OrbatStateViews;
246 
247  std::set<makVrv::DtUniqueID> myMarkingTextResolvers;
248  };
249 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)