VR-Forces 4.8 Class Documentation
 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) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
16 #include <vrvCore/DtUniqueID.h>
17 
18 namespace makVrv
19 {
20  class DtObserver;
21  class DtSensorViewOverlay;
22 
27  {
28  public:
29 
30  typedef std::map<DtUniqueID, DtSensorFieldOfViewData> SensorFieldOfViewDataMap;
31 
33  static DtSensorFieldOfViewManager& instance( DtDe& de );
34 
36  virtual ~DtSensorFieldOfViewManager();
37 
39  virtual void addSensorFieldOfView(DtElementID hostEntity,
40  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& initData);
41 
43  virtual void updateSensorFieldOfView(DtElementID hostEntity,
44  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& data);
45 
47  virtual void getSensorFieldOfViewData(DtElementID hostEntity,
48  DtElementID sensorFieldOfView, DtSensorFieldOfViewData& data) const;
49 
51  virtual void removeSensorFieldOfView(DtElementID hostEntity,
52  DtElementID sensorFieldOfView);
53 
56  virtual void addSensorObserver(const std::string& observerName,
57  DtElementID hostId, DtElementID sensorId, bool createControls);
58 
60  virtual bool hasSensorObserver(DtElementID hostId, DtElementID sensorId);
61 
65  virtual std::string sensorObserverName(DtElementID hostId, DtElementID sensorId) const;
66 
69  const SensorFieldOfViewDataMap* fieldsOfViewForEntity(DtElementID entity) const;
70 
72 
73  virtual std::string sensorId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
74  virtual void setSensorId(DtElementID hostEntity, DtElementID sensorFieldOfView,
75  const std::string& id);
77 
79 
80  virtual DtVector relativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
81  virtual void setRelativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
82  const DtVector& loc);
84 
86 
87  virtual DtTaitBryan relativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
88  virtual void setRelativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView,
89  const DtTaitBryan& ori);
91 
93 
94  virtual double radius(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
95  virtual void setRadius(DtElementID hostEntity, DtElementID sensorFieldOfView,
96  double r);
98 
101 
102  virtual double minimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
103  virtual void setMinimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
104  double angle);
106 
109 
110  virtual double maximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
111  virtual void setMaximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
112  double angle);
114 
117 
118  virtual double minimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
119  virtual void setMinimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
120  double angle);
122 
125 
126  virtual double maximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
127  virtual void setMaximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
128  double angle);
130 
132 
133  virtual double maximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
134  virtual void setMaximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
135  double zoom);
137 
139 
140  virtual double zoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
141  virtual void setZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
142  double zoom);
144 
147 
148  virtual double xHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
149  virtual void setXHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
150  double angle);
152 
155 
156  virtual double yHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
157  virtual void setYHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
158  double angle);
160 
162 
163  virtual DtElementID targetId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
164  virtual void setTargetId(DtElementID hostEntity, DtElementID sensorFieldOfView,
165  DtElementID id);
167 
169 
170  virtual DtVector targetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
171  virtual void setTargetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
172  const DtVector& loc);
174 
176 
177  virtual std::string trackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
178  virtual void setTrackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView,
179  const std::string& mode);
181 
183 
184  virtual void color(DtElementID hostEntity, DtElementID sensorFieldOfView,
185  float& r, float& g, float& b, float& a) const;
186  virtual void setColor(DtElementID hostEntity, DtElementID sensorFieldOfView,
187  float r, float g, float b, float a);
189 
191 
192  virtual DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
193  DtElementID sensorFieldOfView);
194  virtual const DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
195  DtElementID sensorFieldOfView) const;
197 
199  virtual void removeSensorView(DtUniqueID entId, DtUniqueID sensorId);
200 
201  protected:
202 
205 
207  virtual void processTrackTarget(DtObserver* observer, DtElementID hostEntity,
208  const DtVector& relativeLocation, DtElementID targetEntity);
209 
211  virtual void processTrackLocation(DtObserver* observer, DtElementID hostEntity,
212  const DtVector& relativeLocation, const DtVector& targetLocation);
213 
215  virtual void processSetOrientation(DtObserver* observer, DtElementID hostEntity,
216  const DtVector& relativeLocation, const DtTaitBryan& relativeOrientation);
217 
220  virtual bool findDisplayWindowAndChannel(const DtObserver* observer,
221  std::string& displayName, std::string& windowName, std::string& channelName) const;
222 
223 
224  virtual void slot_onObjectAdded(const DtVrlinkSensorFieldsOfViewView&);
225  virtual void slot_onObjectUpdated(DtStateView<DtVrlinkSensorFieldsOfView>* fieldsOfView);
226  virtual void slot_onObjectAboutToBeRemoved(const DtVrlinkSensorFieldsOfViewView&);
227  virtual void slot_onUpdate();
228 
229  virtual void update(DtUniqueID hostId, DtUniqueID sensorId, const std::string& observerName);
230 
231  protected:
232 
235 
236  typedef std::pair<DtElementID, DtElementID> HostAndSensorId;
237  typedef std::map<HostAndSensorId, std::string> SensorObserverMap;
238  typedef std::map<std::string, DtSensorViewOverlay*> SensorObserverOverlayMap;
239  typedef std::map<DtElementID, SensorFieldOfViewDataMap> HostSensorFieldOfViewDataMap;
240 
244 
246  };
247 }
248 
249 
250 
251 
252 
253 
254 
255 
256 
257 
258 
259 
std::map< DtUniqueID, DtSensorFieldOfViewData > SensorFieldOfViewDataMap
Definition: DtSensorFieldOfViewManager.h:30
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtVrlinkSensorFieldsOfViewStateViewCollection * mySensorFieldsOfViewCollection
Definition: DtSensorFieldOfViewManager.h:234
DtDe & myDe
Definition: DtSensorFieldOfViewManager.h:233
SensorObserverOverlayMap mySensorOverlays
Definition: DtSensorFieldOfViewManager.h:243
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
SensorObserverMap mySensorObservers
Definition: DtSensorFieldOfViewManager.h:242
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:37
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
std::map< HostAndSensorId, std::string > SensorObserverMap
Definition: DtSensorFieldOfViewManager.h:237
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
A DtStateView is a the interface to simulation state information.
Definition: DtStateView.h:52
A DtStateViewCollection is a collection of DtStateViews of a specific state.
Definition: DtStateViewCollection.h:27
bool myRegisteredForUpdates
Definition: DtSensorFieldOfViewManager.h:245
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
const char int mode
Definition: ioapi.h:38
Contains makVrv::DtUniqueID type.
std::pair< DtElementID, DtElementID > HostAndSensorId
Definition: DtSensorFieldOfViewManager.h:236
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::map< DtElementID, SensorFieldOfViewDataMap > HostSensorFieldOfViewDataMap
Definition: DtSensorFieldOfViewManager.h:239
The sensor field of view manager.
Definition: DtSensorFieldOfViewManager.h:26
std::map< std::string, DtSensorViewOverlay * > SensorObserverOverlayMap
Definition: DtSensorFieldOfViewManager.h:238
Contains DLL export macros.
HostSensorFieldOfViewDataMap mySensorFieldOfViewData
Definition: DtSensorFieldOfViewManager.h:241

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)