VR-Forces 4.8 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvVrl/vrvVrl.h>
16 #include <boost/unordered_map.hpp>
17 #include <vl/globalObjectDesignator.h>
18 
19 namespace makVrv
20 {
21  class DtEntityVisualizerSet;
22  class DtAggregateEchelonManager;
23  class DtEntityFilter;
24  class DtColorValue;
25 
26  namespace DT_PROTOCOL_NAMESPACE
27  {
28  class DtEntityElement;
29  class DtEntityExistenceListener;
30  class DtVrlinkConnection;
32 
39  {
40  public:
43 
46  static void registerInstance(DtVrlinkConnection& conn,
47  DtEntityElementProcessor* instance);
48 
50  static DtEntityElementProcessor* findInstance(DtVrlinkConnection& conn);
51 
53  virtual ~DtEntityElementProcessor();
54 
56  void toggleLabelPinnedState(const DtSelectionManager::IdSet& ids);
57 
59  void changeEntitySelection(const DtSelectionManager::IdSet& selected,
60  const DtSelectionManager::IdSet& deselected);
61 
68  void occupantsVisible(DtElementID elementID, bool visible);
69 
72  virtual void entityTrackHistoryColorOverride(const DtUniqueID& entityId, const DtColorValue& color, bool overrideColor);
73 
75  DtEntityVisualizerSet* findVisualizer(int modelSet, const DtGlobalObjectDesignator& id);
76 
79  std::vector<DtEntityVisualizerSet*> findVisualizers( const DtGlobalObjectDesignator& id);
80 
83  DtEntityVisualizerSet* findVisualizerSet(
84  const DtGlobalObjectDesignator& id, unsigned int modelSet);
85 
87  DtVrlinkEntityStateListener* findListener( const DtElementID& elementId );
88 
90  DtEntityElement* findElement( const DtElementID& elementId );
91 
93  DtEntityElement* findElement( const DtGlobalObjectDesignator& id );
94 
96  DtEntityVisualizerSet* findVisualizer( const DtUniqueID& id);
97 
100  void setVisualizerCreationProcessingTime(double);
101  double visualizerCreationProcessingTime() const;
102 
105  visualTypeVisualizerCreationMap() const;
106 
107  public:
108  boost::signal<void (DtVrlinkEntityStateListener&, DtEntityElement*)> signal_elementCreated;
109  boost::signal<void (DtVrlinkEntityStateListener&, DtEntityElement*)> signal_elementAboutToBeDestroyed;
110 
111  protected:
112 
115  virtual void modelSetVisualized(int modelSet, bool enabled);
116 
118  virtual void handleElementAttributeChanged(
119  DtEntityElement& entity, const DtElementAttribute* attr);
120 
122  virtual void onEntityDiscovered(DtVrlinkEntityStateListener& listener);
123 
125  virtual void onEntityToBeDestroyed(DtVrlinkEntityStateListener& listener);
126 
128  virtual bool onFilterEntity(const std::string& entityId);
129 
131  virtual void elementAttributeChangeRequested( DtUniqueID id,
132  DtUniqueID parentID, DtBoost::shared_ptr<const DtElementAttribute> atr );
133 
135  virtual void slot_completeDiscovery();
136 
137  virtual void slot_addEntityFilter(DtEntityFilter* filter);
138 
141  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
142 
145  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
146 
149  virtual void createElement(DtVrlinkEntityStateListener&);
150 
151  protected:
152 
153  typedef boost::unordered_map<DtUniqueID, DtEntityElement*>
155  typedef boost::unordered_map<std::string, DtEntityElement*>
157  typedef boost::unordered_map<DtUniqueID, DtVrlinkEntityStateListener*>
159  typedef std::vector<DtEntityFilter*> EntityFilterList;
160 
170  };
171  }
172 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtAggregateEchelonManager & myEchelonHierarchy
Definition: DtEntityElementProcessor.h:165
ToBeVisualizedMap myToBeVisualized
Definition: DtEntityElementProcessor.h:166
double myVisualizerCreationProcessingTime
Definition: DtEntityElementProcessor.h:167
DtSignalConnectionManager myConnections
Definition: DtEntityElementProcessor.h:162
boost::unordered_map< DtUniqueID, DtEntityElement * > EntityElementVisualizerMap
Definition: DtEntityElementProcessor.h:154
std::vector< DtEntityFilter * > EntityFilterList
Definition: DtEntityElementProcessor.h:159
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
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
The class that will be used to keep track of echelon hierarchy.
Definition: DtAggregateEchelonManager.h:31
EntityFilterList myEntityFilterList
Definition: DtEntityElementProcessor.h:168
boost::unordered_map< DtUniqueID, DtVrlinkEntityStateListener * > ToBeVisualizedMap
Definition: DtEntityElementProcessor.h:158
#define DL_DLL_IGCONVRLINK
Definition: dllExport.h:26
boost::signal< void(DtVrlinkEntityStateListener &, DtEntityElement *)> signal_elementCreated
Definition: DtEntityElementProcessor.h:108
EntityElementVisualizerMap myEntityElementVisualizers
Definition: DtEntityElementProcessor.h:163
A single entity element.
Definition: DtEntityElement.h:30
DtVisualizerCreationSettings * myVisualTypeVisualizerSettings
Definition: DtEntityElementProcessor.h:169
boost::signal< void(DtVrlinkEntityStateListener &, DtEntityElement *)> signal_elementAboutToBeDestroyed
Definition: DtEntityElementProcessor.h:109
boost::unordered_map< std::string, DtEntityElement * > GlobalIdToEntityElementVisualizerMap
Definition: DtEntityElementProcessor.h:156
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
GlobalIdToEntityElementVisualizerMap myGlobalIdToElementVisualizerMap
Definition: DtEntityElementProcessor.h:164
Contains makVrv::DtVisualizerCreationSettings class.
DtVrlinkConnection & myConnection
Definition: DtEntityElementProcessor.h:161
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Used to filter out entities in discovery conditions.
Definition: DtEntityFilter.h:28
#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:38
This class is a set of entity visualizers, all of the visualizers in this set must support the entity...
Definition: DtEntityVisualizerSet.h:27
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:23
Contains DLL export macros.
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
Template for Color values in [0,1] range.
Definition: DtColorValue.h:18
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 Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)