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) 2024 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 #include <array>
26 
27 namespace makVrv
28 {
29  class DtSceneObjectAgent;
30  class DtTacticalGraphicStateListener;
31  class DtEnvironmentalKinematicState;
32 
36  {
37  public:
41  {
43  DtSceneObjectAgent* sceneObject;
45 
47  , sceneObject( nullptr )
48  , visualizerSet( nullptr )
49  {
50  }
51 
52  DtTacticalGraphicModelSetData( DtModelSetId modelSet ) : modelSet( modelSet )
53  , sceneObject( nullptr )
54  , visualizerSet( nullptr )
55  {
56  }
57 
60 
63  };
64 
66  using ModelSetDataArray = std::array<DtTacticalGraphicModelSetData, MAX_MODEL_SETS>;
67 
70 
72  virtual ~DtTacticalGraphicElement();
73 
75  DtTacticalGraphicElement() = delete;
76 
79 
81  DtTacticalGraphicElement& operator=( const DtTacticalGraphicElement& ) = delete;
82  public:
90  virtual void visualize( const DtSharedModelSetSettings::ModelSetVisualizedMap& sets ) override;
91 
99  virtual void setModelSetEnabled( DtModelSetId modelSet, bool enabled ) override;
100 
101  virtual void createVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
102  virtual void destroyVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
103 
106  template <typename VisualizerClass>
107  void findVisualizers( std::vector<VisualizerClass*>& visualizers );
108 
110  template <typename VisualizerClass>
111  void findVisualizersByDynamicCast( std::vector<VisualizerClass*>& visualizers );
112 
114  virtual void setObjectIsVisible( bool vis );
115 
117  virtual const ModelSetDataArray& modelSetDataArray() const;
118 
120 
121  virtual const DtTacticalGraphicModelSetData* findModelSetData( DtModelSetId modelSet ) const;
122  virtual DtTacticalGraphicModelSetData* findModelSetData( DtModelSetId modelSet );
123  virtual DtSceneObjectAgent* findSceneObjectForModelSet( DtModelSetId modelSet ) const ;
124  virtual DtTacticalGraphicVisualizerSet* findVisualizerSetForModelSet( DtModelSetId modelSet ) const ;
126 
128  virtual DtEnvironmentalKinematicState* findKinematicState() const;
129 
131  virtual DtTacticalGraphicStateListener& tacticalGraphicStateListener();
132 
134  virtual const DtElementEntry::ElementType elementType() const override;
135  static const DtElementEntry::ElementType theElementType();
136 
139  virtual void slot_forceChanged( DtForceType force );
140 
143  virtual DtEnvironmentalKinematicState* createKinState();
144 
148  virtual void setPickable( bool pickable );
150  virtual void setPickable( bool pickable, DtModelSetId modelSet );
152 
154 
155  virtual std::vector<DtUniqueID> sceneObjectUniqueIds();
159  virtual DtUniqueID sceneObjectIdForModelSet( DtModelSetId modelSet );
161  protected:
163  virtual void processElementParameters();
164 
167  void setKindAndCategory( int kind, int category );
168 
170  virtual void reportKindAndCategory();
171 
173  virtual void slot_visibilityChanged(bool vis);
174 
175  protected:
180 
181  std::pair<int, int> myKindCategory;
182  };
183 
184  template<typename VisualizerClass>
185  inline void DtTacticalGraphicElement::findVisualizers( std::vector<VisualizerClass*>& visualizers )
186  {
187  for( auto& val : myModelSetDataArray )
188  {
189  if( val.visualizerSet )
190  {
191  val.visualizerSet->findVisualizers( visualizers );
192  }
193  }
194  }
195 
196  template<typename VisualizerClass>
197  inline void DtTacticalGraphicElement::findVisualizersByDynamicCast( std::vector<VisualizerClass*>& visualizers )
198  {
199  for( auto& val : myModelSetDataArray )
200  {
201  if( val.visualizerSet )
202  {
203  val.visualizerSet->findVisualizersByDynamicCast( visualizers );
204  }
205  }
206  }
207 
209 }
210 
DtEnvironmentalKinematicState * myKinematicState
Definition: DtTacticalGraphicElement.h:177
DtModelSetId modelSet
Definition: DtTacticalGraphicElement.h:42
DtTacticalGraphicModelSetData(DtModelSetId modelSet)
Definition: DtTacticalGraphicElement.h:52
The DtTacticalGraphicStateListener is a class that deals with basic TacticalGraphic process code (suc...
Definition: DtTacticalGraphicStateListener.h:27
ModelSetDataArray myModelSetDataArray
Definition: DtTacticalGraphicElement.h:178
std::pair< int, int > myKindCategory
Definition: DtTacticalGraphicElement.h:181
DtSignalConnectionManager myConnections
Definition: DtTacticalGraphicElement.h:179
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:46
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:185
Contains makVrv::DtElement class.
ElementType
Definition: DtElementEntry.h:26
DtSceneObjectAgent * sceneObject
Definition: DtTacticalGraphicElement.h:43
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:35
std::array< DtTacticalGraphicModelSetData, MAX_MODEL_SETS > ModelSetDataArray
MAX_MODEL_SETS is defined in DtModelSetEnums.h.
Definition: DtTacticalGraphicElement.h:66
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:197
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:44
Struct contains the scene object, the visualizer set, and the kin state object.
Definition: DtTacticalGraphicElement.h:40
Contains makVrv::DtUniqueID type.
DtTacticalGraphicStateListener & myListener
Definition: DtTacticalGraphicElement.h:176
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 Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)