VR-Forces 4.7 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) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
16 
17 namespace makVrv
18 {
19  class DtObserver;
20  class DtSensorViewOverlay;
21 
26  {
27  public:
28 
29  typedef std::map<DtUniqueID, DtSensorFieldOfViewData> SensorFieldOfViewDataMap;
30 
32  static DtSensorFieldOfViewManager& instance( DtDe& de );
33 
35  virtual ~DtSensorFieldOfViewManager();
36 
38  virtual void addSensorFieldOfView(DtElementID hostEntity,
39  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& initData);
40 
42  virtual void updateSensorFieldOfView(DtElementID hostEntity,
43  DtElementID sensorFieldOfView, const DtSensorFieldOfViewData& data);
44 
46  virtual void getSensorFieldOfViewData(DtElementID hostEntity,
47  DtElementID sensorFieldOfView, DtSensorFieldOfViewData& data) const;
48 
50  virtual void removeSensorFieldOfView(DtElementID hostEntity,
51  DtElementID sensorFieldOfView);
52 
54  virtual void addSensorObserver(const std::string& observerName,
55  DtElementID hostId, DtElementID sensorId);
56 
58  virtual bool hasSensorObserver(DtElementID hostId, DtElementID sensorId);
59 
62  const SensorFieldOfViewDataMap* fieldsOfViewForEntity(DtElementID entity) const;
63 
65 
66  virtual std::string sensorId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
67  virtual void setSensorId(DtElementID hostEntity, DtElementID sensorFieldOfView,
68  const std::string& id);
70 
72 
73  virtual DtVector relativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
74  virtual void setRelativeLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
75  const DtVector& loc);
77 
79 
80  virtual DtTaitBryan relativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
81  virtual void setRelativeOrientation(DtElementID hostEntity, DtElementID sensorFieldOfView,
82  const DtTaitBryan& ori);
84 
86 
87  virtual double radius(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
88  virtual void setRadius(DtElementID hostEntity, DtElementID sensorFieldOfView,
89  double r);
91 
94 
95  virtual double minimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
96  virtual void setMinimumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
97  double angle);
99 
102 
103  virtual double maximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
104  virtual void setMaximumAzimuthAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
105  double angle);
107 
110 
111  virtual double minimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
112  virtual void setMinimumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
113  double angle);
115 
118 
119  virtual double maximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
120  virtual void setMaximumElevationAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
121  double angle);
123 
125 
126  virtual double maximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
127  virtual void setMaximumZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
128  double zoom);
130 
132 
133  virtual double zoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
134  virtual void setZoomLevel(DtElementID hostEntity, DtElementID sensorFieldOfView,
135  double zoom);
137 
140 
141  virtual double xHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
142  virtual void setXHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
143  double angle);
145 
148 
149  virtual double yHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
150  virtual void setYHalfAngle(DtElementID hostEntity, DtElementID sensorFieldOfView,
151  double angle);
153 
155 
156  virtual DtElementID targetId(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
157  virtual void setTargetId(DtElementID hostEntity, DtElementID sensorFieldOfView,
158  DtElementID id);
160 
162 
163  virtual DtVector targetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
164  virtual void setTargetLocation(DtElementID hostEntity, DtElementID sensorFieldOfView,
165  const DtVector& loc);
167 
169 
170  virtual std::string trackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView) const;
171  virtual void setTrackingMode(DtElementID hostEntity, DtElementID sensorFieldOfView,
172  const std::string& mode);
174 
176 
177  virtual void color(DtElementID hostEntity, DtElementID sensorFieldOfView,
178  float& r, float& g, float& b, float& a) const;
179  virtual void setColor(DtElementID hostEntity, DtElementID sensorFieldOfView,
180  float r, float g, float b, float a);
182 
184 
185  virtual DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
186  DtElementID sensorFieldOfView);
187  virtual const DtSensorFieldOfViewData* sensorFieldOfViewData(DtElementID hostEntity,
188  DtElementID sensorFieldOfView) const;
190 
191  protected:
192 
195 
197  virtual void processTrackTarget(DtObserver* observer, DtElementID hostEntity,
198  const DtVector& relativeLocation, DtElementID targetEntity);
199 
201  virtual void processTrackLocation(DtObserver* observer, DtElementID hostEntity,
202  const DtVector& relativeLocation, const DtVector& targetLocation);
203 
205  virtual void processSetOrientation(DtObserver* observer, DtElementID hostEntity,
206  const DtVector& relativeLocation, const DtTaitBryan& relativeOrientation);
207 
210  virtual bool findDisplayWindowAndChannel(const DtObserver* observer,
211  std::string& displayName, std::string& windowName, std::string& channelName) const;
212 
213  virtual void slot_onObjectAdded(const DtVrlinkSensorFieldsOfViewView&);
214  virtual void slot_onObjectUpdated(DtStateView<DtVrlinkSensorFieldsOfView>* fieldsOfView);
215  virtual void slot_onObjectAboutToBeRemoved(const DtVrlinkSensorFieldsOfViewView&);
216  virtual void slot_onUpdate();
217 
218  virtual void update(DtUniqueID hostId, DtUniqueID sensorId, const std::string& observerName);
219 
220  protected:
221 
224 
225  typedef std::pair<DtElementID, DtElementID> HostAndSensorId;
226  typedef std::map<HostAndSensorId, std::string> SensorObserverMap;
227  typedef std::map<std::string, DtSensorViewOverlay*> SensorObserverOverlayMap;
228  typedef std::map<DtElementID, SensorFieldOfViewDataMap> HostSensorFieldOfViewDataMap;
229 
233 
235  };
236 }
237 
238 
239 
240 
241 
242 
243 
244 
245 
246 
247 
248 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)