VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSensorFieldOfViewVisualizer.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 
16 
17 #include <unordered_map>
18 
19 namespace makVrv
20 {
21  class DtEntityStateListener;
22  class DtModelAgent;
23  class DtAttachableUpdaterAgent;
24 
28  : public DtStateVisualizer
29  {
30  public:
38  DtSceneObjectAgent* sceneObject, DtModelSetId modelSet );
39 
43 
46 
49  virtual void createModelAgents();
50 
54  virtual void destroyModelAgents();
55 
58  virtual const DtStateVisualizer::TypeInfo& typeInfo() const;
59 
62  static const DtStateVisualizer::TypeInfo& theTypeInfo();
63 
65  static const DtVisualizerSchema& theSchema();
67 
68  protected:
71  {
73  DtSceneObjectAgent* myFovSceneObject;
74  DtModelAgent* myFovModel;
75  DtAttachableUpdaterAgent* myFovUpdater;
76 
78  myFovConnectionManager( nullptr )
79  , myFovSceneObject( nullptr )
80  , myFovModel( nullptr )
81  , myFovUpdater( nullptr )
82  {
83  };
84  };
85 
88  virtual void setModelDefinitionForAgents();
89 
93  virtual SensorFieldOfViewStruct* findSensorFovStruct( const DtSensorFieldOfViewStateListener* listener );
94 
97 
100  virtual void registerSensorFieldOfView(
102 
108  virtual makVrv::DtSignalConnectionManager* createSignalConnections(
110 
114  virtual void unregisterSensorFieldOfView(
115  const DtSensorFieldOfViewStateListener* listener );
116 
118 
121 
124  virtual void createSensorVisualization( const
126 
129  virtual void createRectPyramidVisualization( const
131 
133 
136 
141  virtual void slot_relativePositionChanged( const
143 
148  virtual void slot_relativeOrientationChanged( const
150 
153  virtual void slot_targetLocationChanged( const
155 
158  virtual void slot_targetObjectChanged( const
160 
163  virtual void slot_targetCleared( const
165 
168  virtual void slot_hostObjectChanged( const
170 
175  virtual void slot_radiusChanged( const
177 
182  virtual void slot_colorChanged( const
184 
188  virtual void slot_geometryChanged( const
190 
192 
195 
199  virtual void updateRectPyramidVisualization(
200  const DtSensorFieldOfViewStateListener* listener,
201  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
202 
206  virtual void updateRectPyramidVisualizationHost(
207  const DtSensorFieldOfViewStateListener* listener,
208  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
209 
213  virtual void updateRectPyramidVisualizationLocation(
214  const DtSensorFieldOfViewStateListener* listener,
215  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
216 
220  virtual void updateRectPyramidVisualizationOrientation(
221  const DtSensorFieldOfViewStateListener* listener,
222  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
223 
227  virtual void updateRectPyramidVisualizationColors(
228  const DtSensorFieldOfViewStateListener* listener,
229  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
230 
234  virtual void updateRectPyramidVisualizationRadius(
235  const DtSensorFieldOfViewStateListener* listener,
236  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
237 
241  virtual void updateRectPyramidVisualizationGeometry(
242  const DtSensorFieldOfViewStateListener* listener,
243  SensorFieldOfViewStruct* sensorFovStruct = nullptr );
244 
246 
248  virtual makVrv::DtModelAgent* createModel( const DtSensorFieldOfViewStateListener* listener );
249 
251  virtual makVrv::DtAttachableUpdaterAgent* createUpdater( const DtSensorFieldOfViewStateListener* listener );
255  virtual void connectToListenerSignals() override;
256  protected:
258  virtual void slot_sensorAdded( DtSensorFieldOfViewStateListener* );
260  virtual void slot_sensorRemoved( DtSensorFieldOfViewStateListener* );
262  virtual void slot_sensorHostChanged( DtSensorFieldOfViewStateListener*);
263 
264  DtFloat64 computeInfiniteSensorRadius();
265 
266  virtual void destroyFovStruct( SensorFieldOfViewStruct& );
267  protected:
269 
270  using SensorListenerToFovStructMap = std::unordered_map< const DtSensorFieldOfViewStateListener*, SensorFieldOfViewStruct>;
271 
273  };
274 
276 }
DtAttachableUpdaterAgent * myFovUpdater
Definition: DtSensorFieldOfViewVisualizer.h:75
std::unordered_map< const DtSensorFieldOfViewStateListener *, SensorFieldOfViewStruct > SensorListenerToFovStructMap
Definition: DtSensorFieldOfViewVisualizer.h:270
Definition: DtStateVisualizer.h:274
DtModelAgent * myFovModel
Definition: DtSensorFieldOfViewVisualizer.h:74
Sensor Field of View state listener.
Definition: DtSensorFieldOfViewStateListener.h:28
DtSceneObjectAgent * myFovSceneObject
Definition: DtSensorFieldOfViewVisualizer.h:73
Protocol independent sensor field of view visualizer.
Definition: DtSensorFieldOfViewVisualizer.h:27
SensorFieldOfViewStruct()
Definition: DtSensorFieldOfViewVisualizer.h:77
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:35
Struct for storing all the objects required to visualize a sensor FOV.
Definition: DtSensorFieldOfViewVisualizer.h:70
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Contains makVrv:DtStateVisualizer class.
DtEntityStateListener * myEntityStateListener
Definition: DtSensorFieldOfViewVisualizer.h:268
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
double DtFloat64
Definition: vrvControlStructTypes.h:36
SensorListenerToFovStructMap mySensorFieldOfViewsMap
Definition: DtSensorFieldOfViewVisualizer.h:272
The DtStateVisualizer is an abstract class. Developers derive from this to create logic that &quot;directs...
Definition: DtStateVisualizer.h:30
Base class to provide boost signal/slot management.
DtSignalConnectionManager * myFovConnectionManager
Definition: DtSensorFieldOfViewVisualizer.h:72
Contains the DtSensorFieldOfViewStateListener class declaration.
DtModelSetId
Definition: DtModelSetEnums.h:19
The DtStateListener is an abstract class. Subclasses implement functionality that will allow data to ...
Definition: DtStateListener.h:26
Definition: DtVisualizerSchema.h:19
Struct to hold metadata about each functional visualizer type This allows users of the factory to get...
Definition: DtStateVisualizer.h:54
DtEntityStateListener.
Definition: DtEntityStateListener.h:137

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)