VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtSensorFieldOfViewManager.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 
15 #include <vrvCore/DtUniqueID.h>
16 
19 
20 namespace makVrv
21 {
22  class DtObserver;
23  class DtSensorViewOverlay;
24  class DtCoordinateSystem;
25 
30  {
31  public:
32 
37  {
38  std::string myDisplayName;
39  std::string myWindowName;
40  std::string myChannelName;
41  DtSensorViewOverlay* myOverlay = 0;
42  };
43 
44  typedef std::map<DtUniqueID, DtSensorFieldOfViewData> SensorFieldOfViewDataMap;
45 
47  static DtSensorFieldOfViewManager& instance( DtDe& de );
48 
50  virtual ~DtSensorFieldOfViewManager();
51 
53  virtual void addSensorFieldOfView(DtElementID hostEntity,
54  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& initData);
55 
57  virtual void updateSensorFieldOfView(DtElementID hostEntity,
58  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& data);
59 
61  virtual void getSensorFieldOfViewData(DtElementID hostEntity,
62  DtElementID sensorFieldOfView, DtSensorFieldOfViewData& data) const;
63 
65  virtual void removeSensorFieldOfView(DtElementID hostEntity,
66  DtElementID sensorFieldOfView);
67 
70  virtual void addSensorObserver(const std::string& observerName,
71  DtElementID hostId, DtElementID sensorId, bool createControls);
72 
74  virtual bool hasSensorObserver(DtElementID hostId, DtElementID sensorId);
75 
79  virtual std::string sensorObserverName(DtElementID hostId, DtElementID sensorId) const;
80 
83  const SensorFieldOfViewDataMap* fieldsOfViewForEntity(DtElementID entity) const;
84 
86 
87  virtual std::string sensorId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
88  virtual void setSensorId(DtElementID hostEntity, DtElementID sensorFieldOfView,
89  const std::string& id);
91 
93 
94  virtual DtVector relativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
95  virtual void setRelativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
96  const DtVector& loc);
98 
100 
101  virtual DtTaitBryan relativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
102  virtual void setRelativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView,
103  const DtTaitBryan& ori);
105 
107 
108  virtual double radius(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
109  virtual void setRadius(DtElementID hostEntity, DtElementID sensorFieldOfView,
110  double r);
112 
115 
116  virtual double minimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
117  virtual void setMinimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
118  double angle);
120 
123 
124  virtual double maximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
125  virtual void setMaximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
126  double angle);
128 
131 
132  virtual double minimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
133  virtual void setMinimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
134  double angle);
136 
139 
140  virtual double maximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
141  virtual void setMaximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
142  double angle);
144 
146 
147  virtual double maximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
148  virtual void setMaximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
149  double zoom);
151 
153 
154  virtual double zoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
155  virtual void setZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
156  double zoom);
158 
161 
162  virtual double xHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
163  virtual void setXHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
164  double angle);
166 
169 
170  virtual double yHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
171  virtual void setYHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
172  double angle);
174 
176 
177  virtual DtElementID targetId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
178  virtual void setTargetId(DtElementID hostEntity, DtElementID sensorFieldOfView,
179  DtElementID id);
181 
183 
184  virtual DtVector targetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
185  virtual void setTargetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
186  const DtVector& loc);
188 
190 
191  virtual std::string trackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
192  virtual void setTrackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView,
193  const std::string& mode);
195 
197 
198  virtual void color(DtElementID hostEntity, DtElementID sensorFieldOfView,
199  float& r, float& g, float& b, float& a) const;
200  virtual void setColor(DtElementID hostEntity, DtElementID sensorFieldOfView,
201  float r, float g, float b, float a);
203 
205 
206  virtual DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
207  DtElementID sensorFieldOfView);
208  virtual const DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
209  DtElementID sensorFieldOfView) const;
211 
213  virtual void removeSensorView(DtUniqueID entId, DtUniqueID sensorId);
214 
216  virtual void removeSensorOverlay(DtUniqueID entId, DtUniqueID sensorId);
217 
218  protected:
219 
222 
224  virtual void processTrackTarget(DtObserver* observer, DtElementID hostEntity,
225  const DtVector& relativeLocation, DtElementID targetEntity);
226 
228  virtual void processTrackLocation(DtObserver* observer, DtElementID hostEntity,
229  const DtVector& relativeLocation, const DtVector& targetLocation);
230 
232  virtual void processSetOrientation(DtObserver* observer, DtElementID hostEntity,
233  const DtVector& relativeLocation, const DtTaitBryan& relativeOrientation);
234 
237  virtual bool findDisplayWindowAndChannel(const DtObserver* observer,
238  std::string& displayName, std::string& windowName, std::string& channelName) const;
239 
240  virtual void slot_onUpdate();
241 
242  virtual void update(DtUniqueID hostId, DtUniqueID sensorId, const std::string& observerName);
243 
245  virtual void destroySensorViewOverlayEntry(DtSensorViewOverlayEntry* overlayEntry);
246 
248  virtual void slot_coordinateSystemChanged();
249 
251  virtual void slot_channelToBeDestroyed(const std::string& displayName,
252  const std::string& winName, const std::string& channelName );
253 
254  protected:
255 
257 
258  typedef std::pair<DtElementID, DtElementID> HostAndSensorId;
259  typedef std::map<HostAndSensorId, std::string> SensorObserverMap;
260  typedef std::map<std::string, DtSensorViewOverlayEntry*> SensorObserverOverlayMap;
261  typedef std::map<DtElementID, SensorFieldOfViewDataMap> HostSensorFieldOfViewDataMap;
262 
266 
268 
270 
273  DtCoordinateSystem* myCoordinateSystem = nullptr;
274  };
275 }
276 
277 
278 
279 
280 
281 
282 
283 
284 
285 
286 
287 
std::map< DtUniqueID, DtSensorFieldOfViewData > SensorFieldOfViewDataMap
Definition: DtSensorFieldOfViewManager.h:44
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSensorViewOverlay is responsible for creating and updating the overlay information on a sensor view...
Definition: DtSensorViewOverlay.h:26
DtDe & myDe
Definition: DtSensorFieldOfViewManager.h:256
SensorObserverOverlayMap mySensorOverlays
Definition: DtSensorFieldOfViewManager.h:265
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
SensorObserverMap mySensorObservers
Definition: DtSensorFieldOfViewManager.h:264
DtSignalConnectionManager myConnections
Definition: DtSensorFieldOfViewManager.h:269
Contains the data defining the current state of a sensor field of view.
Definition: DtSensorFieldOfViewData.h:23
A facade for a DtObserverObject.
Definition: DtObserver.h:38
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::map< HostAndSensorId, std::string > SensorObserverMap
Definition: DtSensorFieldOfViewManager.h:259
std::string myChannelName
Definition: DtSensorFieldOfViewManager.h:40
std::string myDisplayName
Definition: DtSensorFieldOfViewManager.h:38
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
bool myRegisteredForUpdates
Definition: DtSensorFieldOfViewManager.h:267
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
Base class to provide boost signal/slot management.
const char int mode
Definition: ioapi.h:38
Contains makVrv::DtUniqueID type.
std::pair< DtElementID, DtElementID > HostAndSensorId
Definition: DtSensorFieldOfViewManager.h:258
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::string myWindowName
Definition: DtSensorFieldOfViewManager.h:39
std::map< DtElementID, SensorFieldOfViewDataMap > HostSensorFieldOfViewDataMap
Definition: DtSensorFieldOfViewManager.h:261
The sensor field of view manager. Keeps track of sensor field of view states and any observers associ...
Definition: DtSensorFieldOfViewManager.h:29
std::map< std::string, DtSensorViewOverlayEntry * > SensorObserverOverlayMap
Definition: DtSensorFieldOfViewManager.h:260
A structure used to associate a DtSensorViewOverlay object with the information that was used to init...
Definition: DtSensorFieldOfViewManager.h:36
Contains DLL export macros.
HostSensorFieldOfViewDataMap mySensorFieldOfViewData
Definition: DtSensorFieldOfViewManager.h:263

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)