VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCloudCoverManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
14 #include <vrvCore/DtCloudLayer.h>
15 
16 #include <vrvUtil/signalslib.h>
18 
19 #include <map>
20 #include <unordered_map>
21 
22 namespace makArchives
23 {
24  class DtCloudLayerRecord;
25 }
26 
27 namespace makVrv
28 {
29  class DtDe;
30 
46  {
47  public:
48 
51  typedef std::vector<DtCloudLayerId> CloudLayerIdList;
52 
55  {
56  std::string cloudCoverName; // The name of the cloud cover
57  CloudLayerIdList cloudLayerIdList; // The cloud layer ids of all
58  // layers in the cloud cover
59  };
60 
62  typedef std::map<std::string, CloudCoverData> CloudCoverCloudLayerIdMap;
63 
64  public:
66  static DtCloudCoverManager& instance(DtDe& de);
67 
69  virtual ~DtCloudCoverManager();
70 
72 
75  const CloudCoverCloudLayerIdMap& cloudCoverMap() const;
76 
78  bool isValidCloudCover(const std::string& cloudCover) const;
79 
82  const CloudLayerIdList& cloudLayerList(const std::string& cloudCover) const;
83 
85  bool isValidCloudLayer(DtCloudLayerId layerId) const;
86 
90  virtual std::string cloudCoverForLayer(DtCloudLayerId layerId) const;
91 
94  virtual const DtCloudLayer& cloudLayer(DtCloudLayerId layerId) const;
95 
98  virtual DtCloudLayer& cloudLayer(DtCloudLayerId layerId);
99 
103  virtual bool getCloudLayerIdFromCloudCoverAndBaseMSL(
104  const std::string& cloudCover, float baseMSLAltitude, DtCloudLayerId& result) const;
105 
108  virtual bool cloudLayerEnabled(DtCloudLayerId layerId) const;
110 
112 
115  virtual void addCloudCover(const std::string& cloudCoverName);
116 
118  virtual void removeCloudCover(const std::string& cloudCoverName);
119 
121  virtual void renameCloudCover(const std::string& oldName, const std::string& newName);
122 
126  virtual DtCloudLayerId addCloudLayer(const std::string& cloudCoverName,
127  const DtCloudLayer& layer );
128 
132  virtual DtCloudLayerId addCloudLayerByRecord(const std::string& cloudCoverName,
133  const makArchives::DtCloudLayerRecord& layerRecord);
134 
137  virtual bool deleteCloudLayer(DtCloudLayerId layerToDelete);
138 
147  virtual bool changeCloudLayer(DtCloudLayerId layerId, const DtCloudLayer& newLayer);
148 
149  virtual bool updateCloudLayerUsingRecord(DtCloudLayerId layerId, const makArchives::DtCloudLayerRecord& record);
150 
153  virtual bool setCloudLayerPositionAndOrientation(DtCloudLayerId layerId, const DtVector& position,
154  float orientation = 0.);
155 
160  virtual bool setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled);
162 
164 
167  boost::signalslib::signal<void(const std::string&)> signal_cloudCoverAdded;
168 
170  boost::signalslib::signal<void(const std::string&)> signal_cloudCoverToBeRemoved;
171 
173  boost::signalslib::signal<void(const std::string&)> signal_cloudCoverRemoved;
174 
177  boost::signalslib::signal<void(DtCloudLayerId, bool)> signal_cloudLayerEnabledChanged;
178 
180  boost::signalslib::signal<void(DtCloudLayerId, const DtVector&, float)> signal_cloudLayerPositionAndOrientationChanged;
181 
185  boost::signalslib::signal<void(DtCloudLayerId layerId, const DtCloudLayer& changedLayer)>
187 
191  boost::signalslib::signal<void(DtCloudLayerId layerId, const DtCloudLayer& oldLayer)>
193 
195  boost::signalslib::signal<void(DtCloudLayerId newLayer, const std::string& coverName)> signal_cloudLayerAdded;
196 
198  boost::signalslib::signal<void(DtCloudLayerId oldLayer)> signal_cloudLayerToBeRemoved;
199 
201  boost::signalslib::signal<void(DtCloudLayerId oldLayer)> signal_cloudLayerRemoved;
202 
204 
205  protected:
206 
209 
211  virtual void initialize();
212 
214  DtCloudLayerId allocateCloudLayerId();
215 
217  virtual void createExternalCloudCover();
218 
219  protected:
220 
222  struct LayerIdData
223  {
224  std::string cloudCover;
226  };
227 
229  typedef std::unordered_map<DtCloudLayerId, LayerIdData> CloudLayerIdMap;
232 
235  };
236 }
237 
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtDe & myDe
Definition: DtCloudCoverManager.h:234
DtCloudLayer cloudLayer
Definition: DtCloudCoverManager.h:225
boost::signalslib::signal< void(const std::string &)> signal_cloudCoverToBeRemoved
signal_cloudCoverToBeRemoved is raised just before a cloud cover is removed
Definition: DtCloudCoverManager.h:170
This is the data we&#39;ll keep in a map for each layer id.
Definition: DtCloudCoverManager.h:222
std::vector< DtCloudLayerId > CloudLayerIdList
A simple list of cloud layer ids.
Definition: DtCloudCoverManager.h:51
boost::signalslib::signal< void(DtCloudLayerId newLayer, const std::string &coverName)> signal_cloudLayerAdded
signal_cloudLayerAdded is raised when a cloud layer is added to a cloud cover
Definition: DtCloudCoverManager.h:195
boost::signalslib::signal< void(DtCloudLayerId oldLayer)> signal_cloudLayerToBeRemoved
signal_cloudLayerToBeRemoved is raised when a cloud layer is about to be removed from a cloud cover ...
Definition: DtCloudCoverManager.h:198
CloudLayerIdMap myCloudLayerIdMap
Definition: DtCloudCoverManager.h:230
boost::signalslib::signal< void(DtCloudLayerId, bool)> signal_cloudLayerEnabledChanged
signal_cloudLayerEnabledChanged is raised when the enabled state of a cloud layer within its cloud co...
Definition: DtCloudCoverManager.h:177
std::string cloudCoverName
Definition: DtCloudCoverManager.h:56
Contains makVrv::DtVirtualBaseClass class.
Record of a single cloud layer&#39;s settings.
Definition: DtCloudLayerRecord.h:17
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Representation of a single cloud layer.
Definition: DtCloudLayer.h:34
CloudCoverCloudLayerIdMap myCloudCoverCloudLayerIdMap
Definition: DtCloudCoverManager.h:231
boost::signalslib::signal< void(DtCloudLayerId layerId, const DtCloudLayer &changedLayer)> signal_cloudLayerToBeModified
signal_cloudLayerToBeModified is raised when a cloud layer is about to be changed.
Definition: DtCloudCoverManager.h:186
boost::signalslib::signal< void(DtCloudLayerId, const DtVector &, float)> signal_cloudLayerPositionAndOrientationChanged
signal_cloudLayerPositionChanged is raised when a cloud layer&#39;s position is modified ...
Definition: DtCloudCoverManager.h:180
Contains vrvCore::DtCloudLayerRecord declaration.
boost::signalslib::signal< void(DtCloudLayerId oldLayer)> signal_cloudLayerRemoved
signal_cloudLayerRemoved is raise when a cloud layer is removed from a cloud cover ...
Definition: DtCloudCoverManager.h:201
std::string cloudCover
Definition: DtCloudCoverManager.h:224
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
This is the data we track for each cloud cover.
Definition: DtCloudCoverManager.h:54
boost::signalslib::signal< void(DtCloudLayerId layerId, const DtCloudLayer &oldLayer)> signal_cloudLayerModified
signal_cloudLayerModified is raised when a cloud layer has changed.
Definition: DtCloudCoverManager.h:192
std::map< std::string, CloudCoverData > CloudCoverCloudLayerIdMap
This map is updated as cloud layers are added or removed.
Definition: DtCloudCoverManager.h:62
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Defines the manager class that manages the different cloud cover configurations being used by VR-Vant...
Definition: DtCloudCoverManager.h:45
std::unordered_map< DtCloudLayerId, LayerIdData > CloudLayerIdMap
This map is created when a data file is read and updated if cloud layers are added or removed...
Definition: DtCloudCoverManager.h:229
CloudLayerIdList cloudLayerIdList
Definition: DtCloudCoverManager.h:57
DtCloudLayerId myFreeCloudLayerId
Definition: DtCloudCoverManager.h:233
boost::signalslib::signal< void(const std::string &)> signal_cloudCoverAdded
BOOST SIGNALS used to let clients know what has transpired in this manager.
Definition: DtCloudCoverManager.h:167
boost::signalslib::signal< void(const std::string &)> signal_cloudCoverRemoved
signal_cloudCoverRemoved is raised immediately after a cloud cover is removed
Definition: DtCloudCoverManager.h:173
Contains DLL export macros.

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)