VR-Forces 4.8 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) 2018 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>
16 
20 
22 
23 #include <boost/unordered_map.hpp>
24 #include <vrvUtil/signalslib.h>
25 
26 #include <map>
27 
28 namespace makVrv
29 {
30  class DtDe;
31 
41  {
42  public:
43 
46  typedef std::list<DtCloudLayerId> CloudLayerIdList;
47 
50  {
51  std::string cloudCoverName; // The name of the cloud cover
52  CloudLayerIdList cloudLayerIdList; // The cloud layer ids of all layers in the cloud cover
53  };
54 
56  typedef std::map<makArchives::DtCloudCoverType, CloudCoverData> CloudCoverCloudLayerIdMap;
57 
59  static DtCloudCoverManager& instance(DtDe& de);
60 
62  virtual ~DtCloudCoverManager();
63 
65  virtual void initialize();
66 
68 
71  const CloudCoverCloudLayerIdMap& cloudCoverMap() const;
72 
74  bool isValidCloudCover(makArchives::DtCloudCoverType cloudCover) const;
75 
78  bool isUserCloudCover(makArchives::DtCloudCoverType coverType) const;
79 
82  virtual std::string cloudCoverName(makArchives::DtCloudCoverType cloudCover);
83 
86  virtual makArchives::DtCloudCoverType cloudCoverType(const std::string& cloudCoverName);
87 
90  const CloudLayerIdList& cloudLayerList(makArchives::DtCloudCoverType cloudCover) const;
91 
93  bool isValidCloudLayer(DtCloudLayerId layerId) const;
94 
97  virtual makArchives::DtCloudCoverType cloudCoverForLayer(DtCloudLayerId layerId);
98 
101  virtual const DtCloudLayer& cloudLayer(DtCloudLayerId layerId) const;
102 
105  virtual bool cloudLayerEnabled(DtCloudLayerId layerId) const;
107 
109 
113  virtual makArchives::DtCloudCoverType addCloudCover(const std::string& cloudCoverName);
114 
116  virtual void removeCloudCover(makArchives::DtCloudCoverType);
117 
120  virtual DtCloudLayerId addCloudLayer(makArchives::DtCloudCoverType cloudCover,
121  const DtCloudLayer& layer );
122 
125  virtual bool deleteCloudLayer(DtCloudLayerId layerToDelete);
126 
134  virtual bool changeCloudLayer(DtCloudLayerId layerId, const DtCloudLayer& newLayer);
135 
138  virtual bool setCloudLayerPositionAndOrientation(DtCloudLayerId layerId, const DtVector& position,
139  float orientation = 0.);
140 
144  virtual bool setCloudLayerEnabled(DtCloudLayerId layerId, bool enabled );
146 
148 
151  virtual void getRecord(makArchives::DtCloudCoverListRecord& record);
152 
155  virtual void getSplitRecord(std::vector<makArchives::DtCloudCoverListRecord>& rec,
156  std::vector<std::string>& fileNames) {};
157 
161  makArchives::DtCloudCoverListRecord& combinedRec) {};
162 
164  virtual void setFromRecord(
166 
168  virtual void slot_restored();
169 
171  virtual void saveAsDefaults();
172 
174  virtual void exportSettings(const std::string& filename);
176  virtual void importSettings(const std::string& filename);
178 
180  {
181  return mySettingsBackup;
182  }
183 
185  {
186  return mySettingsBackup;
187  }
188 
190  virtual void loadDefaults(bool loadOnlyFactorySettings = false);
192 
194 
197  boost::signal<void()> signal_cloudCoverReset;
198 
200  boost::signal<void(makArchives::DtCloudCoverType, const std::string&)> signal_cloudCoverAdded;
201 
203  boost::signal<void(makArchives::DtCloudCoverType)> signal_cloudCoverToBeRemoved;
204 
206  boost::signal<void(makArchives::DtCloudCoverType)> signal_cloudCoverRemoved;
207 
210  boost::signal<void(DtCloudLayerId, bool)> signal_cloudLayerEnabledChanged;
211 
213  boost::signal<void(DtCloudLayerId, const DtVector&, float)> signal_cloudLayerPositionAndOrientationChanged;
214 
218  boost::signal<void(DtCloudLayerId layerId, const DtCloudLayer& changedLayer)>
220 
224  boost::signal<void(DtCloudLayerId layerId, const DtCloudLayer& oldLayer)>
226 
228  boost::signal<void(DtCloudLayerId newLayer, makArchives::DtCloudCoverType cover)> signal_cloudLayerAdded;
229 
231  boost::signal<void(DtCloudLayerId oldLayer)> signal_cloudLayerToBeRemoved;
232 
234  boost::signal<void(DtCloudLayerId oldLayer)> signal_cloudLayerRemoved;
235 
237 
238  protected:
239 
242 
243  virtual void autoSave();
244  virtual void autoSaveDefaultsIfNeeded();
245 
246  DtCloudLayerId allocateCloudLayerId();
247 
248  makArchives::DtCloudCoverType allocateCloudCoverType();
249 
251  virtual bool getCloudCoverRecord(makArchives::DtCloudCoverType cloudCover,
252  makArchives::DtCloudCoverRecord& record) const;
253 
254  virtual void createExternalCloudCover();
255 
256  protected:
257 
259  struct LayerIdData
260  {
263  };
264 
266  typedef boost::unordered_map<DtCloudLayerId, LayerIdData> CloudLayerIdMap;
269 
270  typedef boost::unordered_map<std::string, makArchives::DtCloudCoverType> CloudCoverNameToCloudCoverMap;
272 
276  std::vector<bool> myUserCloudTypesAvailable;
277  };
278 
280 }
281 
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtDe & myDe
Definition: DtCloudCoverManager.h:274
DtCloudLayer cloudLayer
Definition: DtCloudCoverManager.h:262
std::map< makArchives::DtCloudCoverType, CloudCoverData > CloudCoverCloudLayerIdMap
This map is created when a data file is read and updated as cloud layers are added or removed...
Definition: DtCloudCoverManager.h:56
This is the data we&#39;ll keep in a map for each layer id.
Definition: DtCloudCoverManager.h:259
boost::unordered_map< std::string, makArchives::DtCloudCoverType > CloudCoverNameToCloudCoverMap
Definition: DtCloudCoverManager.h:270
boost::signal< void(DtCloudLayerId, const DtVector &, float)> signal_cloudLayerPositionAndOrientationChanged
signal_cloudLayerPositionChanged is raised when a cloud layer&#39;s position is modified ...
Definition: DtCloudCoverManager.h:213
Represents the xml tag for the list of clouds defined for a specific cloud cover type.
Definition: DtCloudCoverRecord.h:20
The makVrv::DtRecordSettingsBackup is a templaced class that settings records will use in order to ba...
Definition: DtRecordSettingsBackup.h:103
boost::signal< void(makArchives::DtCloudCoverType)> signal_cloudCoverToBeRemoved
signal_cloudCoverToBeRemoved is raised just before a cloud cover is removed
Definition: DtCloudCoverManager.h:203
std::vector< bool > myUserCloudTypesAvailable
Definition: DtCloudCoverManager.h:276
CloudLayerIdMap myCloudLayerIdMap
Definition: DtCloudCoverManager.h:267
const DtSettingsBackup * settingsBackup() const
Definition: DtCloudCoverManager.h:179
boost::signal< void(DtCloudLayerId layerId, const DtCloudLayer &oldLayer)> signal_cloudLayerModified
signal_cloudLayerModified is raised when a cloud layer has changed.
Definition: DtCloudCoverManager.h:225
virtual void getSplitRecord(std::vector< makArchives::DtCloudCoverListRecord > &rec, std::vector< std::string > &fileNames)
To support writing element definitions in folders as multiple files not implemented for DtCloudCoverM...
Definition: DtCloudCoverManager.h:155
Contains makArchives::DtCloudLayerRecord class.
std::string cloudCoverName
Definition: DtCloudCoverManager.h:51
std::list< DtCloudLayerId > CloudLayerIdList
A simple list of cloud layer ids.
Definition: DtCloudCoverManager.h:46
virtual void addRecords(makArchives::DtCloudCoverListRecord &recs, makArchives::DtCloudCoverListRecord &combinedRec)
To support writing element definitions in folders as multiple files not implemented for DtCloudCoverM...
Definition: DtCloudCoverManager.h:160
Contains makArchives::DtCloudCoverListRecord class.
CloudCoverNameToCloudCoverMap myCloudCoverNameToCloudCoverMap
Definition: DtCloudCoverManager.h:271
The declaration of the makArchives::DtEnvironmentRecord class.
boost::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:210
DtCloudCoverType
Definition: DtCloudCoverType.h:14
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
boost::signal< void(DtCloudLayerId newLayer, makArchives::DtCloudCoverType cover)> signal_cloudLayerAdded
signal_cloudLayerAdded is raised when a cloud layer is added to a cloud cover
Definition: DtCloudCoverManager.h:228
Representation of a single cloud layer.
Definition: DtCloudLayer.h:34
CloudCoverCloudLayerIdMap myCloudCoverCloudLayerIdMap
Definition: DtCloudCoverManager.h:268
makArchives::DtCloudCoverType cloudCover
Definition: DtCloudCoverManager.h:261
boost::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:219
boost::signal< void(makArchives::DtCloudCoverType, const std::string &)> signal_cloudCoverAdded
signal_cloudCoverAdded is raised when a new cloud cover is added
Definition: DtCloudCoverManager.h:200
Provides a method of doign settings backup.
Definition: DtSettingsBackup.h:26
Contains vrvCore::DtCloudLayerRecord declaration.
DtRecordSettingsBackup< DtCloudCoverManager, makArchives::DtCloudCoverListRecord > DtCloudCoverSettingsBackup
Definition: DtCloudCoverManager.h:279
boost::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:231
DtRecordSettingsBackupInterface * mySettingsBackup
Definition: DtCloudCoverManager.h:275
Represents the xml tag for the list of cloud cover cover types.
Definition: DtCloudCoverListRecord.h:19
boost::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:266
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
This is the data we track for each cloud cover.
Definition: DtCloudCoverManager.h:49
boost::signal< void(makArchives::DtCloudCoverType)> signal_cloudCoverRemoved
signal_cloudCoverRemoved is raised immediately after a cloud cover is removed
Definition: DtCloudCoverManager.h:206
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
boost::signal< void(DtCloudLayerId oldLayer)> signal_cloudLayerRemoved
signal_cloudLayerRemoved is raise when a cloud layer is removed from a cloud cover ...
Definition: DtCloudCoverManager.h:234
Represents the class that manages the different cloud covers supported by the vrf environment...
Definition: DtCloudCoverManager.h:40
DtSettingsBackup * settingsBackup()
Definition: DtCloudCoverManager.h:184
The makVrv::DtRecordSettingsBackupInterface provides an interface to record-based backups...
Definition: DtRecordSettingsBackup.h:27
CloudLayerIdList cloudLayerIdList
Definition: DtCloudCoverManager.h:52
DtCloudLayerId myFreeCloudLayerId
Definition: DtCloudCoverManager.h:273
boost::signal< void()> signal_cloudCoverReset
BOOST SIGNALS used to let clients know what has transpired in this manager.
Definition: DtCloudCoverManager.h:197
Contains DLL export macros.

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)