VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtDistributedEnvironmentSettingsManager.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2023 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 
16 
18 
19 #include <vrvUtil/signalslib.h>
20 
21 namespace makArchives
22 {
23  class DtDistributedEnvironmentSettingsRecord;
24 }
25 
26 namespace makVrv
27 {
28 
29  class DtDe;
30  class DtDeSettings;
31  class DtRecordSettingsBackupInterface;
32 
50  : public DtBaseSettingsManager<makArchives::DtDistributedEnvironmentSettingsRecord>
51  {
52  public:
53 
55  static DtDistributedEnvironmentSettingsManager& instance( DtDe& de );
56 
59 
60  public:
61 
64 
66  virtual void setListenToRemoteEnvironmentSettingsEnabled( bool val );
68  virtual bool listenToRemoteEnvironmentSettingsEnabled() const;
69 
71 
74 
76  virtual void setFromRecord( const makArchives::DtDistributedEnvironmentSettingsRecord& rec );
77 
79  virtual void getRecord( makArchives::DtDistributedEnvironmentSettingsRecord& rec ) const;
80 
82 
83  virtual void refreshRemoteEnvironment() const;
84 
86  virtual void getEnvironmentRecord( makArchives::DtEnvironmentRecord& rec ) const;
87 
89  boost::signalslib::signal<void( bool )> signal_listenToRemoteEnvironmentSettingsChanged;
90  boost::signalslib::signal<void()> signal_refreshRemoteEnvironment;
91 
97  virtual void setDateAndTimeOfDay(int year, int month, int day, int hour,
98  int minutes, double seconds);
99 
104  virtual void setUseGlobalTimeZone(bool);
105 
109  virtual void setTimeOfDay(int hour, int minutes, double seconds);
110 
114  virtual void setTimeOfDayAdvancementSpeed(float speed);
116 
119 
121  virtual void setAirTurbidity(float turbidity);
122 
124  virtual void setAmbientAirTemperature(float temperature);
125 
127  virtual void setAmbientAirPressure(float pressure);
128 
130  virtual void setAirTemperatureAltitude(float altitude);
131 
133  virtual void setAirPressureAltitude(float altitude);
134 
136  virtual void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel);
137 
139  virtual void setAirPressureAltitudeIsSeaLevel(bool seaLevel);
140 
142  virtual void setSeaLevelWaterConcentration(float water);
143 
145  virtual void setLightningPresent(bool lightningPresent);
146 
148  virtual void setPrecipitationType(unsigned int type);
149 
151  virtual void setPrecipitationIntensity(float intensity);
152 
154  virtual void setFogHeight(float value);
155 
157  virtual void setFogColor(const DtVector& color);
158  virtual void setFogColor(float red, float green, float blue); // 0.0-1.0
159  virtual void setFogColor(int red, int green, int blue); // 0-255
160 
163  virtual void removeElevationalConfiguration(float baseMSLAltitude);
164 
173  virtual void updateOrAddElevationalConfiguration(DtEnvironmentInterface::DtElevationalConfigurationRecord rec);
174 
177  virtual void setSwellState(DtDouglasSwellState::Scale state);
178 
180  virtual void setSwellStateDirection(float value);
181 
184  virtual void setSeaState(DtDouglasSeaState::Scale state);
185 
187  virtual void setSeaStateDirection(float value);
188 
191  virtual void setWindDrivenSeaStateEnabled(bool value);
192 
194  virtual void setWindFetch(float value);
195 
197  virtual void setSeaChoppiness(float value);
198 
200  virtual void setUnderwaterVisibility(float distance);
201 
203  virtual void setSurfaceTransparency(float value);
204 
206  virtual void setSurgeDepth(float value);
207 
209  virtual void setAmbientWaterTemperature(float temperature);
210 
212  virtual void setWaterCurrentSpeed(float speed);
213 
215  virtual void setWaterCurrentDirection(float direction);
216 
218  virtual void setTidalOffset(float meters);
219 
221  virtual void setTidalDirection(bool inOut);
222 
224  virtual void setThermoclineDepth(unsigned int layer, float value);
225 
227  virtual void setThermoclinePermeability(unsigned int layer, float value);
228 
230  virtual void setGroundSnowAccumulation(double depth);
231 
233  virtual void setRoadSnowAccumulation(double depth);
234 
236  virtual void setSnowMinimumElevation(double elevation);
237 
240  virtual void setSnowElevationTransition(double elevation);
241 
243  virtual void setGroundRainAccumulation(double depth);
245 
249  virtual void remoteGlobalEnvironmentDiscovered();
250 
253 
255  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAirTurbidityChanged;
256 
258  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAmbientAirTemperatureChanged;
259 
261  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAmbientAirPressureChanged;
262 
264  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAirTemperatureAltitudeChanged;
265 
267  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAirPressureAltitudeChanged;
268 
271 
274 
276  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSeaLevelWaterConcentrationChanged;
277 
279  boost::signalslib::signal<void(bool)> signal_remoteEnvironmentLightningPresentChanged;
280 
282  boost::signalslib::signal<void(float)> signal_remoteEnvironmentPrecitipationIntensityChanged;
283 
285  boost::signalslib::signal<void(DtEnvironmentInterface::PrecipitationType)> signal_remoteEnvironmentPrecipitationTypeChanged;
286 
288  boost::signalslib::signal<void(int, int, int)> signal_remoteEnvironmentTimeOfDayChanged;
289 
291  boost::signalslib::signal<void(int, int, int, int, int, int)> signal_remoteEnvironmentDateAndTimeOfDayChanged;
292 
294  boost::signalslib::signal<void(bool)> signal_remoteEnvironmentUseGlobalTimeZoneChanged;
295 
297  boost::signalslib::signal<void(float)> signal_remoteEnvironmentTimeOfDayAdvancementSpeedChanged;
298 
300  boost::signalslib::signal<void(float)> signal_remoteEnvironmentVisibilityChanged;
301 
303  boost::signalslib::signal<void(float)> signal_remoteEnvironmentFogHeightChanged;
304 
306  boost::signalslib::signal<void(const DtVector&)> signal_remoteEnvironmentFogColorChanged;
307 
309  boost::signalslib::signal<void(float)> signal_remoteEnvironmentElevationalConfigurationRemoved;
310 
312  boost::signalslib::signal<void(DtEnvironmentInterface::DtElevationalConfigurationRecord)> signal_remoteEnvironmentElevationalConfigurationUpdatedOrAdded;
313 
315  boost::signalslib::signal<void(DtDouglasSwellState::Scale)> signal_remoteEnvironmentSwellStateChanged;
316 
318  boost::signalslib::signal<void(int)> signal_remoteEnvironmentSwellStateDirectionChanged;
319 
321  boost::signalslib::signal<void(DtDouglasSeaState::Scale)> signal_remoteEnvironmentSeaStateChanged;
322 
324  boost::signalslib::signal<void(int)> signal_remoteEnvironmentSeaStateDirectionChanged;
325 
327  boost::signalslib::signal<void(int)> signal_remoteEnvironmentWindDrivenSeaStateEnabledChanged;
328 
330  boost::signalslib::signal<void(float)> signal_remoteEnvironmentWindFetchChanged;
331 
333  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSeaChoppinessChanged;
334 
336  boost::signalslib::signal<void(float)> signal_remoteEnvironmentUnderWaterVisibilityChanged;
337 
339  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSurfaceTransparencyChanged;
340 
342  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSurgeDepthChanged;
343 
345  boost::signalslib::signal<void(float)> signal_remoteEnvironmentAmbientWaterTemperatureChanged;
346 
348  boost::signalslib::signal<void(float)> signal_remoteEnvironmentWaterCurrentSpeedChanged;
349 
351  boost::signalslib::signal<void(float)> signal_remoteEnvironmentWaterCurrentDirectionChanged;
352 
354  boost::signalslib::signal<void(float)> signal_remoteEnvironmentTidalOffsetChanged;
355 
357  boost::signalslib::signal<void(bool)> signal_remoteEnvironmentTidalDirectionChanged;
358 
360  boost::signalslib::signal<void(unsigned int, float)> signal_remoteEnvironmentThermoclineDepthChanged;
361 
363  boost::signalslib::signal<void(unsigned int, float)> signal_remoteEnvironmentThermoclinePermeabilityChanged;
364 
366  boost::signalslib::signal<void(float)> signal_remoteEnvironmentGroundSnowAccumulationChanged;
367 
369  boost::signalslib::signal<void(float)> signal_remoteEnvironmentRoadSnowAccumulationChanged;
370 
372  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSnowMinimumElevationChanged;
373 
375  boost::signalslib::signal<void(float)> signal_remoteEnvironmentSnowElevationTransitionChanged;
376 
378  boost::signalslib::signal<void(float)> signal_remoteEnvironmentGroundRainAccumulationChanged;
380 
381  protected:
382 
384  template <typename ManagerClass>
385  friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool );
386 
388  template <typename ManagerClass>
389  friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* );
390 
393 
398  virtual bool applyFactoryOverrides(makArchives::DtDistributedEnvironmentSettingsRecord& rec) const;
399 
400  protected:
403  };
404 
405 }
boost::signalslib::signal< void(unsigned int, float)> signal_remoteEnvironmentThermoclineDepthChanged
Emitted when the thermocline depth changes.
Definition: DtDistributedEnvironmentSettingsManager.h:360
Base class for (non-shared) settings managers. Extends the functionality provided by the DtCommonBase...
Definition: DtBaseSettingsManager.h:291
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSnowElevationTransitionChanged
Emitted when the snow elevation transition changes.
Definition: DtDistributedEnvironmentSettingsManager.h:375
boost::signalslib::signal< void(bool)> signal_listenToRemoteEnvironmentSettingsChanged
Boost signals for changed settings.
Definition: DtDistributedEnvironmentSettingsManager.h:89
The declaration of the makVrv::DtEnvironmentInterface class.
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAmbientWaterTemperatureChanged
Emitted when the ambient water temperature, in Kelvins, changes.
Definition: DtDistributedEnvironmentSettingsManager.h:345
boost::signalslib::signal< void(float)> signal_remoteEnvironmentGroundSnowAccumulationChanged
Emitted when the ground snow accumulation depth changes.
Definition: DtDistributedEnvironmentSettingsManager.h:366
The distributed environment settings manager only maintains one persistent application setting - and ...
Definition: DtDistributedEnvironmentSettingsManager.h:49
boost::signalslib::signal< void(float)> signal_remoteEnvironmentPrecitipationIntensityChanged
Emitted when the precipitation intensity factor changes.
Definition: DtDistributedEnvironmentSettingsManager.h:282
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSnowMinimumElevationChanged
Emitted when the snow minimum elevation changes.
Definition: DtDistributedEnvironmentSettingsManager.h:372
boost::signalslib::signal< void(DtDouglasSwellState::Scale)> signal_remoteEnvironmentSwellStateChanged
Emitted when the swell state changes.
Definition: DtDistributedEnvironmentSettingsManager.h:315
boost::signalslib::signal< void(bool)> signal_remoteEnvironmentUseGlobalTimeZoneChanged
Emitted when positioning with the sun with GMT time changes.
Definition: DtDistributedEnvironmentSettingsManager.h:294
boost::signalslib::signal< void(int, int, int, int, int, int)> signal_remoteEnvironmentDateAndTimeOfDayChanged
Emitted when the date and time of day changes.
Definition: DtDistributedEnvironmentSettingsManager.h:291
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSeaChoppinessChanged
Emitted when the sea choppiness changes.
Definition: DtDistributedEnvironmentSettingsManager.h:333
makArchives::DtEnvironmentRecord myEnvironmentRecord
Definition: DtDistributedEnvironmentSettingsManager.h:401
boost::signalslib::signal< void(float)> signal_remoteEnvironmentWaterCurrentSpeedChanged
Emitted when the water current speed changes.
Definition: DtDistributedEnvironmentSettingsManager.h:348
boost::signalslib::signal< void(int, int, int)> signal_remoteEnvironmentTimeOfDayChanged
Emitted when the time of day changes.
Definition: DtDistributedEnvironmentSettingsManager.h:288
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAirTurbidityChanged
Emitted when the air turbidity factor changes.
Definition: DtDistributedEnvironmentSettingsManager.h:255
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:242
boost::signalslib::signal< void(float)> signal_remoteEnvironmentTidalOffsetChanged
Emitted when the tidal offset changes.
Definition: DtDistributedEnvironmentSettingsManager.h:354
boost::signalslib::signal< void(unsigned int, float)> signal_remoteEnvironmentThermoclinePermeabilityChanged
Emitted when the thermocline permeability changes.
Definition: DtDistributedEnvironmentSettingsManager.h:363
Scale
Definition: DtDouglasSeaScale.h:33
boost::signalslib::signal< void(bool)> signal_remoteEnvironmentAirTemperatureAltitudeIsSeaLevelChanged
Emitted when the air temperature altitude is sea level flag changes.
Definition: DtDistributedEnvironmentSettingsManager.h:270
bool myListenToRemoteEnvironmentSettingsEnabled
Definition: DtDistributedEnvironmentSettingsManager.h:402
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
boost::signalslib::signal< void(float)> signal_remoteEnvironmentWaterCurrentDirectionChanged
Emitted when the water current direction changes.
Definition: DtDistributedEnvironmentSettingsManager.h:351
boost::signalslib::signal< void(float)> signal_remoteEnvironmentWindFetchChanged
Emitted when the ocean wind fetch changes.
Definition: DtDistributedEnvironmentSettingsManager.h:330
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Scale
Definition: DtDouglasSeaScale.h:114
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSurfaceTransparencyChanged
Emitted when the surface transparency changes.
Definition: DtDistributedEnvironmentSettingsManager.h:339
boost::signalslib::signal< void(bool)> signal_remoteEnvironmentAirPressureAltitudeIsSeaLevelChanged
Emitted when the air pressure altitude is sea level flag changes.
Definition: DtDistributedEnvironmentSettingsManager.h:273
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAirPressureAltitudeChanged
Emitted when the air pressure altitude, in meters, changes.
Definition: DtDistributedEnvironmentSettingsManager.h:267
boost::signalslib::signal< void(DtDouglasSeaState::Scale)> signal_remoteEnvironmentSeaStateChanged
Emitted when the sea state changes.
Definition: DtDistributedEnvironmentSettingsManager.h:321
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
void defaultManagerRegisterInstanceFunction(DtDe &de, ManagerClass *mgr)
Default implementation of how to register a manager, especially necessary when overriding the manager...
Definition: DtDe.h:879
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSurgeDepthChanged
Emitted when the surge depth changes.
Definition: DtDistributedEnvironmentSettingsManager.h:342
boost::signalslib::signal< void(const DtVector &)> signal_remoteEnvironmentFogColorChanged
Emitted when the fog color changes.
Definition: DtDistributedEnvironmentSettingsManager.h:306
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAirTemperatureAltitudeChanged
Emitted when the air temperature altitude, in meters, changes.
Definition: DtDistributedEnvironmentSettingsManager.h:264
Contains DtDistributedEnvironmentSettingsRecord class.
A record for Distributed Environment settings.
Definition: DtDistributedEnvironmentSettingsRecord.h:19
boost::signalslib::signal< void(float)> signal_remoteEnvironmentFogHeightChanged
Emitted when the fog ceiling height changes.
Definition: DtDistributedEnvironmentSettingsManager.h:303
boost::signalslib::signal< void(DtEnvironmentInterface::DtElevationalConfigurationRecord)> signal_remoteEnvironmentElevationalConfigurationUpdatedOrAdded
Emitted when an elevational configuration is updated or added.
Definition: DtDistributedEnvironmentSettingsManager.h:312
boost::signalslib::signal< void(float)> signal_remoteEnvironmentElevationalConfigurationRemoved
Emitted when an elevational configuration is removed.
Definition: DtDistributedEnvironmentSettingsManager.h:309
boost::signalslib::signal< void(float)> signal_remoteEnvironmentTimeOfDayAdvancementSpeedChanged
Emitted when the time of day advancement speed changes.
Definition: DtDistributedEnvironmentSettingsManager.h:297
ManagerClass & defaultManagerInstanceFunction(DtDe &de, bool allowedInSlave)
default Manager instance function. Manager requirements: 1) Static instance function 2) Protected DtS...
Definition: DtDe.h:841
boost::signalslib::signal< void(float)> signal_remoteEnvironmentSeaLevelWaterConcentrationChanged
Emitted when the the sea level water concentration, in PPMV (parts per million by volume)...
Definition: DtDistributedEnvironmentSettingsManager.h:276
boost::signalslib::signal< void(int)> signal_remoteEnvironmentWindDrivenSeaStateEnabledChanged
Emitted when the wind driven seas state enabled changes.
Definition: DtDistributedEnvironmentSettingsManager.h:327
boost::signalslib::signal< void(float)> signal_remoteEnvironmentRoadSnowAccumulationChanged
Emitted when the road snow accumulation depth changes.
Definition: DtDistributedEnvironmentSettingsManager.h:369
boost::signalslib::signal< void(bool)> signal_remoteEnvironmentTidalDirectionChanged
Emitted when the tidal direction changes.
Definition: DtDistributedEnvironmentSettingsManager.h:357
boost::signalslib::signal< void(float)> signal_remoteEnvironmentUnderWaterVisibilityChanged
Emitted when the underwater visibility changes.
Definition: DtDistributedEnvironmentSettingsManager.h:336
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:72
boost::signalslib::signal< void()> signal_refreshRemoteEnvironment
Definition: DtDistributedEnvironmentSettingsManager.h:90
boost::signalslib::signal< void(bool)> signal_remoteEnvironmentLightningPresentChanged
Emitted when the lightning is present state has changed.
Definition: DtDistributedEnvironmentSettingsManager.h:279
boost::signalslib::signal< void(int)> signal_remoteEnvironmentSeaStateDirectionChanged
Emitted when the sea state direction changes.
Definition: DtDistributedEnvironmentSettingsManager.h:324
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAmbientAirPressureChanged
Emitted when the ambient air pressure, in Pascals, changes.
Definition: DtDistributedEnvironmentSettingsManager.h:261
boost::signalslib::signal< void(float)> signal_remoteEnvironmentVisibilityChanged
Emitted when the visibility factor changes.
Definition: DtDistributedEnvironmentSettingsManager.h:300
boost::signalslib::signal< void(float)> signal_remoteEnvironmentGroundRainAccumulationChanged
Emitted when the ground rain accumulation depth changes.
Definition: DtDistributedEnvironmentSettingsManager.h:378
boost::signalslib::signal< void(float)> signal_remoteEnvironmentAmbientAirTemperatureChanged
Emitted when the ambient air temperature, in Kelvins, changes.
Definition: DtDistributedEnvironmentSettingsManager.h:258
boost::signalslib::signal< void(int)> signal_remoteEnvironmentSwellStateDirectionChanged
Emitted when the swell state direction changes.
Definition: DtDistributedEnvironmentSettingsManager.h:318
boost::signalslib::signal< void(DtEnvironmentInterface::PrecipitationType)> signal_remoteEnvironmentPrecipitationTypeChanged
Emitted when the precipitation type changes.
Definition: DtDistributedEnvironmentSettingsManager.h:285
Contains the DtBaseSettingsManager class declaration.
Contains DLL export macros.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)