VR-Forces 4.10 Class Documentation
 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 #include <vrvUtil/signalslib.h>
14 #include <vrfGuiCore/vrfGuiCore.h>
17 #include <QtCore/QString>
18 #include <vrvCore/DtEntityState.h>
19 
20 #include <map>
21 #include <set>
22 
24 
25 namespace makVrv
26 {
27  class DtSharedSettingsManager;
28 }
29 
30 namespace makVrf
31 {
32  class DtVrfStateViewCollectionManager;
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 
50  {
51  OrganizedCategory() : rank(-1), filter(0) {};
52 
53  DtString category;
55  int rank;
58  };
59 
60  static const int AllVisible = 2;
61  static const int SomeVisible = 1;
62  static const int AllHidden = 0;
63 
66 
69 
71 
75  virtual void setOrganizedOverlayAvailable(const std::string& layerName, bool b);
76  virtual bool alwaysAvailable(const std::string& layerName) const;
77 
80  virtual void setOverlayLayerVisible(const std::string& name, bool);
81 
83  virtual void slot_onElementAttributesChanged(
85 
87  virtual int overlayVisibilityState(const std::string&);
88 
91  virtual void setTacticalGraphicVisible( const makVrv::DtUniqueID& id, bool flag );
92 
94  virtual void setCanRenameOverlay(const std::string&, bool);
95  virtual bool canRenameOverlay(const std::string&);
96 
97  virtual void setCanSelectOverlay(const std::string&, bool);
98  virtual bool canSelectOverlay(const std::string&);
99 
100  virtual void setCanMoveFromOverlay(const std::string&, bool);
101  virtual bool canMoveFromOverlay(const std::string&);
102 
103  virtual void setDisplayIcon(const std::string&, bool);
104  virtual bool displayIcon(const std::string&);
105 
106  virtual void setIsPersistentOverlay(const std::string&, bool);
107  virtual bool isPersistentOverlay(const std::string&);
108 
109  virtual void setCanUnlockOverlay(const std::string&, bool);
110  virtual bool canUnlockOverlay(const std::string&);
111 
112  virtual DtFilename iconFilename(const std::string&) const;
113 
114  virtual void deleteOverlay(const std::string& name);
115 
116  virtual bool allObjectOnOverlayAreVrfSimulated(const std::string&) const;
117 
119  virtual void renameVrfOverlay(const std::string& oldName, const std::string& newName);
120 
121  virtual void renameOverlay(const std::string& oldName, const std::string& newName);
122 
124  virtual void hideOverlay(const std::string& overlay);
125 
126  virtual bool overlayHidden(const std::string&) const;
127 
129  virtual void showOverlay(const std::string& overlay);
130 
131  virtual void setOverlayLocked(const std::string& overlayName, bool flag);
132 
133  virtual void setOverlayDefaultHidden(const std::string& layer, bool);
134  virtual bool overlayDefaultHidden(const std::string&) const;
135 
136  static QString organizeByCategoryOverlayName();
137 
139  virtual std::vector<std::string> overlaysForObject(makVrv::DtUniqueID id);
140 
141  virtual OrganizedCategory organizedCategory(const DtString& cat) const;
142 
143  virtual void addOverlay(const std::string&);
144 
150  virtual void addOrganizedCategory(const DtString& category, const DtVrfSelectionFilter&, int position, const DtString& icon, const DtString& displayName);
151 
153  virtual void setAllowOnMoreThanOneLayer(int type, bool allow);
154 
156  virtual void setAllowOnMoreThanOneLayer(const std::string& type, bool allow);
157 
159  virtual void setOrganizedCategoryIcon(const DtString& category, const DtString& icon);
160  virtual void setOrganizedCategoryDisplayName(const DtString& category, const DtString& title);
161 
162  virtual void removeOrganizedCategory(const DtString& category);
163  virtual void clearOrganizedCategories();
164  virtual bool isOrganizedLayer(const std::string&) const;
165 
167  virtual std::string layerName(const std::string&) const;
168 
169  virtual void removeTacticalGraphic(const makVrv::DtUniqueID& id);
170  virtual void renameTacticalGraphicOverlay(const makVrv::DtUniqueID& id, const std::string& newName);
171 
173  virtual int position(const std::string&) const;
174 
175  virtual std::set<std::string> organizedLayersFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv) const;
176  virtual std::set<std::string> organizedLayersFor(const makVrv::DtVrlinkSimulatedBaseState* sv, makVrv::DtElementID id = 0) const;
177 
179  virtual int numberOfOrganizedCategories() const;
180 
182  virtual std::string displayName(const std::string& layer) const;
183 
184  boost::signals2::signal<void (const std::string&, int)> signal_flagsChanged;
185  boost::signals2::signal<void (const std::string&, bool)> signal_overlayHidden;
186  boost::signals2::signal<void (const std::string&, bool)> signal_overlayLocked;
187  boost::signals2::signal<void (const std::string&, int)> signal_overlayVisibilityStateChanged;
188  boost::signals2::signal<void (const std::string&, bool)> signal_defaultHiddenChanged;
189  boost::signals2::signal<void ()> signal_organizedCategoriesInitialized;
190  boost::signals2::signal<void (const makVrv::DtElementID, bool& canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer;
191 
192  protected:
193  virtual void initialize();
194  virtual void objectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
195  virtual void slot_organizeOverlaysByCategoryChanged(bool);
196 
197  virtual void setFlag(const std::string& s, OverlayFlags, bool);
198  virtual bool testFlag(const std::string& s, OverlayFlags) const;
199 
200  virtual void updateLayerVisibilityThatHas(makVrv::DtUniqueID, bool b);
201 
202  virtual void addDefaultOrganizedCategories(const DtSimulationObjectCategoryInformation&);
203  virtual void notifyLayerVisibilityChanged();
204 
208  virtual bool onlyOnOneLayer(const makVrv::DtElementID) const;
209  virtual bool onlyOnOneLayer(const makVrv::DtVrlinkSimulatedBaseState* sv) const;
210 
211  public:
213 
214  protected:
216  std::set<std::string> myAllowGlobalIdOnMoreThanOneLayer;
217  std::string myStealthType;
219 
220  typedef std::map<std::string, int> OverlayFlagsMap;
222 
223  std::set<std::string> myOverlaysHidden;
224 
225  typedef std::map<std::string, DtVrfSelectionFilter*> VisibilityFilters;
227 
228  typedef std::vector<OrganizedCategory> OrganizedCategories;
230 
231  struct MemberInfo
232  {
233  MemberInfo() : numHidden(0), numVisible(0) {};
234 
235  int numHidden;
237  std::map<makVrv::DtUniqueID, bool> visibilityMap;
238  };
239 
240  typedef std::map<std::string, MemberInfo> Members;
242 
243  boost::signalslib::connection myVisibilityChangedConnection;
244  std::map<std::string, int> myLayerVisibilityChanged;
246 
247  std::set<std::string> myAlwaysAvailable;
248  };
249 }
Members myMembers
Definition: vrfTacticalGraphicOverlayManager.h:241
Definition: vrfSelectionFilters.h:29
static DtString theOrganizedOverlayMarker
Definition: vrfTacticalGraphicOverlayManager.h:212
The DtSimulationObjectCategoryInformation class is a class that will read the comma delimited categor...
Definition: simulationObjectCategoryInformation.h:22
boost::signalslib::connection myVisibilityChangedConnection
Definition: vrfTacticalGraphicOverlayManager.h:243
std::string myStealthType
Definition: vrfTacticalGraphicOverlayManager.h:217
OrganizedCategories myOrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:229
VisibilityFilters myVisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:226
Definition: vrfTacticalGraphicOverlayManager.h:49
std::map< makVrv::DtUniqueID, bool > visibilityMap
Definition: vrfTacticalGraphicOverlayManager.h:237
int numVisible
Definition: vrfTacticalGraphicOverlayManager.h:236
Definition: vrfTacticalGraphicOverlayManager.h:231
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:189
#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
std::map< std::string, int > OverlayFlagsMap
Definition: vrfTacticalGraphicOverlayManager.h:220
DtString displayName
Definition: vrfTacticalGraphicOverlayManager.h:56
std::map< std::string, MemberInfo > Members
Definition: vrfTacticalGraphicOverlayManager.h:240
std::set< std::string > myAlwaysAvailable
Definition: vrfTacticalGraphicOverlayManager.h:247
DtString icon
Definition: vrfTacticalGraphicOverlayManager.h:57
makVrv::DtSharedSettingsManager * mySettingsManager
Definition: vrfTacticalGraphicOverlayManager.h:218
std::set< std::string > myAllowGlobalIdOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:216
Override tactical graphic manager to support aggregate/entities on palette.
Definition: vrfTacticalGraphicOverlayManager.h:36
bool myOrganizeOverlaysByCategory
Definition: vrfTacticalGraphicOverlayManager.h:245
std::vector< EntryAttributes > EntryAttributesList
Definition: DtElementAttributeManager.h:43
boost::signals2::signal< void(const std::string &, int)> signal_overlayVisibilityStateChanged
Definition: vrfTacticalGraphicOverlayManager.h:187
Contains makVrv::DtEntityState class.
OverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:39
OverlayFlagsMap myOverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:221
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::vector< OrganizedCategory > OrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:228
OrganizedCategory()
Definition: vrfTacticalGraphicOverlayManager.h:51
std::map< std::string, int > myLayerVisibilityChanged
Definition: vrfTacticalGraphicOverlayManager.h:244
DtVrfSelectionFilter * filter
Definition: vrfTacticalGraphicOverlayManager.h:54
boost::signals2::signal< void(const std::string &, bool)> signal_overlayHidden
Definition: vrfTacticalGraphicOverlayManager.h:185
Base class to provide boost signal/slot management.
boost::signals2::signal< void(const std::string &, bool)> signal_overlayLocked
Definition: vrfTacticalGraphicOverlayManager.h:186
std::set< int > myAllowOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:215
std::set< std::string > myOverlaysHidden
Definition: vrfTacticalGraphicOverlayManager.h:223
boost::signals2::signal< void(const std::string &, int)> signal_flagsChanged
Definition: vrfTacticalGraphicOverlayManager.h:184
std::map< std::string, DtVrfSelectionFilter * > VisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:225
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtTacticalGraphicOverlayManager objects hold the state (visible or not) of tactical graphics overlays...
Definition: DtTacticalGraphicOverlayManager.h:33
int rank
Definition: vrfTacticalGraphicOverlayManager.h:55
Contains makVrv::DtTacticalGraphicOverlayManager class.
boost::signals2::signal< void(const std::string &, bool)> signal_defaultHiddenChanged
Definition: vrfTacticalGraphicOverlayManager.h:188
boost::signals2::signal< void(const makVrv::DtElementID, bool &canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:190

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)