VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
radarCoverageManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
17 #include <vrfutil/rwUUID.h>
19 
20 #include <vrvCore/DtUniqueID.h>
21 #include <vrvCore/DtEntityState.h>
26 #include <vrvUtil/event_signal.h>
27 
28 namespace makVrv
29 {
30  class DtDe;
31  class DtRecordSettingsBackupInterface;
32  class DtSimObjectEntry;
33  class DtIntervisibilityElement;
34 }
35 
36 class DtUUID;
37 class DtSimMessage;
39 
40 namespace makVrf
41 {
42  class DtVrfBackendState;
43  class DtIntervisibilitySensorFanStateListener;
44  class DtIntervisibilitySensorFanVisualizer;
45 
47  {
48  public:
49  typedef std::map<double, DtVrfExtendedIntervisibilitySettingsData::Color> ColorMap;
50 
52  virtual ~DtRadarCoverageManager();
53 
55  static DtRadarCoverageManager& instance(makVrv::DtDe& de);
56 
57  public:
59  virtual void startMonitoring(const DtUUID&);
60 
63  virtual bool stopMonitoring(const DtUUID&, bool signal = true, bool beingRemoved = false);
64 
66  bool monitoring(const DtUUID& uuid) const
67  {
68  return (myMonitoring.find(uuid) != myMonitoring.end());
69  }
70 
72  virtual void loadDefaults(bool fromFactory = false);
73 
75  virtual void saveAsDefaults();
76 
78  {
79  return mySettingsBackup;
80  }
81 
83  {
84  return mySettingsBackup;
85  }
86 
88  void exportSettings(const std::string& fileName);
89 
91  void importSettings(const std::string& fileName);
92 
93  void setAutoSave(bool b);
94  bool autoSave() const;
95 
96  virtual void getRecord(DtRadarCoverageSettingsRecord& rec) const;
97  virtual void setFromRecord(const DtRadarCoverageSettingsRecord& rec);
98 
101  virtual void getSplitRecord(std::vector<DtRadarCoverageSettingsRecord>& rec,
102  std::vector<std::string>& fileNames) {};
103 
107  DtRadarCoverageSettingsRecord& combinedRec) {};
108 
110  virtual void setAlpha(double d);
111  virtual double alpha() const;
112 
114  virtual void setWaitingForServerColor(unsigned int);
115  virtual unsigned int waitingForServerColor() const;
116  virtual void waitingForServerColorOSG(float& r, float& g, float& b, float& a) const;
117 
120  virtual void setAltitudeMSL(bool);
121  virtual bool altitudeMSL() const;
122 
124  virtual void setRadarCoverageAltitudeMap(const ColorMap&);
125  virtual const ColorMap& radarCoverageAltitudeMap() const;
126 
128  virtual void addRadarCoverageAltitude(double, unsigned int);
129 
131  virtual bool removeRadarCoverageAltitude(double);
132 
134  virtual void setRadarCoverageAltitudeMap(const DtRadarCoverageAltitudeSettings::AltitudeMap&);
135 
138  virtual void setKeyBackgroundColor(unsigned int);
139  virtual unsigned int keyBackgroundColor() const;
140  virtual void keyBackgroundColorOSG(float& r, float& g, float& b, float& a) const;
142 
145  virtual void setKeyFontColor(unsigned int);
146  virtual unsigned int keyFontColor() const;
147  virtual void keyFontColorOSG(float& r, float& g, float& b, float& a) const;
149 
151  virtual void setShowLabels(bool);
152  virtual bool showLabels() const;
153 
155  virtual bool hasRadarCoverage(const makVrv::DtSelectionManager::IdSet&);
156  virtual bool hasRadarCoverage(makVrv::DtUniqueID);
157 
159  virtual bool isMonitoring() const;
160 
162  virtual bool isMonitoring(const DtUUID&) const;
163 
164  boost::signals2::signal<void (bool)> signal_altitudeMSLChanged;
165  boost::signals2::signal<void (float r, float g, float b, float a)> signal_keyBackgroundColorChanged;
166  boost::signals2::signal<void (float r, float g, float b, float a)> signal_keyFontColorChanged;
167  boost::signals2::signal<void (const ColorMap&)> signal_radarCoverageAltitudesChanged;
168  boost::signals2::signal<void (const DtUUID&)> signal_radarCoverageMonitored;
169  boost::signals2::signal<void (const DtUUID&)> signal_radarCoverageStoppedMonitoring;
170  boost::signals2::signal<void (double)> signal_alphaChanged;
171  boost::signals2::signal<void (float r, float g, float b, float a)> signal_waitingColorChanged;
172 
173  protected:
174  virtual void completeSetup();
175  virtual void slot_simObjectEntryAboutToBeRemoved(makVrv::DtSimObjectEntry& entry);
176  virtual void slot_settingReceived(const std::string& s, const DtVrfBackendState* state);
177  virtual void processRadarCoverageAltitudeSettings(const DtRadarCoverageAltitudeSettings&);
178  virtual void slot_radarCoverageEnabled(const DtUUID&, int);
179  virtual void slot_setupRadarCoverage();
180  virtual void slot_intervisibilityElementAboutToBeDestroyed(makVrv::DtIntervisibilityElement*);
181 
182  virtual void processRadarCoverageData(DtSimMessage* msg);
183  virtual void processRadarCoverage(const DtIfRadarCoverageInformationResponse& s);
184 
185  struct RadarCoverageVisual;
186 
190  virtual bool createRadarCoverageVisuals(const DtIfRadarCoverageInformationResponse&);
191 
192  virtual void processWaitingVisuals();
193 
195 
196  protected:
198 
199  typedef std::map<DtUUID, int> MonitoringMap;
201 
202  typedef std::map<makVrv::DtUniqueID, DtUUID> MonitoringByIdMap;
204 
208 
210 
211  typedef std::map<DtUUID, std::map<bool, int> > RequestIds;
213 
215  {
218  };
219 
220  typedef std::map<DtString, RadarCoverageVisual> RadarCoverageVisuals;
221  typedef std::map<DtUUID, RadarCoverageVisuals> RadarCoverageVisualsMap;
222 
224 
226  typedef std::map<bool, DtIfRadarCoverageInformationResponse*> WaitingForVisuals;
227  typedef std::map<DtUUID, WaitingForVisuals> WaitingForVisualsMap;
229 
230  boost::signals2::connection myWaitingConnection;
231 
232  typedef std::map<DtUUID, std::map<bool, boost::signals2::connection> > UpdateConnections;
234 
235  std::set<int> myPendingRequestIds;
236  };
237 
241  {
242  public:
243 
248 
252 
256  static DtSharedRadarCoverageSettingsSignaler* findInstance(
258 
261 
265 
266  protected:
268 
269  private:
272  };
273 
277  {
278  public:
279 
285 
289  static std::string className();
290 
293 
294  virtual void getRecord(DtRadarCoverageSettingsRecord& rec) const;
295  virtual void setFromRecord(const DtRadarCoverageSettingsRecord& rec);
296 
298  virtual void setAlpha(double d);
299  virtual double alpha() const;
300 
302  virtual void setWaitingForServerColor(unsigned int);
303  virtual unsigned int waitingForServerColor() const;
304  virtual void waitingForServerColorOSG(float& r, float& g, float& b, float& a) const;
305 
308  virtual void setKeyBackgroundColor(unsigned int);
309  virtual unsigned int keyBackgroundColor() const;
310  virtual void keyBackgroundColorOSG(float& r, float& g, float& b, float& a) const;
312 
314  virtual void setShowLabels(bool);
315  virtual bool showLabels() const;
316 
319  virtual void setKeyFontColor(unsigned int);
320  virtual unsigned int keyFontColor() const;
321  virtual void keyFontColorOSG(float& r, float& g, float& b, float& a) const;
323 
324  protected:
325 
328 
329  protected:
331  };
332 }
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Definition: vrfBackendState.h:69
std::set< int > myPendingRequestIds
Definition: radarCoverageManager.h:235
std::map< makVrv::DtUniqueID, DtUUID > MonitoringByIdMap
Definition: radarCoverageManager.h:202
RequestIds myRequestIds
Definition: radarCoverageManager.h:212
a read settings lock on a setting object. The object can only get read access aka const functions...
Definition: DtReadSettingsLock.h:48
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
makVrv::DtSignalConnectionManager myConnections
Definition: radarCoverageManager.h:205
The DtIntervisibilityElement class implements the common behavior of shape elements that are added to...
Definition: DtIntervisibilityElement.h:34
DtIntervisibilitySensorFanStateListener * listener
Definition: radarCoverageManager.h:216
Interface content for containing the responses to an radar coverage requests.
Definition: ifRadarCoverageInformationResponse.h:18
Definition: radarCoverageManager.h:214
WaitingForVisualsMap myWaitingForVisualsMap
Definition: radarCoverageManager.h:228
boost::signals2::signal< void(const DtUUID &)> signal_radarCoverageMonitored
Definition: radarCoverageManager.h:168
Contains makVrv:DtSelectionManager class.
Contains the DtUUID class declaration.
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
boost::signals2::signal< void(bool)> signal_altitudeMSLChanged
Definition: radarCoverageManager.h:164
makVrv::DtRecordSettingsBackupInterface * mySettingsBackup
Definition: radarCoverageManager.h:207
std::map< DtUUID, std::map< bool, int > > RequestIds
Definition: radarCoverageManager.h:211
Contains makVrv::event_signal class.
The base class for all shared settings. Actual settings class should have the following members/decla...
Definition: DtSharedSettings.h:45
Definition: radarCoverageAltitudeSettings.h:35
std::map< DtUUID, WaitingForVisuals > WaitingForVisualsMap
Definition: radarCoverageManager.h:227
The event queue interface is a cross thread event queue used to emit event_signal across thread bound...
Definition: DtEventQueueInterface.h:26
Definition: radarCoverageSettingsRecord.h:25
std::map< DtUUID, int > MonitoringMap
Definition: radarCoverageManager.h:199
boost::signals2::signal< void(double)> signal_alphaChanged
Definition: radarCoverageManager.h:170
bool monitoring(const DtUUID &uuid) const
Returns true if monitoring item.
Definition: radarCoverageManager.h:66
virtual void getSplitRecord(std::vector< DtRadarCoverageSettingsRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented.
Definition: radarCoverageManager.h:101
boost::signals2::signal< void(float r, float g, float b, float a)> signal_keyBackgroundColorChanged
Definition: radarCoverageManager.h:165
Contains makVrv::DtVirtualBaseClass class.
makVrv::DtDe & myDe
Definition: radarCoverageManager.h:197
A DtSimObjectEntry is an entry for a persistent simulation object like an entity. ...
Definition: DtSimObjectEntry.h:22
std::map< DtString, RadarCoverageVisual > RadarCoverageVisuals
Definition: radarCoverageManager.h:220
makVrv::event_signal< void(double)> signal_showLabelsChanged
Definition: radarCoverageManager.h:263
File: simMsg.h.
Definition: simMessage.h:35
boost::signals2::signal< void(const ColorMap &)> signal_radarCoverageAltitudesChanged
Definition: radarCoverageManager.h:167
Contains the DtSharedSettings class declaration.
std::map< bool, DtIfRadarCoverageInformationResponse * > WaitingForVisuals
The first bool is 2D or 3D data.
Definition: radarCoverageManager.h:226
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Contains makVrv::DtVrlinkSimulatedEntityState class.
boost::signals2::connection myWaitingConnection
Definition: radarCoverageManager.h:230
a write settings lock on a setting object. The object can be read and modified, but no other threads ...
Definition: DtWriteSettingsLock.h:47
RadarCoverageVisualsMap myRadarCoverageVisualsMap
Definition: radarCoverageManager.h:223
The DtIntervisibilitySensorFanStateListener will contain information about intervisibility objects an...
Definition: intervisibilitySensorFanStateListener.h:19
virtual void addRecords(DtRadarCoverageSettingsRecord &recs, DtRadarCoverageSettingsRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented.
Definition: radarCoverageManager.h:106
std::map< DtUUID, RadarCoverageVisuals > RadarCoverageVisualsMap
Definition: radarCoverageManager.h:221
Base class to provide boost signal/slot management.
std::map< double, unsigned int > AltitudeMap
Definition: radarCoverageAltitudeSettings.h:38
makVrv::DtRecordSettingsBackupInterface * settingsBackup()
Definition: radarCoverageManager.h:82
The shared radar coverage settings.
Definition: radarCoverageManager.h:276
DtRadarCoverageSettingsRecord mySettingsRecord
Definition: radarCoverageManager.h:330
Contains makVrv::DtUniqueID type.
const makVrv::DtRecordSettingsBackupInterface * settingsBackup() const
Definition: radarCoverageManager.h:77
std::map< double, DtVrfExtendedIntervisibilitySettingsData::Color > ColorMap
Definition: radarCoverageManager.h:49
MonitoringByIdMap myMonitoringById
Definition: radarCoverageManager.h:203
boost::signals2::signal< void(float r, float g, float b, float a)> signal_waitingColorChanged
Definition: radarCoverageManager.h:171
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:70
boost::signals2::signal< void(float r, float g, float b, float a)> signal_keyFontColorChanged
Definition: radarCoverageManager.h:166
A signaler for the shared sensor contact lines settings.
Definition: radarCoverageManager.h:240
makVrv::DtIntervisibilityElement * element
Definition: radarCoverageManager.h:217
boost::signals2::signal< void(const DtUUID &)> signal_radarCoverageStoppedMonitoring
Definition: radarCoverageManager.h:169
std::map< DtUUID, std::map< bool, boost::signals2::connection > > UpdateConnections
Definition: radarCoverageManager.h:232
MonitoringMap myMonitoring
Definition: radarCoverageManager.h:200
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:24
UpdateConnections myUpdateConnections
Definition: radarCoverageManager.h:233
std::set< DtUniqueID > IdSet
Definition: DtSelectionManager.h:32
bool myAltitudeMSL
Definition: radarCoverageManager.h:206
Definition: radarCoverageManager.h:46
ColorMap myRadarCoverageAltitudes
Definition: radarCoverageManager.h:209

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)