VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLaserDesignatorElement.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/DtElement.h>
14 
16 
17 #include <array>
18 
19 namespace makVrv
20 {
21  class DtSceneObjectAgent;
22  class DtLaserDesignatorVisualizerSet;
23  class DtLaserDesignatorStateListener;
24 
28  {
29  public:
32  {
34  DtSceneObjectAgent* sceneObject;
36 
38  , sceneObject( nullptr )
39  , visualizerSet( nullptr )
40  {
41  }
42 
45 
48  };
49 
51  using ModelSetDataArray = std::array<DtLaserDesignatorModelSetData, MAX_MODEL_SETS>;
52 
55 
57  virtual ~DtLaserDesignatorElement();
58 
60  DtLaserDesignatorElement() = delete;
61 
64 
66  DtLaserDesignatorElement& operator=( const DtLaserDesignatorElement& ) = delete;
67 
68  public:
70  virtual const DtElementEntry::ElementType elementType() const override;
71  static const DtElementEntry::ElementType theElementType();
72 
80  virtual void visualize( const DtSharedModelSetSettings::ModelSetVisualizedMap& sets );
81 
87  virtual void setModelSetEnabled( DtModelSetId modelSet, bool enabled ) override;
88 
89  virtual void setObjectIsVisible( bool visible );
90  virtual bool objectIsVisible() const;
91 
93  virtual const ModelSetDataArray& modelSetDataArray() const;
94 
96  DtLaserDesignatorVisualizerSet* findVisualizerSetForModelSet( DtModelSetId modelSet ) const;
97 
100  void createVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
101 
104  void destroyVisualizersByModelSetAndType( DtModelSetId modelSet, int visualType );
105 
106  template <typename VisualizerClass>
107  void findVisualizers( std::vector<VisualizerClass*>& visualizers );
108 
109  protected:
113  virtual void slot_visibilityChanged( bool vis );
114  virtual void slot_showLaserDesignatorsChanged( bool val );
116  virtual void slot_showLaserDesignatorCodesChanged( bool val );
117  protected:
120 
122  };
123 
125 
126  template<typename VisualizerClass>
127  void DtLaserDesignatorElement::findVisualizers( std::vector<VisualizerClass*>& visualizers )
128  {
129  for( auto& structVal : myModelSetDataArray )
130  {
131  if( structVal.visualizerSet )
132  {
133  structVal.visualizerSet->findVisualizers( visualizers );
134  }
135  }
136  }
137 
138 }
std::array< DtLaserDesignatorModelSetData, MAX_MODEL_SETS > ModelSetDataArray
MAX_MODEL_SETS is defined in DtModelSetEnums.h.
Definition: DtLaserDesignatorElement.h:51
vrvCore LaserDesignator Element
Definition: DtLaserDesignatorElement.h:27
DtLaserDesignatorStateListener * myLaserDesignatorListener
Definition: DtLaserDesignatorElement.h:118
Laser Designator State Listener.
Definition: DtLaserDesignatorStateListener.h:24
DtSceneObjectAgent * sceneObject
Definition: DtLaserDesignatorElement.h:34
DtLaserDesignatorModelSetData()
Definition: DtLaserDesignatorElement.h:37
DtSignalConnectionManager myConnections
Definition: DtLaserDesignatorElement.h:119
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
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Struct contains the scene object, and the visualizer set,.
Definition: DtLaserDesignatorElement.h:31
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtElement class.
void findVisualizers(std::vector< VisualizerClass * > &visualizers)
Definition: DtLaserDesignatorElement.h:127
ElementType
Definition: DtElementEntry.h:26
Base class to provide boost signal/slot management.
std::map< DtModelSetId, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:28
Visualizer set for laser designators. Provides the visualize(..) method that looks up the appropriate...
Definition: DtLaserDesignatorVisualizerSet.h:26
DtLaserDesignatorVisualizerSet * visualizerSet
Definition: DtLaserDesignatorElement.h:35
DtModelSetId
Definition: DtModelSetEnums.h:19
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
ModelSetDataArray myModelSetDataArray
Definition: DtLaserDesignatorElement.h:121
DtModelSetId modelSet
Definition: DtLaserDesignatorElement.h:33
Contains various enum classes relating to model sets.

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)