VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEnvironmentInterface.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/DtSkyObject.h>
13 
16 
18 
19 #include <string>
20 #include <vector>
21 
22 #include <matrix/vlVector.h>
23 
24 namespace makArchives
25 {
26  class DtCloudLayerRecord;
27 }
28 
29 namespace makVrv
30 {
31  class DtDe;
32  class DtAgentManagerInterface;
33  class DtSettingsBackup;
34  class DtOceanLayer;
35  class DtCloudLayer;
36 
41  {
42  public:
43 
44  typedef enum
45  {
52  } PrecipitationType;
53 
57 
59 
61  const static std::string theRemoteEnvironmentName;
62 
64  const static float theMaximumVisibilityDistance;
65 
68 
70  virtual ~DtEnvironmentInterface();
71 
75  virtual void getRecord(makArchives::DtEnvironmentRecord& record) const = 0;
76 
78  virtual void setFromRecord(
79  const makArchives::DtEnvironmentRecord& record) = 0;
80 
82  virtual void saveEnvironment(const std::string& envName) = 0;
85 
87  virtual void removeEnvironment(const std::string& envName) = 0;
88 
90  virtual void renameEnvironment(
91  const std::string& oldName, const std::string& newName) = 0;
92 
97  virtual void getEnvironmentNames(std::vector<std::string>& names,
98  bool includeLocalOnlyEnvironment = false) = 0;
99 
101  virtual void setEnvironment(const std::string& envName) = 0;
102 
105  virtual void setDefaultEnvironmentName(const std::string& name) = 0;
106 
109  virtual std::string defaultEnvironmentName() const = 0;
110 
112  virtual void setLightningPresent(bool lightningPresent) = 0;
114  virtual bool lightningPresent() const = 0;
116 
118  virtual void setAirTurbidity(float turbidity) = 0;
120  virtual float airTurbidity() const = 0;
122 
124  virtual void setVisibleDistance(float distance) = 0;
129  virtual float visibleDistance() const = 0;
131 
133  virtual void setWindSpeed(float windSpeed) = 0;
138  virtual float windSpeed() const = 0;
140 
142  virtual void setWindDirection(float direction) = 0;
147  virtual float windDirection() const = 0;
149 
151  virtual void setPrecipitationType(PrecipitationType type) = 0;
153  virtual PrecipitationType precipitationType() const = 0;
155 
157  virtual void setPrecipitationIntensity(float intensity) = 0;
159  virtual float precipitationIntensity() const = 0;
161 
172  virtual void updateOrAddElevationalConfiguration(const DtElevationalConfigurationRecord& record) = 0;
173 
181  virtual bool getElevationalConfiguration(float baseMSLAltitude,
183 
191  virtual void removeElevationalConfiguration(float baseMSLAltitude) = 0;
192 
203  virtual void moveElevationalConfiguration(
204  float oldBaseMSLAltitude, float newBaseMSLAltitude) = 0;
205 
210  virtual void setWindSpeedAtMSLAltitude(float mslAltitude, float windSpeed) = 0;
211 
217  virtual float windSpeedAtMSLAltitude(float mslAltitude) const = 0;
218 
224  virtual void setWindDirectionAtMSLAltitude(float mslAltitude, float windDirection) = 0;
225 
231  virtual float windDirectionAtMSLAltitude(float mslAltitude) const = 0;
232 
238  virtual void setVisibilityDistanceAtMSLAltitude(float mslAltitude, float visibilityDistance) = 0;
239 
245  virtual float visibilityDistanceAtMSLAltitude(float mslAltitude) const = 0;
246 
252  virtual void setObscurantAtMSLAltitude(float mslAltitude, VisibilityObscurant obscurant) = 0;
253 
259  virtual VisibilityObscurant obscurantAtMSLAltitude(float mslAltitude) const = 0;
260 
266  virtual void setCloudTypeAtMSLAltitude(float mslAltitude, CloudType cloudType) = 0;
267 
273  virtual CloudType cloudTypeAtMSLAltitude(float mslAltitude) const = 0;
274 
279  virtual void setSkyCoverageAtMSLAltitude(float mslAltitude, float skyCoverage) = 0;
280 
285  virtual float skyCoverageAtMSLAltitude(float mslAltitude) const = 0;
286 
288  virtual void setAmbientAirTemperature(float temperature) = 0;
290  virtual float ambientAirTemperature() const = 0;
292 
294  virtual void setAmbientAirPressure(float pressure) = 0;
296  virtual float ambientAirPressure() const = 0;
298 
301  virtual void setAirPressureAltitude(float altitude) = 0;
302  virtual float airPressureAltitude() const = 0;
304 
307  virtual void setAirTemperatureAltitude(float altitude) = 0;
308  virtual float airTemperatureAltitude() const = 0;
310 
313  virtual void setAirPressureAltitudeIsSeaLevel(bool seaLevel) = 0;
314  virtual bool airPressureAltitudeIsSeaLevel() const = 0;
316 
319  virtual void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel) = 0;
320  virtual bool airTemperatureAltitudeIsSeaLevel() const = 0;
322 
325  virtual void setSeaLevelWaterConcentration(float water) = 0;
326  virtual float seaLevelWaterConcentration() const = 0;
328 
330  virtual void setFogHeight(float height) = 0;
332  virtual float fogHeight() const = 0;
334 
336  virtual void setFogColor(const DtVector& color) = 0;
338  virtual DtVector fogColor() const = 0;
340 
342  virtual void setGroundFogColor(const DtVector& color) = 0;
344  virtual DtVector groundFogColor() const = 0;
346 
348  virtual void setSeaState(DtDouglasSeaState::Scale state) = 0;
351  virtual DtDouglasSeaState::Scale seaState() const = 0;
353 
355  virtual void setSeaStateDirection(float dir) = 0;
357  virtual float seaStateDirection() const = 0;
359 
361  virtual void setWindDrivenSeaState(bool enabled) = 0;
363  virtual bool windDrivenSeaState() const = 0;
365 
367  virtual void setSwellState(DtDouglasSwellState::Scale state) = 0;
370  virtual DtDouglasSwellState::Scale swellState() const = 0;
372 
374  virtual void setSwellStateDirection(float dir) = 0;
376  virtual float swellStateDirection() const = 0;
378 
380  virtual void setWindFetch(float distance) = 0;
382  virtual float windFetch() const = 0;
384 
386  virtual void setSeaChoppiness(float chop) = 0;
388  virtual float seaChoppiness() const = 0;
390 
393  virtual void setUnderwaterVisibilityEnabled(bool enabled) = 0;
394  virtual bool underwaterVisibilityEnabled() const = 0;
396 
398  virtual void setUnderwaterVisibility(float distance) = 0;
400  virtual float underwaterVisibility() const = 0;
402 
404  virtual void setWaterSurfaceTransparency(float normalizedValue) = 0;
406  virtual float waterSurfaceTransparency() const = 0;
408 
410  virtual void setSurgeDepth(float meters) = 0;
412  virtual float surgeDepth() const = 0;
414 
416  virtual void setDepthOffset(float meters) = 0;
418  virtual float depthOffset() const = 0;
420 
422  virtual void setAmbientWaterTemperature(float temperature) = 0;
424  virtual float ambientWaterTemperature() const = 0;
426 
428  virtual void setWaterCurrentSpeed(float speed) = 0;
430  virtual float waterCurrentSpeed() const = 0;
432 
434  virtual void setWaterCurrentDirection(float direction) = 0;
437  virtual float waterCurrentDirection() const = 0;
439 
441  virtual void setTidalOffset(float meters) = 0;
443  virtual float tidalOffset() const = 0;
445 
447  virtual void setTidalDirection(bool inOut) = 0;
449  virtual bool tidalDirection() const = 0;
451 
453  virtual void setThermoclineDepth(unsigned int layer, float depth) = 0;
455  virtual float thermoclineDepth(unsigned int layer) const = 0;
457 
459  virtual void setThermoclinePermeability(
461  unsigned int layer, float permeability) = 0;
462  virtual float thermoclinePermeability(unsigned int layer) const = 0;
464 
466  virtual void setGroundSnowAccumulation(float depth) = 0;
468  virtual float groundSnowAccumulation() const = 0;
470 
472  virtual void setRoadSnowAccumulation(float depth) = 0;
474  virtual float roadSnowAccumulation() const = 0;
476 
478  virtual void setSnowMinimumElevation(float elevation) = 0;
480  virtual float snowMinimumElevation() const = 0;
482 
486  virtual void setSnowElevationTransition(float elevation) = 0;
487  virtual float snowElevationTransition() const = 0;
489 
491  virtual void setGroundRainAccumulation(float depth) = 0;
493  virtual float groundRainAccumulation() const = 0;
495 
496  //Called from CTOR to load the default settings.
497  virtual void loadDefaults(bool loadOnlyFactorySettings = false) = 0;
498 
499  // Restores to backup up environment from startup default
500  virtual void restore() = 0;
501 
502  //Called to save the current settings as the default settings.
503  virtual void saveAsDefaults() = 0;
504 
506  virtual void exportSettings(const std::string& filename) = 0;
508  virtual void importSettings(const std::string& filename) = 0;
510 
511  protected:
512 
515 
517  virtual void slot_coordinateSystemChanged() = 0;
518 
520  virtual void slot_oceanLayerAdded(const DtOceanLayer& layer) = 0;
521 
523  virtual void slot_oceanLayerToBeDeleted(const DtOceanLayer& layer) = 0;
524 
526  virtual void slot_oceanLayerSeaLevelChanged(
527  const DtOceanLayer& layer, double seaLevel) = 0;
528 
530  virtual void slot_oceanLayerLodRangeChanged(
531  const DtOceanLayer& layer, int range) = 0;
532 
534  virtual void slot_surgeDepthChanged(double depth) = 0;
535 
537  virtual void slot_depthOffsetChanged(double offset) = 0;
539 
540  };
541 }
makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord DtElevationalConfigurationRecord
Definition: DtEnvironmentInterface.h:56
Definition: DtSkyObject.h:78
Definition: DtSkyObject.h:81
makArchives::VisibilityObscurant VisibilityObscurant
Definition: DtEnvironmentInterface.h:55
Definition: surface.h:71
static const std::string theRemoteEnvironmentName
The Environment Name used when listening to remote environment settings.
Definition: DtEnvironmentInterface.h:61
VisibilityObscurant
Definition: DtEnvironmentRecord.h:30
BlowingParticulateMatterType
Definition: DtEnvironmentRecord.h:22
Contains makVrv::DtSkyObject class.
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:251
Scale
Definition: DtDouglasSeaScale.h:33
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...
The DtEnvironmentInterface is an interface class providing abstraction for different managers of envi...
Definition: DtEnvironmentInterface.h:40
The declaration of the makArchives::DtEnvironmentRecord class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Scale
Definition: DtDouglasSeaScale.h:114
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:45
Definition: DtSkyObject.h:80
The declaration of the makVrv::DtCloudTypeMapper class.
makArchives::BlowingParticulateMatterType BlowingParticulateMatterType
Definition: DtEnvironmentInterface.h:54
DtCloudTypeMapper::CloudType CloudType
Definition: DtEnvironmentInterface.h:58
PrecipitationType
Definition: DtEnvironmentInterface.h:44
The ocean layer is a type of terrain layer which contains information about an area that should be re...
Definition: DtOceanLayer.h:25
static const float theMaximumVisibilityDistance
Maximum Visibility Distance.
Definition: DtEnvironmentInterface.h:64
Definition: DtSkyObject.h:82
Definition: DtSkyObject.h:77
voidpf uLong offset
Definition: ioapi.h:42
Definition: DtSkyObject.h:76
The declaration of the makVrv::DtDouglasSeaState and makVrv::DtDouglasSwellState classes.
CloudType
Cloud layer types.
Definition: DtCloudTypeMapper.h:35

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)