VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEntityElementProcessor.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
13 
16 
18 
19 #include <boost/unordered_map.hpp>
20 
21 #include <vl/globalObjectDesignator.h>
22 
23 #include <vlutil/vlSmartPointers.h>
24 
25 namespace makVrv
26 {
27  class DtEntityVisualizerSet;
28  class DtAggregateEchelonManager;
29  class DtEntityFilter;
30  class DtColorValue;
31 
32  namespace DT_PROTOCOL_NAMESPACE
33  {
34  class DtVrlinkEntityElement;
35  class DtEntityExistenceListener;
36  class DtVrlinkConnection;
38 
45  {
46  public:
49 
51  virtual ~DtEntityElementProcessor();
52 
54  DtEntityElementProcessor() = delete;
55 
58 
60  DtEntityElementProcessor& operator=(const DtEntityElementProcessor&) = delete;
61 
62  public:
65  static void registerInstance(DtVrlinkConnection& conn,
66  DtEntityElementProcessor* instance);
67 
69  static DtEntityElementProcessor* findInstance(DtVrlinkConnection& conn);
70 
71  public:
73  void toggleLabelPinnedState(const DtSelectionManager::IdSet& ids);
74 
76  void changeEntitySelection(const DtSelectionManager::IdSet& selected,
77  const DtSelectionManager::IdSet& deselected);
78 
80  void changeElementHasMouseCursorState(const DtElementID& entityId,
81  bool hasMouseCursor);
82 
89  void occupantsVisible(DtElementID elementID, bool visible);
90 
93  virtual void entityTrackHistoryColorOverride(const DtUniqueID& entityId, const DtColorValue& color, bool overrideColor);
94 
96  DtEntityVisualizerSet* findVisualizer(int modelSet, const DtGlobalObjectDesignator& id);
97 
100  std::vector<DtEntityVisualizerSet*> findVisualizers( const DtGlobalObjectDesignator& id);
101 
104  DtEntityVisualizerSet* findVisualizerSet(
105  const DtGlobalObjectDesignator& id, unsigned int modelSet);
106 
108  DtVrlinkEntityStateListener* findListener( const DtElementID& elementId );
109 
111  DtVrlinkEntityElement* findElement( const DtElementID& elementId );
112 
114  DtVrlinkEntityElement* findElement( const DtGlobalObjectDesignator& id );
115 
117  DtEntityVisualizerSet* findVisualizer( const DtUniqueID& id);
118 
121  void setVisualizerCreationProcessingTime(double);
122  double visualizerCreationProcessingTime() const;
123 
126  visualTypeVisualizerCreationMap() const;
127 
128  public:
129  boost::signalslib::signal<void (DtVrlinkEntityStateListener&, DtVrlinkEntityElement*)> signal_elementCreated;
130  boost::signalslib::signal<void (DtVrlinkEntityStateListener&, DtVrlinkEntityElement*)> signal_elementAboutToBeDestroyed;
131 
132  protected:
133 
136  virtual void modelSetVisualized(int modelSet, bool enabled);
137 
139  virtual void handleElementAttributeChanged(
140  DtVrlinkEntityElement& entity, const DtElementAttribute* attr);
141 
143  virtual void onEntityDiscovered(DtVrlinkEntityStateListener& listener);
144 
146  virtual void onEntityToBeDestroyed(DtVrlinkEntityStateListener& listener);
147 
149  virtual bool onFilterEntity(const std::string& entityId);
150 
152  virtual void elementAttributeChangeRequested( DtUniqueID id,
153  DtUniqueID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
154 
156  virtual void slot_completeDiscovery();
157 
158  virtual void slot_addEntityFilter(DtEntityFilter* filter);
159 
162  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
163 
166  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
167 
170  virtual void createElement(DtVrlinkEntityStateListener&);
171 
172  protected:
173 
174  typedef boost::unordered_map<DtUniqueID, DtVrlinkEntityElement*>
176  typedef boost::unordered_map<std::string, DtVrlinkEntityElement*>
178  typedef boost::unordered_map<DtUniqueID, DtVrlinkEntityStateListener*>
180  typedef std::vector<DtEntityFilter*> EntityFilterList;
181 
191  };
192 
193  }
194 }
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtAggregateEchelonManager & myEchelonHierarchy
Definition: DtEntityElementProcessor.h:186
ToBeVisualizedMap myToBeVisualized
Definition: DtEntityElementProcessor.h:187
double myVisualizerCreationProcessingTime
Definition: DtEntityElementProcessor.h:188
DtSignalConnectionManager myConnections
Definition: DtEntityElementProcessor.h:183
boost::signalslib::signal< void(DtVrlinkEntityStateListener &, DtVrlinkEntityElement *)> signal_elementAboutToBeDestroyed
Definition: DtEntityElementProcessor.h:130
std::vector< DtEntityFilter * > EntityFilterList
Definition: DtEntityElementProcessor.h:180
Contains makVrv:DtSelectionManager class.
boost::unordered_map< int, ModelSetVisualizerCreationMap > VisualTypeVisualizerCreationMap
Map that indicates whether a visualizer should be created, by visual type, for all given model sets...
Definition: DtVisualizerCreationSettings.h:36
boost::unordered_map< std::string, DtVrlinkEntityElement * > GlobalIdToEntityElementVisualizerMap
Definition: DtEntityElementProcessor.h:177
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.
Definition: DtAggregateEchelonManager.h:31
EntityFilterList myEntityFilterList
Definition: DtEntityElementProcessor.h:189
boost::unordered_map< DtUniqueID, DtVrlinkEntityStateListener * > ToBeVisualizedMap
Definition: DtEntityElementProcessor.h:179
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
EntityElementVisualizerMap myEntityElementVisualizers
Definition: DtEntityElementProcessor.h:184
DtVisualizerCreationSettings * myVisualTypeVisualizerSettings
Definition: DtEntityElementProcessor.h:190
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
GlobalIdToEntityElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtEntityElementProcessor.h:185
Contains makVrv::DtVisualizerCreationSettings class.
boost::signalslib::signal< void(DtVrlinkEntityStateListener &, DtVrlinkEntityElement *)> signal_elementCreated
Definition: DtEntityElementProcessor.h:129
DtVrlinkConnection & myConnection
Definition: DtEntityElementProcessor.h:182
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Used to filter out entities in discovery conditions.
Definition: DtEntityFilter.h:27
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
Base class to provide boost signal/slot management.
The DtEntityElementProcessor will connect to the DtEntityExistenceListener and handle the creation of...
Definition: DtEntityElementProcessor.h:44
This class is a set of entity visualizers, all of the visualizers in this set must support the entity...
Definition: DtEntityVisualizerSet.h:24
boost::unordered_map< DtUniqueID, DtVrlinkEntityElement * > EntityElementVisualizerMap
Definition: DtEntityElementProcessor.h:175
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:20
Contains DLL export macros.
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Template for Color values in [0,1] range.
Definition: DtColorValue.h:20
Container class which indicates which visualizers need to be created for each modelSet, based on whether that visualizer visualizes something that is currently enabled and if the visualizer is create-on-demand vs.
Definition: DtVisualizerCreationSettings.h:26

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)