VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtTacticalGraphicElement.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 
14 #include <vrvCore/DtElement.h>
15 
16 #include <vrvCore/DtUniqueID.h>
18 
22 
24 
25 namespace makVrv
26 {
27  class DtSceneObjectAgent;
28  class DtTacticalGraphicStateListener;
29  class DtEnvironmentalKinematicState;
30 
34  {
35  public:
39  {
41  DtSceneObjectAgent* sceneObject;
43 
45  , sceneObject( nullptr )
46  , visualizerSet( nullptr )
47  {
48  }
49 
50  DtTacticalGraphicModelSetData( DtModelSetId modelSet ) : modelSet( modelSet )
51  , sceneObject( nullptr )
52  , visualizerSet( nullptr )
53  {
54  }
55 
58 
61  };
62 
64  using ModelSetDataArray = std::array<DtTacticalGraphicModelSetData, MAX_MODEL_SETS>;
65 
68 
70  virtual ~DtTacticalGraphicElement();
71 
73  DtTacticalGraphicElement() = delete;
74 
77 
79  DtTacticalGraphicElement& operator=( const DtTacticalGraphicElement& ) = delete;
80  public:
88  virtual void visualize( const DtSharedModelSetSettings::ModelSetVisualizedMap& sets ) override;
89 
97  virtual void setModelSetEnabled( DtModelSetId modelSet, bool enabled ) override;
98 
99  virtual void createVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
100  virtual void destroyVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
101 
104  template <typename VisualizerClass>
105  void findVisualizers( std::vector<VisualizerClass*>& visualizers );
106 
108  template <typename VisualizerClass>
109  void findVisualizersByDynamicCast( std::vector<VisualizerClass*>& visualizers );
110 
112  virtual void setObjectIsVisible( bool vis );
113 
115  virtual const ModelSetDataArray& modelSetDataArray() const;
116 
118 
119  virtual const DtTacticalGraphicModelSetData* findModelSetData( DtModelSetId modelSet ) const;
120  virtual DtTacticalGraphicModelSetData* findModelSetData( DtModelSetId modelSet );
121  virtual DtSceneObjectAgent* findSceneObjectForModelSet( DtModelSetId modelSet ) const ;
122  virtual DtTacticalGraphicVisualizerSet* findVisualizerSetForModelSet( DtModelSetId modelSet ) const ;
124 
126  virtual DtEnvironmentalKinematicState* findKinematicState() const;
127 
129  virtual DtTacticalGraphicStateListener& tacticalGraphicStateListener();
130 
132  virtual const DtElementEntry::ElementType elementType() const override;
133  static const DtElementEntry::ElementType theElementType();
134 
137  virtual void slot_forceChanged( DtForceType force );
138 
141  virtual DtEnvironmentalKinematicState* createKinState();
142 
146  virtual void setPickable( bool pickable );
148  virtual void setPickable( bool pickable, DtModelSetId modelSet );
150 
152 
153  virtual std::vector<DtUniqueID> sceneObjectUniqueIds();
157  virtual DtUniqueID sceneObjectIdForModelSet( DtModelSetId modelSet );
159  protected:
161  virtual void processElementParameters();
162 
165  void setKindAndCategory( int kind, int category );
166 
168  virtual void reportKindAndCategory();
169 
171  virtual void slot_visibilityChanged(bool vis);
172 
173  protected:
178 
179  std::pair<int, int> myKindCategory;
180  };
181 
182  template<typename VisualizerClass>
183  inline void DtTacticalGraphicElement::findVisualizers( std::vector<VisualizerClass*>& visualizers )
184  {
185  for( auto& val : myModelSetDataArray )
186  {
187  if( val.visualizerSet )
188  {
189  val.visualizerSet->findVisualizers( visualizers );
190  }
191  }
192  }
193 
194  template<typename VisualizerClass>
195  inline void DtTacticalGraphicElement::findVisualizersByDynamicCast( std::vector<VisualizerClass*>& visualizers )
196  {
197  for( auto& val : myModelSetDataArray )
198  {
199  if( val.visualizerSet )
200  {
201  val.visualizerSet->findVisualizersByDynamicCast( visualizers );
202  }
203  }
204  }
205 
207 }
208 
DtEnvironmentalKinematicState * myKinematicState
Definition: DtTacticalGraphicElement.h:175
DtModelSetId modelSet
Definition: DtTacticalGraphicElement.h:40
DtTacticalGraphicModelSetData(DtModelSetId modelSet)
Definition: DtTacticalGraphicElement.h:50
The DtTacticalGraphicStateListener is a class that deals with basic TacticalGraphic process code (suc...
Definition: DtTacticalGraphicStateListener.h:27
ModelSetDataArray myModelSetDataArray
Definition: DtTacticalGraphicElement.h:176
std::pair< int, int > myKindCategory
Definition: DtTacticalGraphicElement.h:179
DtSignalConnectionManager myConnections
Definition: DtTacticalGraphicElement.h:177
Definition: DtElement.h:277
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:44
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
DtTacticalGraphicModelSetData()
Definition: DtTacticalGraphicElement.h:44
DtEnvironmentalKinematicState Controls kinematic state of a scene object. This class has no accessors...
Definition: DtEnvironmentalKinematicState.h:34
Contains the DtTacticalGraphicVisualizerSet class declaration.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
void findVisualizers(std::vector< VisualizerClass * > &visualizers)
Find all visualizers Note this is for all model sets.
Definition: DtTacticalGraphicElement.h:183
Contains makVrv::DtElement class.
ElementType
Definition: DtElementEntry.h:26
DtSceneObjectAgent * sceneObject
Definition: DtTacticalGraphicElement.h:41
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains makVrv:DtEnvironmentalStateListener class.
A single tactical graphic element. A tactical graphic element may be visualized using multiple visual...
Definition: DtTacticalGraphicElement.h:33
std::array< DtTacticalGraphicModelSetData, MAX_MODEL_SETS > ModelSetDataArray
MAX_MODEL_SETS is defined in DtModelSetEnums.h.
Definition: DtTacticalGraphicElement.h:64
Base class to provide boost signal/slot management.
void findVisualizersByDynamicCast(std::vector< VisualizerClass * > &visualizers)
Find all visualizers in all model sets if they satisfy the dynamic_cast to the VizualizerClass.
Definition: DtTacticalGraphicElement.h:195
std::map< DtModelSetId, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:28
A visualizer is created for each entity state listener which it will drive it.
Definition: DtTacticalGraphicVisualizerSet.h:27
DtTacticalGraphicVisualizerSet * visualizerSet
Definition: DtTacticalGraphicElement.h:42
Struct contains the scene object, the visualizer set, and the kin state object.
Definition: DtTacticalGraphicElement.h:38
Contains makVrv::DtUniqueID type.
DtTacticalGraphicStateListener & myListener
Definition: DtTacticalGraphicElement.h:174
DtModelSetId
Definition: DtModelSetEnums.h:19
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
Contains various enum classes relating to model sets.
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)