VR-Forces 5.0.2 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>
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  virtual bool isOnLockedOverlay(makVrv::DtUniqueID) const;
133 
134  virtual void setOverlayDefaultHidden(const std::string& layer, bool);
135  virtual bool overlayDefaultHidden(const std::string&) const;
136 
137  static QString organizeByCategoryOverlayName();
138 
140  virtual std::vector<std::string> overlaysForObject(makVrv::DtUniqueID id) const;
141 
142  virtual OrganizedCategory organizedCategory(const DtString& cat) const;
143 
144  virtual void addOverlay(const std::string&);
145 
151  virtual void addOrganizedCategory(const DtString& category, const DtVrfSelectionFilter&, int position, const DtString& icon, const DtString& displayName);
152 
154  virtual void setAllowOnMoreThanOneLayer(int type, bool allow);
155 
157  virtual void setAllowOnMoreThanOneLayer(const std::string& type, bool allow);
158 
160  virtual void setOrganizedCategoryIcon(const DtString& category, const DtString& icon);
161  virtual void setOrganizedCategoryDisplayName(const DtString& category, const DtString& title);
162 
163  virtual void removeOrganizedCategory(const DtString& category);
164  virtual void clearOrganizedCategories();
165  virtual bool isOrganizedLayer(const std::string&) const;
166 
168  virtual std::string layerName(const std::string&) const;
169 
170  virtual void removeTacticalGraphic(const makVrv::DtUniqueID& id);
171  virtual void renameTacticalGraphicOverlay(const makVrv::DtUniqueID& id, const std::string& newName);
172 
174  virtual int position(const std::string&) const;
175 
176  virtual std::set<std::string> organizedLayersFor(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* sv) const;
177  virtual std::set<std::string> organizedLayersFor(const makVrv::DtVrlinkSimulatedBaseState* sv, makVrv::DtElementID id = 0) const;
178 
180  virtual int numberOfOrganizedCategories() const;
181 
183  virtual std::string displayName(const std::string& layer) const;
184 
186  virtual bool isOnDefaultHiddenLayer(makVrv::DtUniqueID id) const;
187 
188  boost::signals2::signal<void (const std::string&, int)> signal_flagsChanged;
189  boost::signals2::signal<void (const std::string&, bool)> signal_overlayHidden;
190  boost::signals2::signal<void (const std::string&, bool)> signal_overlayLocked;
191  boost::signals2::signal<void (const std::string&, int)> signal_overlayVisibilityStateChanged;
192  boost::signals2::signal<void (const std::string&, bool)> signal_defaultHiddenChanged;
193  boost::signals2::signal<void ()> signal_organizedCategoriesInitialized;
194  boost::signals2::signal<void (const makVrv::DtElementID, bool& canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer;
195 
196  protected:
197  virtual void initialize();
198  virtual void objectAdded(const makVrv::DtStateView<makVrv::DtVrlinkSimulatedBaseState>* p);
199  virtual void slot_organizeOverlaysByCategoryChanged(bool);
200 
201  virtual void setFlag(const std::string& s, OverlayFlags, bool);
202  virtual bool testFlag(const std::string& s, OverlayFlags) const;
203 
204  virtual void updateLayerVisibilityThatHas(makVrv::DtUniqueID, bool b);
205 
206  virtual void addDefaultOrganizedCategories(const DtSimulationObjectCategoryInformation&);
207  virtual void notifyLayerVisibilityChanged();
208 
212  virtual bool onlyOnOneLayer(const makVrv::DtElementID) const;
213  virtual bool onlyOnOneLayer(const makVrv::DtVrlinkSimulatedBaseState* sv) const;
214 
215  public:
217 
218  protected:
220  std::set<std::string> myAllowGlobalIdOnMoreThanOneLayer;
221  std::string myStealthType;
223 
224  typedef std::map<std::string, int> OverlayFlagsMap;
226 
227  std::set<std::string> myOverlaysHidden;
228 
229  typedef std::map<std::string, DtVrfSelectionFilter*> VisibilityFilters;
231 
232  typedef std::vector<OrganizedCategory> OrganizedCategories;
234 
235  struct MemberInfo
236  {
237  MemberInfo() : numHidden(0), numVisible(0) {};
238 
239  int numHidden;
241  std::map<makVrv::DtUniqueID, bool> visibilityMap;
242  };
243 
244  typedef std::map<std::string, MemberInfo> Members;
246 
247  boost::signalslib::connection myVisibilityChangedConnection;
248  std::map<std::string, int> myLayerVisibilityChanged;
250 
251  std::set<std::string> myAlwaysAvailable;
252  };
253 }
Members myMembers
Definition: vrfTacticalGraphicOverlayManager.h:245
class DtVrfSelectionFilter
Definition: vrfSelectionFilters.h:32
static DtString theOrganizedOverlayMarker
Definition: vrfTacticalGraphicOverlayManager.h:216
The DtSimulationObjectCategoryInformation class is a class that will read the comma delimited categor...
Definition: simulationObjectCategoryInformation.h:22
boost::signalslib::connection myVisibilityChangedConnection
Definition: vrfTacticalGraphicOverlayManager.h:247
std::string myStealthType
Definition: vrfTacticalGraphicOverlayManager.h:221
OrganizedCategories myOrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:233
VisibilityFilters myVisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:230
Definition: vrfTacticalGraphicOverlayManager.h:49
std::map< makVrv::DtUniqueID, bool > visibilityMap
Definition: vrfTacticalGraphicOverlayManager.h:241
int numVisible
Definition: vrfTacticalGraphicOverlayManager.h:240
Definition: vrfTacticalGraphicOverlayManager.h:235
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:193
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
std::map< std::string, int > OverlayFlagsMap
Definition: vrfTacticalGraphicOverlayManager.h:224
DtString displayName
Definition: vrfTacticalGraphicOverlayManager.h:56
std::map< std::string, MemberInfo > Members
Definition: vrfTacticalGraphicOverlayManager.h:244
std::set< std::string > myAlwaysAvailable
Definition: vrfTacticalGraphicOverlayManager.h:251
DtString icon
Definition: vrfTacticalGraphicOverlayManager.h:57
makVrv::DtSharedSettingsManager * mySettingsManager
Definition: vrfTacticalGraphicOverlayManager.h:222
std::set< std::string > myAllowGlobalIdOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:220
Override tactical graphic manager to support aggregate/entities on palette.
Definition: vrfTacticalGraphicOverlayManager.h:36
bool myOrganizeOverlaysByCategory
Definition: vrfTacticalGraphicOverlayManager.h:249
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
boost::signals2::signal< void(const std::string &, int)> signal_overlayVisibilityStateChanged
Definition: vrfTacticalGraphicOverlayManager.h:191
Contains makVrv::DtVrlinkSimulatedEntityState class.
OverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:39
OverlayFlagsMap myOverlayFlags
Definition: vrfTacticalGraphicOverlayManager.h:225
std::vector< OrganizedCategory > OrganizedCategories
Definition: vrfTacticalGraphicOverlayManager.h:232
OrganizedCategory()
Definition: vrfTacticalGraphicOverlayManager.h:51
std::map< std::string, int > myLayerVisibilityChanged
Definition: vrfTacticalGraphicOverlayManager.h:248
DtVrfSelectionFilter * filter
Definition: vrfTacticalGraphicOverlayManager.h:54
boost::signals2::signal< void(const std::string &, bool)> signal_overlayHidden
Definition: vrfTacticalGraphicOverlayManager.h:189
Base class to provide boost signal/slot management.
boost::signals2::signal< void(const std::string &, bool)> signal_overlayLocked
Definition: vrfTacticalGraphicOverlayManager.h:190
std::set< int > myAllowOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:219
std::set< std::string > myOverlaysHidden
Definition: vrfTacticalGraphicOverlayManager.h:227
boost::signals2::signal< void(const std::string &, int)> signal_flagsChanged
Definition: vrfTacticalGraphicOverlayManager.h:188
std::map< std::string, DtVrfSelectionFilter * > VisibilityFilters
Definition: vrfTacticalGraphicOverlayManager.h:229
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
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:192
boost::signals2::signal< void(const makVrv::DtElementID, bool &canBeOnMoreThanOneLayer)> signal_canBeOnMoreThanOneLayer
Definition: vrfTacticalGraphicOverlayManager.h:194

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)