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) 2022 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 );
95 
98  virtual void setVisualizerCreationProcessingTime( double );
99 
100 
101  public:
102  boost::signalslib::signal<void( DtTacticalGraphicElement* )> signal_elementCreated;
103  boost::signalslib::signal<void( DtTacticalGraphicElement* )> signal_elementAboutToBeDestroyed;
104 
105  protected:
106 
109  virtual void modelSetVisualized( DtModelSetId modelSet, bool enabled );
110 
112  virtual void handleElementAttributeChanged(
113  DtTacticalGraphicElement* element, const DtElementAttribute* attr );
114 
115  virtual void handleChildElementAttributeChanged(
116  DtTacticalGraphicElement* element, DtUniqueID childId,
117  const DtElementAttribute* attr );
118  protected:
119 
121  virtual void elementAttributeChangeRequested( DtElementID id,
122  DtElementID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
123 
126  virtual void slot_visualizerCreationEnabled( DtModelSetId modelSet, int visualType );
127 
130  virtual void slot_visualizerCreationDisabled( DtModelSetId modelSet, int visualType );
131 
132  public:
133 
135  virtual DtBaseConnection& connection();
136 
138  typedef boost::unordered_map<DtElementID, DtTacticalGraphicElement*> TacticalGraphicElementMap;
139 
141  {
142  return myTacticalGraphicElements;
143  };
144 
146  {
147  return myTacticalGraphicElements;
148  };
149 
150 
151  protected:
152 
153  DtBaseConnection& myConnection;
157  };
158 
162  {
163 
164  public:
168 
170  static void registerInstance( DtBaseConnection& conn, DtTacticalGraphicElementManagerCreator* instance );
171 
173  virtual DtTacticalGraphicElementManager* create( DtBaseConnection& conn );
174  };
175 }
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:161
boost::unordered_map< DtElementID, DtTacticalGraphicElement * > TacticalGraphicElementMap
Accessor for full map of element visualizers.
Definition: DtTacticalGraphicElementManager.h:138
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:145
DtSignalConnectionManager myConnections
Definition: DtTacticalGraphicElementManager.h:154
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signalslib::signal< void(DtTacticalGraphicElement *)> signal_elementCreated
Definition: DtTacticalGraphicElementManager.h:102
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:33
Base class to provide boost signal/slot management.
TacticalGraphicElementMap myTacticalGraphicElements
Definition: DtTacticalGraphicElementManager.h:155
const TacticalGraphicElementMap & tacticalGraphicElements() const
Definition: DtTacticalGraphicElementManager.h:140
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:103
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
double myVisualizerCreationProcessingTime
Definition: DtTacticalGraphicElementManager.h:156
Contains DLL export macros.

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)