VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfTacticalGraphicOverlayManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
19 #include <QtCore/QString>
20 
21 #include <map>
22 #include <set>
23 
25 
26 namespace makVrv
27 {
28  class DtSharedSettingsManager;
29 }
30 
31 namespace makVrf
32 {
33  class DtVrfSelectionFilter;
34 
37  {
38  public:
40  {
41  DisableRename = 0x00000001,
42  DisableSelection = 0x00000002,
43  DisableMove = 0x00000004,
44  IsPersistent = 0x00000008,
45  DisplayIcon = 0x00000010,
46  CanUnlockOverlay = 0x00000020
47  };
48 
49  typedef boost::function<void (DtSimObjectReference)> OverlayChecker;
51  {
52  OrganizedCategory() : rank(-1), filter(0), putOnOverlayBar(true), parentIdentifier(-1), identifier(0) {};
53 
54  DtString category;
56  int rank;
63  std::set<int> children;
64  };
65 
66  static const int AllVisible = 2;
67  static const int SomeVisible = 1;
68  static const int AllHidden = 0;
69 
72 
74  virtual ~DtVrfTacticalGraphicOverlayManager() override;
75 
77 
81  virtual void setOrganizedOverlayAvailable(const std::string& layerName, bool b);
82  virtual bool alwaysAvailable(const std::string& layerName) const;
83 
86  virtual void setOverlayLayerVisible(const std::string& name, bool);
87 
89  virtual void slot_onElementAttributesChanged(
91 
93  virtual int overlayVisibilityState(const std::string&);
94 
97  virtual void setTacticalGraphicVisible(const makVrv::DtUniqueID& id, bool flag) override;
98 
100  virtual void setCanRenameOverlay(const std::string&, bool);
101  virtual bool canRenameOverlay(const std::string&);
102 
103  virtual void setCanSelectOverlay(const std::string&, bool);
104  virtual bool canSelectOverlay(const std::string&);
105 
106  virtual void setCanMoveFromOverlay(const std::string&, bool);
107  virtual bool canMoveFromOverlay(const std::string&);
108 
109  virtual void setDisplayIcon(const std::string&, bool);
110  virtual bool displayIcon(const std::string&);
111 
112  virtual void setIsPersistentOverlay(const std::string&, bool);
113  virtual bool isPersistentOverlay(const std::string&);
114 
115  virtual void setCanUnlockOverlay(const std::string&, bool);
116  virtual bool canUnlockOverlay(const std::string&);
117 
118  virtual DtFilename iconFilename(const std::string&) const;
119  virtual DtString organizedCategoryName(int identifier) const;
120 
121  virtual void deleteOverlay(const std::string& name) override;
122 
123  virtual bool allObjectOnOverlayAreVrfSimulated(const std::string&) const;
124 
126  virtual void renameVrfOverlay(const std::string& oldName, const std::string& newName);
127 
128  virtual void renameOverlay(const std::string& oldName, const std::string& newName) override;
129 
131  virtual void hideOverlay(const std::string& overlay);
132 
133  virtual bool overlayHidden(const std::string&) const;
134  virtual bool putOnOverlayBar(const std::string&) const;
135 
137  virtual void showOverlay(const std::string& overlay);
138 
139  virtual void setOverlayLocked(const std::string& overlayName, bool flag) override;
140  virtual bool isOnLockedOverlay(makVrv::DtUniqueID) const;
141 
142  virtual void setOverlayDefaultHidden(const std::string& layer, bool);
143  virtual bool overlayDefaultHidden(const std::string&) const;
144 
145  static QString organizeByCategoryOverlayName();
146 
148  virtual std::vector<std::string> overlaysForObject(makVrv::DtUniqueID id) const;
149 
150  virtual int organizedCategoryToIdentifier(const DtString& cat) const;
151  virtual OrganizedCategory organizedCategory(const DtString& cat) const;
152  virtual OrganizedCategory organizedCategory(int) const;
153 
155  virtual void addParentLayersIfDoNotExist(int parentIdentifier);
156 
157  virtual void addOverlay(const std::string&) override;
158 
171  virtual int addOrganizedCategory(const DtString& category, const DtVrfSelectionFilter&, int position, const DtString& icon, const DtString& displayName,
172  bool putOnOverlayBar = true, int parentCategory = -1, OverlayChecker = 0);
173 
175  virtual void setAllowOnMoreThanOneLayer(int type, bool allow);
176 
178  virtual void setAllowOnMoreThanOneLayer(const std::string& type, bool allow);
179 
181  virtual void setOrganizedCategoryIcon(const DtString& category, const DtString& icon);
182  virtual void setOrganizedCategoryDisplayName(const DtString& category, const DtString& title);
183 
184  virtual void setOrganizedCategoryIcon(int identifier, const DtString& icon);
185  virtual void setOrganizedCategoryDisplayName(int identifier, const DtString& title);
186 
187  virtual void removeOrganizedCategory(const DtString& category);
188  virtual void clearOrganizedCategories();
189  virtual bool isOrganizedLayer(const std::string&) const;
190 
192  virtual std::string layerName(const std::string&) const;
193 
194  virtual void removeTacticalGraphic(const makVrv::DtUniqueID& id) override;
195  virtual void renameTacticalGraphicOverlay(const makVrv::DtUniqueID& id, const std::string& newName) override;
196 
198  virtual int position(const std::string&) const;
199 
200  virtual std::set<std::string> organizedLayersFor(DtSimObjectReference) const;
201 
204  virtual int findBetterOrganizedChildOf(int parentIdentifier, DtSimObjectReference) const;
205 
207  virtual int numberOfOrganizedCategories() const;
208 
210  virtual std::string displayName(const std::string& layer) const;
211 
213  virtual bool isOnDefaultHiddenLayer(makVrv::DtUniqueID id) const;
214 
215  virtual void setOverlayVisible( const std::string& overlayName, bool flag ) override;
216 
218  virtual void neverAddThisEntityType(const DtEntityType& e);
219 
220  boost::signals2::signal<void (const std::string&, int)> signal_flagsChanged;
221  boost::signals2::signal<void (const std::string&, bool)> signal_overlayHidden;
222  boost::signals2::signal<void (const std::string&, bool)> signal_overlayLocked;
223  boost::signals2::signal<void (const std::string&, int)> signal_overlayVisibilityStateChanged;
224  boost::signals2::signal<void (const std::string&, bool)> signal_defaultHiddenChanged;
225  boost::signals2::signal<void ()> signal_organizedCategoriesInitialized;
226  boost::signals2::signal<void (const makVrv::DtElementID, bool& canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer;
227 
228  protected:
229  virtual void initialize();
230  virtual void objectAdded(DtSimObjectReference p);
231  virtual void slot_organizeOverlaysByCategoryChanged(bool);
232 
233  virtual void setFlag(const std::string& s, OverlayFlags, bool);
234  virtual bool testFlag(const std::string& s, OverlayFlags) const;
235 
236  virtual void updateLayerVisibilityThatHas(makVrv::DtUniqueID, bool b);
237 
238  virtual void addDefaultOrganizedCategories(const DtSimulationObjectCategoryInformation&);
239  virtual void notifyLayerVisibilityChanged();
240 
244  virtual bool onlyOnOneLayer(const makVrv::DtElementID) const;
245  virtual bool onlyOnOneLayer(DtSimObjectReference) const;
246  virtual void slot_onElementsAdded(const makVrv::DtElementData::ElementList& elements) override;
247  virtual void removeFromLayerIfFilterStateChanges(DtSimObjectReference, std::string);
248 
250  virtual void removeFromOrganizedLayer(makVrv::DtElementID, const std::string&);
251  virtual void updateParentOverlayVisibilityStateOf(const std::string& overlayLayer, int newState);
252  virtual void slot_attributesChanged(const makVrv::DtElementAttributeManager::EntryAttributesList& l);
253 
254  public:
256 
257  protected:
258  std::vector<DtEntityType> myNeverAddThisEntityType;
260  std::set<std::string> myAllowGlobalIdOnMoreThanOneLayer;
261  DtEntityType myStealthType;
263 
264  typedef std::map<std::string, int> OverlayFlagsMap;
266 
267  std::set<std::string> myOverlaysHidden;
268 
269  typedef std::map<std::string, DtVrfSelectionFilter*> VisibilityFilters;
271 
272  typedef std::map<int, OrganizedCategory> OrganizedCategories;
274 
275  struct MemberInfo
276  {
277  MemberInfo() : numHidden(0), numVisible(0) {};
278 
279  int numHidden;
281  std::map<makVrv::DtUniqueID, bool> visibilityMap;
282  };
283 
284  typedef std::map<std::string, MemberInfo> Members;
286 
287  boost::signalslib::connection myVisibilityChangedConnection;
288  std::map<std::string, int> myLayerVisibilityChanged;
290 
291  std::set<std::string> myAlwaysAvailable;
292 
293  typedef std::map<makVrv::DtUniqueID, makVrv::DtSignalConnectionManager> ConnectionManagerMap;
294  typedef std::map<std::string, ConnectionManagerMap> CheckConnections;
296 
297  struct TGChange
298  {
299  TGChange() : change(false) {};
300 
301  bool change;
302  std::string val;
303  };
304 
305  typedef std::pair<TGChange, TGChange> TGPair;
306 
307  std::map<makVrv::DtUniqueID, TGPair> myToChangeList;
308  int myOrganizedCategoryIdentifier = 0;
309  };
310 }
Members myMembers
Definition: vrfTacticalGraphicOverlayManager.h:285
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:28
std::map< int, OrganizedCategory > OrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:272
static DtString theOrganizedOverlayMarker
Definition: vrfTacticalGraphicOverlayManager.h:255
The DtSimulationObjectCategoryInformation class is a class that will read the comma delimited categor...
Definition: simulationObjectCategoryInformation.h:24
boost::signalslib::connection myVisibilityChangedConnection
Definition: vrfTacticalGraphicOverlayManager.h:287
std::vector< DtEntityType > myNeverAddThisEntityType
Definition: vrfTacticalGraphicOverlayManager.h:258
OrganizedCategories myOrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:273
VisibilityFilters myVisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:270
Definition: vrfTacticalGraphicOverlayManager.h:50
std::map< makVrv::DtUniqueID, bool > visibilityMap
Definition: vrfTacticalGraphicOverlayManager.h:281
int numVisible
Definition: vrfTacticalGraphicOverlayManager.h:280
Definition: vrfTacticalGraphicOverlayManager.h:275
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
boost::signals2::signal< void()> signal_organizedCategoriesInitialized
Definition: vrfTacticalGraphicOverlayManager.h:225
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
DtEntityType myStealthType
Definition: vrfTacticalGraphicOverlayManager.h:261
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
bool putOnOverlayBar
Definition: vrfTacticalGraphicOverlayManager.h:59
std::map< std::string, int > OverlayFlagsMap
Definition: vrfTacticalGraphicOverlayManager.h:264
DtString displayName
Definition: vrfTacticalGraphicOverlayManager.h:57
std::map< std::string, MemberInfo > Members
Definition: vrfTacticalGraphicOverlayManager.h:284
std::set< std::string > myAlwaysAvailable
Definition: vrfTacticalGraphicOverlayManager.h:291
std::map< makVrv::DtUniqueID, TGPair > myToChangeList
Definition: vrfTacticalGraphicOverlayManager.h:307
std::map< makVrv::DtUniqueID, makVrv::DtSignalConnectionManager > ConnectionManagerMap
Definition: vrfTacticalGraphicOverlayManager.h:293
DtString icon
Definition: vrfTacticalGraphicOverlayManager.h:58
CheckConnections myCheckConnections
Definition: vrfTacticalGraphicOverlayManager.h:295
makVrv::DtSharedSettingsManager * mySettingsManager
Definition: vrfTacticalGraphicOverlayManager.h:262
std::set< std::string > myAllowGlobalIdOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:260
Override tactical graphic manager to support aggregate/entities on palette.
Definition: vrfTacticalGraphicOverlayManager.h:36
bool myOrganizeOverlaysByCategory
Definition: vrfTacticalGraphicOverlayManager.h:289
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:44
boost::signals2::signal< void(const std::string &, int)> signal_overlayVisibilityStateChanged
Definition: vrfTacticalGraphicOverlayManager.h:223
OverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:39
std::string val
Definition: vrfTacticalGraphicOverlayManager.h:302
OverlayFlagsMap myOverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:265
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: vrfTacticalGraphicOverlayManager.h:297
OverlayChecker overlayChecker
Definition: vrfTacticalGraphicOverlayManager.h:60
OrganizedCategory()
Definition: vrfTacticalGraphicOverlayManager.h:52
std::map< std::string, int > myLayerVisibilityChanged
Definition: vrfTacticalGraphicOverlayManager.h:288
DtVrfSelectionFilter * filter
Definition: vrfTacticalGraphicOverlayManager.h:55
std::vector< DtElementEntry * > ElementList
Type definition for a vector of DtElementEntry pointers.
Definition: DtElementData.h:47
boost::signals2::signal< void(const std::string &, bool)> signal_overlayHidden
Definition: vrfTacticalGraphicOverlayManager.h:221
Base class to provide boost signal/slot management.
int identifier
Definition: vrfTacticalGraphicOverlayManager.h:62
boost::signals2::signal< void(const std::string &, bool)> signal_overlayLocked
Definition: vrfTacticalGraphicOverlayManager.h:222
std::set< int > myAllowOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:259
std::set< std::string > myOverlaysHidden
Definition: vrfTacticalGraphicOverlayManager.h:267
Contains the DtElementAttributeManager class declaration.
boost::signals2::signal< void(const std::string &, int)> signal_flagsChanged
Definition: vrfTacticalGraphicOverlayManager.h:220
std::map< std::string, DtVrfSelectionFilter * > VisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:269
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
DtTacticalGraphicOverlayManager objects hold the state (visible or not) of tactical graphics overlays...
Definition: DtTacticalGraphicOverlayManager.h:33
std::pair< TGChange, TGChange > TGPair
Definition: vrfTacticalGraphicOverlayManager.h:305
std::map< std::string, ConnectionManagerMap > CheckConnections
Definition: vrfTacticalGraphicOverlayManager.h:294
TGChange()
Definition: vrfTacticalGraphicOverlayManager.h:299
int rank
Definition: vrfTacticalGraphicOverlayManager.h:56
boost::function< void(DtSimObjectReference)> OverlayChecker
Definition: vrfTacticalGraphicOverlayManager.h:49
std::set< int > children
Definition: vrfTacticalGraphicOverlayManager.h:63
Contains makVrv::DtTacticalGraphicOverlayManager class.
int parentIdentifier
Definition: vrfTacticalGraphicOverlayManager.h:61
boost::signals2::signal< void(const std::string &, bool)> signal_defaultHiddenChanged
Definition: vrfTacticalGraphicOverlayManager.h:224
boost::signals2::signal< void(const makVrv::DtElementID, bool &canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:226

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)