VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAggregateElementManager.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 
18 
19 #include <vlutil/vlSmartPointers.h>
20 
21 #include <unordered_map>
22 
23 namespace makVrv
24 {
25 
26  class DtAggregateEchelonManager;
27  class DtColorValue;
28  class DtAggregateElement;
29  class DtBaseConnection;
30  class DtAggregateStateListener;
31  enum class DtModelSetId;
32 
44  {
45  public:
48 
50  virtual ~DtAggregateElementManager();
51 
53  DtAggregateElementManager() = delete;
54 
57 
59  DtAggregateElementManager& operator=(const DtAggregateElementManager&) = delete;
60 
61  public:
62 
64  virtual DtBaseConnection& connection();
65 
66 
68  typedef std::unordered_map<DtElementID, DtAggregateElement*> AggregateElementMap;
69 
71  virtual const AggregateElementMap& aggregateElements() const;
73  virtual AggregateElementMap& aggregateElements();
75 
77  virtual DtAggregateStateListener* findListener(DtElementID elementId);
78 
80  virtual DtAggregateElement* findElement(DtElementID elementId);
81 
83  virtual void addElement(DtAggregateElement* element);
84 
86  virtual void destroyElement(DtElementID elementID);
87  boost::signalslib::signal<void(DtAggregateElement*)> signal_elementAboutToBeDestroyed;
88 
89 
92  virtual DtAggregateElement* createElement(DtAggregateStateListener&);
93  boost::signalslib::signal<void(DtAggregateElement*)> signal_elementCreated;
94 
95 
98  virtual double visualizerCreationProcessingTime() const;
99  protected:
100 
102  virtual void slot_hierarchyItemModified(DtElementIDHierarchyNode*);
103 
105  virtual void changeAggregateSelection(const DtSelectionManager::IdSet& selected, const DtSelectionManager::IdSet& deselected);
106 
108  void changeElementHasMouseCursorState(const DtElementID& entityId, bool hasMouseCursor);
110 
113  virtual void slot_visibilityStateChanged(DtElementID, DtElementIDHierarchyNode::DisplayState);
114 
116  virtual void slot_aggregateDestroyedStateChanged(DtElementID, bool);
117 
120  virtual void setVisualizerCreationProcessingTime(double);
121 
124  virtual void modelSetVisualized( DtModelSetId modelSet, bool enabled);
125 
127  virtual void handleElementAttributeChanged(
128  DtAggregateElement& entity, const DtElementAttribute* attr);
129 
131  virtual void elementAttributeChangeRequested( DtElementID id,
132  DtElementID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
133 
136  virtual void slot_visualizerCreationEnabled( DtModelSetId modelSet, int visualType );
137 
140  virtual void slot_visualizerCreationDisabled( DtModelSetId modelSet, int visualType );
141 
142  virtual void removeFromHierarchy(DtElementID elementId);
143 
144  protected:
145 
149 
152 
153  };
154 
158  {
159 
160  public:
163  static DtAggregateElementManagerCreator& instance(DtBaseConnection& conn);
164 
166  static void registerInstance(DtBaseConnection& conn, DtAggregateElementManagerCreator* instance);
167 
169  virtual DtAggregateElementManager* create(DtBaseConnection& conn);
170  };
171 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A single Aggregate element. An Aggregate element may be visualized using multiple visualizer sets one...
Definition: DtAggregateElement.h:32
boost::signalslib::signal< void(DtAggregateElement *)> signal_elementCreated
Definition: DtAggregateElementManager.h:93
The abstract Aggregate Element Manager creator for the manager class.
Definition: DtAggregateElementManager.h:157
The DtAggregateStateListener extends DtEntityStateListener. It provides a interface to all the visual...
Definition: DtAggregateStateListener.h:33
Contains makVrv:DtSelectionManager class.
DtSignalConnectionManager myConnections
Definition: DtAggregateElementManager.h:147
boost::signalslib::signal< void(DtAggregateElement *)> signal_elementAboutToBeDestroyed
Definition: DtAggregateElementManager.h:87
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
DtAggregateEchelonManager & myHierarchyManager
Definition: DtAggregateElementManager.h:148
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
Contains makVrv::DtElementIDHierarchy class. This is an arbitrary hierarchy class that will allow hie...
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
double myVisualizerCreationProcessingTime
Definition: DtAggregateElementManager.h:151
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
DtBaseConnection & myConnection
Definition: DtAggregateElementManager.h:146
Base class to provide boost signal/slot management.
AggregateElementMap myAggregateElements
Definition: DtAggregateElementManager.h:150
std::unordered_map< DtElementID, DtAggregateElement * > AggregateElementMap
Type definition for the element map.
Definition: DtAggregateElementManager.h:68
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
The DtAggregateElementManager is used to create DtAggregateElements. It maintains a map of all those ...
Definition: DtAggregateElementManager.h:43
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)