VR-Forces 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) 2023 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  class DtElementIDHierarchyNode;
35 
36 
47  {
48  public:
51 
53  virtual ~DtEntityElementManager();
54 
56  DtEntityElementManager() = delete;
57 
60 
62  DtEntityElementManager& operator=(const DtEntityElementManager&) = delete;
63 
64  public:
65 
67  static DtEntityElementManager* findInstance( DtBaseConnection& conn );
68 
70  virtual DtEntityElement* findElement(DtElementID elementId);
71 
73  virtual void addElement(DtEntityElement* element);
74 
76  virtual void destroyElement(DtElementID elementID);
77  boost::signalslib::signal<void(DtEntityElement*)> signal_elementAboutToBeDestroyed;
78 
81  virtual DtEntityElement* createElement(DtEntityStateListener&);
82  boost::signalslib::signal<void(DtEntityElement*)> signal_elementCreated;
83 
86  virtual double visualizerCreationProcessingTime() const;
87 
89  virtual DtBaseConnection& connection();
90 
92  typedef boost::unordered_map<DtElementID, DtEntityElement*> EntityElementMap;
93 
94  virtual const EntityElementMap& entityElements() const;
95 
96  virtual EntityElementMap& entityElements();
97 
98 
99  protected:
100 
107  virtual void occupantsVisible(DtElementID elementID, bool visible);
108 
111  virtual void entityTrackHistoryColorOverride(const DtElementID& entityId, const DtColorValue& color, bool overrideColor);
112 
116  virtual void switchEntitySymbolDecorationQuadrant(const DtElementID& entityId);
117 
119  virtual void changeLabelPinnedState(const DtSelectionManager::IdSet& ids, bool pinAllLabels);
120 
122  virtual void changeEntitySelection(const DtSelectionManager::IdSet& selected, const DtSelectionManager::IdSet& deselected);
123 
125  void changeElementHasMouseCursorState(const DtElementID& entityId, bool hasMouseCursor);
126 
129  virtual void setVisualizerCreationProcessingTime(double);
130 
133  virtual void removeFromHierarchy(DtElementID elementID);
136  virtual void modelSetVisualized(DtModelSetId modelSet, bool enabled);
137 
139  virtual void handleElementAttributeChanged(
140  DtEntityElement& entity, const DtElementAttribute* attr);
141 
143  virtual void elementAttributeChangeRequested( DtElementID id,
144  DtElementID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
145 
148  virtual void slot_visualizerCreationEnabled( DtModelSetId modelSet, int visualType );
149 
152  virtual void slot_visualizerCreationDisabled( DtModelSetId modelSet, int visualType );
153 
156  virtual void slot_visibilityStateChanged(DtElementID, DtElementIDHierarchyNode::DisplayState);
157 
160  virtual void slot_updateHierarchy(DtElementID id, const DtElementIDHierarchy::ElementIDs& children);
161 
162  protected:
163 
169  };
170 
174  {
175 
176  public:
179  static DtEntityElementManagerCreator& instance(DtBaseConnection& conn);
180 
182  static void registerInstance(DtBaseConnection& conn, DtEntityElementManagerCreator* instance);
183 
185  virtual DtEntityElementManager* create(DtBaseConnection& conn);
186  };
187 }
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:167
boost::signalslib::signal< void(DtEntityElement *)> signal_elementAboutToBeDestroyed
Definition: DtEntityElementManager.h:77
std::vector< DtElementID > ElementIDs
Definition: DtElementIDHierarchy.h:114
The DtEntityElementManager is used to create DtEntityElements. It maintains a map of all those elemen...
Definition: DtEntityElementManager.h:46
Contains makVrv:DtSelectionManager class.
DtSignalConnectionManager myConnections
Definition: DtEntityElementManager.h:165
The abstract Entity Element Manager creator for the manager class.
Definition: DtEntityElementManager.h:173
double myVisualizerCreationProcessingTime
Definition: DtEntityElementManager.h:168
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
The class that will be used to keep track of echelon hierarchy. (This was moved from vrvVrl 2022) ...
Definition: DtAggregateEchelonManager.h:34
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
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:164
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:92
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:31
Base class to provide boost signal/slot management.
boost::signalslib::signal< void(DtEntityElement *)> signal_elementCreated
Definition: DtEntityElementManager.h:82
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
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:166
DtEntityStateListener.
Definition: DtEntityStateListener.h:137
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)