VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntityElementManager.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 
16 
19 #include <vlutil/vlSmartPointers.h>
20 
21 #include <boost/unordered_map.hpp>
22 
23 // #include <vlutil/vlSmartPointers.h>
24 
25 
26 namespace makVrv
27 {
28 
29  class DtAggregateEchelonManager;
30  class DtColorValue;
31  class DtEntityElement;
32  class DtBaseConnection;
33  class DtEntityStateListener;
34 
35 
46  {
47  public:
50 
52  virtual ~DtEntityElementManager();
53 
55  DtEntityElementManager() = delete;
56 
59 
61  DtEntityElementManager& operator=(const DtEntityElementManager&) = delete;
62 
63  public:
64 
66  virtual DtEntityElement* findElement(DtElementID elementId);
67 
69  virtual void addElement(DtEntityElement* element);
70 
72  virtual void destroyElement(DtElementID elementID);
73  boost::signalslib::signal<void(DtEntityElement*)> signal_elementAboutToBeDestroyed;
74 
77  virtual void createElement(DtEntityStateListener&);
78  boost::signalslib::signal<void(DtEntityElement*)> signal_elementCreated;
79 
82  virtual double visualizerCreationProcessingTime() const;
83 
85  virtual DtBaseConnection& connection();
86 
88  typedef boost::unordered_map<DtElementID, DtEntityElement*> EntityElementMap;
89 
90  virtual const EntityElementMap& entityElements() const;
91 
92  virtual EntityElementMap& entityElements();
93 
94 
95  protected:
96 
103  virtual void occupantsVisible(DtElementID elementID, bool visible);
104 
107  virtual void entityTrackHistoryColorOverride(const DtElementID& entityId, const DtColorValue& color, bool overrideColor);
108 
110  virtual void changeLabelPinnedState(const DtSelectionManager::IdSet& ids, bool pinAllLabels);
111 
113  virtual void changeEntitySelection(const DtSelectionManager::IdSet& selected, const DtSelectionManager::IdSet& deselected);
114 
116  void changeElementHasMouseCursorState(const DtElementID& entityId, bool hasMouseCursor);
117 
120  virtual void setVisualizerCreationProcessingTime(double);
121 
124  virtual void removeFromHierarchy(DtElementID elementID);
127  virtual void modelSetVisualized(int modelSet, bool enabled);
128 
130  virtual void handleElementAttributeChanged(
131  DtEntityElement& entity, const DtElementAttribute* attr);
132 
134  virtual void elementAttributeChangeRequested( DtElementID id,
135  DtElementID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
136 
139  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
140 
143  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
144 
147  virtual void slot_visibilityStateChanged(DtElementID, DtElementIDHierarchyNode::DisplayState);
148  protected:
149 
155  };
156 
160  {
161 
162  public:
165  static DtEntityElementManagerCreator& instance(DtBaseConnection& conn);
166 
168  static void registerInstance(DtBaseConnection& conn, DtEntityElementManagerCreator* instance);
169 
171  virtual DtEntityElementManager* create(DtBaseConnection& conn);
172  };
173 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtAggregateEchelonManager & myHierarchyManager
Definition: DtEntityElementManager.h:153
boost::signalslib::signal< void(DtEntityElement *)> signal_elementAboutToBeDestroyed
Definition: DtEntityElementManager.h:73
The DtEntityElementManager is used to create DtEntityElements. It maintains a map of all those elemen...
Definition: DtEntityElementManager.h:45
Contains makVrv:DtSelectionManager class.
DtSignalConnectionManager myConnections
Definition: DtEntityElementManager.h:151
The abstract Entity Element Manager creator for the manager class.
Definition: DtEntityElementManager.h:159
double myVisualizerCreationProcessingTime
Definition: DtEntityElementManager.h:154
The class that will be used to keep track of echelon hierarchy. (This was moved from vrvVrl 2022) ...
Definition: DtAggregateEchelonManager.h:32
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
Contains makVrv::DtVirtualBaseClass class.
DisplayState
Used to keep track of state of item as it should appear visually in the hierarchy.
Definition: DtElementIDHierarchy.h:39
DtBaseConnection & myConnection
Definition: DtEntityElementManager.h:150
Contains makVrv::DtElementIDHierarchy class. This is an arbitrary hierarchy class that will allow hie...
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
boost::unordered_map< DtElementID, DtEntityElement * > EntityElementMap
Accessor for full map of element visualizers.
Definition: DtEntityElementManager.h:88
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:32
Base class to provide boost signal/slot management.
boost::signalslib::signal< void(DtEntityElement *)> signal_elementCreated
Definition: DtEntityElementManager.h:78
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:20
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Template for Color values in [0,1] range.
Definition: DtColorValue.h:20
EntityElementMap myEntityElements
Definition: DtEntityElementManager.h:152
DtEntityStateListener.
Definition: DtEntityStateListener.h:132
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)