VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTacticalGraphicOverlayManager.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2020 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <string>
14 #include <map>
15 #include <list>
16 #include <vector>
17 #include <vrvUtil/signalslib.h>
21 #include <vrvCore/DtElementData.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtDriverManager;
28  class DtTacticalGraphicOverlay;
29 
34  {
35 
40  {
41 
42  public:
43 
46 
48  DtTacticalGraphicOverlayMember(DtUniqueID id, std::string name, std::string overlay="");
49 
52 
54  virtual DtUniqueID id() const;
55  virtual void setId(const DtUniqueID& id);
56 
58  virtual const std::string& name() const;
59  virtual void setName(const std::string& name);
60 
62  virtual const std::string& overlay() const;
63  virtual void setOverlay(const std::string& name);
64 
66  virtual bool visible() const;
67  virtual void setVisible(bool flag);
68 
70  virtual bool filtered() const;
71  virtual void setFiltered(bool flag);
72 
73  protected:
74 
76  std::string myObjectName;
77  std::string myOverlayName;
78  bool myVisible;
79  bool myFiltered;
80  };
81 
82  public:
83 
84  typedef std::list<DtTacticalGraphicOverlay*> DtTacticalGraphicOverlayList;
85  typedef std::vector<DtElementEntry::ElementType> TacticalGraphicTypeVector;
86 
87  static DtTacticalGraphicOverlayManager& instance(DtDe& de);
88 
89  static void registerInstance(DtDe& de, DtTacticalGraphicOverlayManager* mgr);
90 
93 
96  virtual void addTacticalGraphic(const DtUniqueID& id, const std::string& name);
97 
100  virtual const std::string* tacticalGraphicName(const DtUniqueID& id) const;
101 
104  virtual void removeTacticalGraphic(const DtUniqueID& id);
105 
108  virtual void renameTacticalGraphic(const DtUniqueID& id, const std::string& newName);
109 
112  virtual void renameTacticalGraphicOverlay(const DtUniqueID& id, const std::string& newName);
113 
115  virtual void setTacticalGraphicVisible(const DtUniqueID& id, bool flag);
116 
118  virtual std::string newOverlay();
119 
122  virtual void addOverlay(const std::string& name);
123 
126  virtual void deleteOverlay(const std::string& name);
127 
130  virtual void renameOverlay(const std::string& oldName, const std::string& newName);
131 
133  virtual DtTacticalGraphicOverlay* findOverlay(const std::string& name) const;
134 
136  virtual DtTacticalGraphicOverlayList overlays() const;
137 
139  virtual bool overlayVisible(const std::string& overlayName) const;
140  virtual void setOverlayVisible(const std::string& overlayName, bool flag);
141 
143  virtual bool overlayFiltered(const std::string& overlayName) const;
144  virtual void setOverlayFiltered(const std::string& overlayName, bool flag);
145 
148  virtual bool overlayLocked(const std::string& overlayName) const;
149  virtual void setOverlayLocked(const std::string& overlayName, bool flag);
150 
152  virtual const DtTacticalGraphicOverlay* currentOverlay() const;
153  virtual void setCurrentOverlay(const std::string& name);
154 
156  virtual void setTacticalGraphicTypes(const TacticalGraphicTypeVector&);
157 
159  virtual const TacticalGraphicTypeVector& tacticalGraphicTypes() const;
160 
162  virtual bool isTacticalGraphic(const DtUniqueID& id) const;
163 
164  boost::signalslib::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicAdded;
165  boost::signalslib::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicRenamed;
166  boost::signalslib::signal<void (const DtUniqueID&, const std::string&)> signal_tacticalGraphicOverlayRenamed;
167  boost::signalslib::signal<void (const DtUniqueID&)> signal_tacticalGraphicRemoved;
168  boost::signalslib::signal<void (const DtUniqueID&, bool)> signal_tacticalGraphicVisibilityChanged;
169 
170 
171  boost::signalslib::signal<void (const std::string&)> signal_overlayAdded;
172  boost::signalslib::signal<void (const std::string&)> signal_overlayDeleted;
173  boost::signalslib::signal<void (const std::string&, bool)> signal_overlayFiltered;
174  boost::signalslib::signal<void (const std::string&, bool)> signal_overlayVisibilityChanged;
175  boost::signalslib::signal<void (const std::string&, const std::string&)> signal_overlayRenamed;
176  boost::signalslib::signal<void (const std::string&)> signal_currentOverlayChanged;
177 
178  protected:
179 
181  virtual void slot_onElementsAdded( const DtElementData::ElementList& elements );
182 
184  virtual void slot_onElementAttributesChanged(
186 
188  virtual void slot_onElementsRemoved( const DtElementData::UniqueIdList& elementIds);
189 
191  virtual void addFilter(const std::string& name, DtOverlayFilter* filter, bool apply=false);
192 
193  protected:
196 
197  protected:
198 
199  typedef std::map<DtUniqueID, DtTacticalGraphicOverlayMember> DtTacticalGraphicOverlayObjectMap;
200  typedef std::list<DtOverlayFilter*> DtTacticalGraphicOverlayFilterList;
201 
207 
209 
211  };
212 }
213 
boost::signalslib::signal< void(const std::string &)> signal_overlayAdded
Definition: DtTacticalGraphicOverlayManager.h:171
Abstract class to define the interface to overlay filters.
Definition: DtOverlayFilter.h:21
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
TacticalGraphicTypeVector myTacticalGraphicTypes
Definition: DtTacticalGraphicOverlayManager.h:210
DtTacticalGraphicOverlayObjectMap myTacticalGraphicNames
Definition: DtTacticalGraphicOverlayManager.h:205
boost::signalslib::signal< void(const std::string &)> signal_overlayDeleted
Definition: DtTacticalGraphicOverlayManager.h:172
bool myFiltered
Definition: DtTacticalGraphicOverlayManager.h:79
DtTacticalGraphicOverlayFilterList myFilters
Definition: DtTacticalGraphicOverlayManager.h:204
boost::signalslib::signal< void(const DtUniqueID &, const std::string &)> signal_tacticalGraphicOverlayRenamed
Definition: DtTacticalGraphicOverlayManager.h:166
DtSignalConnectionManager mySignals
Definition: DtTacticalGraphicOverlayManager.h:208
Contains makVrv::DtElementData class.
boost::signalslib::signal< void(const std::string &, bool)> signal_overlayVisibilityChanged
Definition: DtTacticalGraphicOverlayManager.h:174
std::string myObjectName
Definition: DtTacticalGraphicOverlayManager.h:76
boost::signalslib::signal< void(const std::string &, const std::string &)> signal_overlayRenamed
Definition: DtTacticalGraphicOverlayManager.h:175
boost::signalslib::signal< void(const std::string &)> signal_currentOverlayChanged
Definition: DtTacticalGraphicOverlayManager.h:176
boost::signalslib::signal< void(const DtUniqueID &, const std::string &)> signal_tacticalGraphicAdded
Definition: DtTacticalGraphicOverlayManager.h:164
boost::signalslib::signal< void(const std::string &, bool)> signal_overlayFiltered
Definition: DtTacticalGraphicOverlayManager.h:173
DtDe & myDe
Definition: DtTacticalGraphicOverlayManager.h:202
std::map< DtUniqueID, DtTacticalGraphicOverlayMember > DtTacticalGraphicOverlayObjectMap
Definition: DtTacticalGraphicOverlayManager.h:199
Contains makVrv::DtVirtualBaseClass class.
DtTacticalGraphicOverlayList myOverlays
Definition: DtTacticalGraphicOverlayManager.h:203
boost::signalslib::signal< void(const DtUniqueID &, const std::string &)> signal_tacticalGraphicRenamed
Definition: DtTacticalGraphicOverlayManager.h:165
std::vector< DtElementEntry::ElementType > TacticalGraphicTypeVector
Definition: DtTacticalGraphicOverlayManager.h:85
bool myVisible
Definition: DtTacticalGraphicOverlayManager.h:78
boost::signalslib::signal< void(const DtUniqueID &)> signal_tacticalGraphicRemoved
Definition: DtTacticalGraphicOverlayManager.h:167
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Holds information about the overlays managed by the Tactical Graphic Overlay Manager.
Definition: DtTacticalGraphicOverlay.h:25
std::vector< EntryAttributes > EntryAttributesList
Define the type used to signal changes to one or more attributes for one or more elements.
Definition: DtElementAttributeManager.h:43
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::string myOverlayName
Definition: DtTacticalGraphicOverlayManager.h:77
std::list< DtTacticalGraphicOverlay * > DtTacticalGraphicOverlayList
Definition: DtTacticalGraphicOverlayManager.h:84
DtUniqueID myObjectID
Definition: DtTacticalGraphicOverlayManager.h:75
std::vector< DtElementEntry * > ElementList
Type definition for a vector of DtElementEntry pointers.
Definition: DtElementData.h:47
Base class to provide boost signal/slot management.
boost::signalslib::signal< void(const DtUniqueID &, bool)> signal_tacticalGraphicVisibilityChanged
Definition: DtTacticalGraphicOverlayManager.h:168
std::vector< DtElementID > UniqueIdList
Public Type Definitions.
Definition: DtElementData.h:49
DtOverlayItem Holds information about the tactical graphics managed by the Tactical Graphic Overlay M...
Definition: DtTacticalGraphicOverlayManager.h:39
Contains the DtElementAttributeManager class declaration.
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
DtTacticalGraphicOverlay * myCurrentOverlay
Definition: DtTacticalGraphicOverlayManager.h:206
std::list< DtOverlayFilter * > DtTacticalGraphicOverlayFilterList
Definition: DtTacticalGraphicOverlayManager.h:200
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)