VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTacticalGraphicElementManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
15 
18 #include <boost/unordered_map.hpp>
19 
20 #include <vlutil/vlSmartPointers.h>
21 
22 namespace makVrv
23 {
24  class DtTacticalGraphicElement;
25  class DtBaseConnection;
26  class DtTacticalGraphicStateListener;
27 
37  {
38  public:
41 
44 
47 
50 
53 
54  public:
55 
57  virtual DtTacticalGraphicElement* findElement( DtElementID elementId );
58 
60  virtual void addElement( DtTacticalGraphicElement* element );
61 
63  virtual void destroyElement( DtElementID elementID );
64 
69  std::vector<DtUnicode> definitions );
70 
73  virtual double visualizerCreationProcessingTime() const;
74  protected:
75 
77  virtual void changeLabelPinnedState( const DtSelectionManager::IdSet& ids, bool pinAllLabels );
78 
82  virtual void changeTacticalGraphicSelection( const DtSelectionManager::IdSet& selected, const DtSelectionManager::IdSet& deselected );
83 
85  void tacticalGraphicsVertexSelected( const DtUniqueID& vertexElementID,
86  const DtUniqueID& parentElementID );
87 
89  void tacticalGraphicsVertexDeselected( const DtUniqueID& vertexElementID,
90  const DtUniqueID& parentElementID );
91 
93  void changeElementHasMouseCursorState( const DtElementID& TacticalGraphicId, bool hasMouseCursor );
94  void changeVertexElementHasMouseCursorState( const DtElementID& parentElementId, const DtElementID& vertexElementId, bool hasMouseCursor );
96 
99  virtual void setVisualizerCreationProcessingTime( double );
100 
101 
102  public:
103  boost::signalslib::signal<void( DtTacticalGraphicElement* )> signal_elementCreated;
104  boost::signalslib::signal<void( DtTacticalGraphicElement* )> signal_elementAboutToBeDestroyed;
105 
106  protected:
107 
110  virtual void modelSetVisualized( DtModelSetId modelSet, bool enabled );
111 
113  virtual void handleElementAttributeChanged(
114  DtTacticalGraphicElement* element, const DtElementAttribute* attr );
115 
116  virtual void handleChildElementAttributeChanged(
117  DtTacticalGraphicElement* element, DtUniqueID childId,
118  const DtElementAttribute* attr );
119  protected:
120 
122  virtual void elementAttributeChangeRequested( DtElementID id,
123  DtElementID parentID, std::shared_ptr<const DtElementAttribute> atr );
124 
127  virtual void slot_visualizerCreationEnabled( DtModelSetId modelSet, int visualType );
128 
131  virtual void slot_visualizerCreationDisabled( DtModelSetId modelSet, int visualType );
132 
133  public:
134 
136  virtual DtBaseConnection& connection();
137 
139  typedef boost::unordered_map<DtElementID, DtTacticalGraphicElement*> TacticalGraphicElementMap;
140 
142  {
143  return myTacticalGraphicElements;
144  };
145 
147  {
148  return myTacticalGraphicElements;
149  };
150 
151 
152  protected:
153 
154  DtBaseConnection& myConnection;
158  };
159 
163  {
164 
165  public:
169 
171  static void registerInstance( DtBaseConnection& conn, DtTacticalGraphicElementManagerCreator* instance );
172 
174  virtual DtTacticalGraphicElementManager* create( DtBaseConnection& conn );
175  };
176 }
The DtTacticalGraphicElementManager is used to create DtTacticalGraphicElements. It maintains a map o...
Definition: DtTacticalGraphicElementManager.h:36
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
The abstract TacticalGraphic Element Manager creator for the manager class.
Definition: DtTacticalGraphicElementManager.h:162
boost::unordered_map< DtElementID, DtTacticalGraphicElement * > TacticalGraphicElementMap
Accessor for full map of element visualizers.
Definition: DtTacticalGraphicElementManager.h:139
Contains makVrv:DtSelectionManager class.
The DtTacticalGraphicStateListener is a class that deals with basic TacticalGraphic process code (suc...
Definition: DtTacticalGraphicStateListener.h:27
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
Contains makVrv::DtVirtualBaseClass class.
TacticalGraphicElementMap & tacticalGraphicElements()
Definition: DtTacticalGraphicElementManager.h:146
DtSignalConnectionManager myConnections
Definition: DtTacticalGraphicElementManager.h:155
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(DtTacticalGraphicElement *)> signal_elementCreated
Definition: DtTacticalGraphicElementManager.h:103
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
ElementType
Definition: DtElementEntry.h:26
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
A single tactical graphic element. A tactical graphic element may be visualized using multiple visual...
Definition: DtTacticalGraphicElement.h:35
Base class to provide boost signal/slot management.
TacticalGraphicElementMap myTacticalGraphicElements
Definition: DtTacticalGraphicElementManager.h:156
const TacticalGraphicElementMap & tacticalGraphicElements() const
Definition: DtTacticalGraphicElementManager.h:141
DtModelSetId
Definition: DtModelSetEnums.h:19
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:20
boost::signalslib::signal< void(DtTacticalGraphicElement *)> signal_elementAboutToBeDestroyed
Definition: DtTacticalGraphicElementManager.h:104
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
double myVisualizerCreationProcessingTime
Definition: DtTacticalGraphicElementManager.h:157
Contains DLL export macros.

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)