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) 2023 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 
56 
58 
60  const static std::string theRemoteEnvironmentName;
61 
63  const static float theMaximumVisibilityDistance;
64 
67 
69  virtual ~DtEnvironmentInterface();
70 
74  virtual void getRecord(makArchives::DtEnvironmentRecord& record) const = 0;
75 
77  virtual void setFromRecord(
78  const makArchives::DtEnvironmentRecord& record) = 0;
79 
81  virtual void saveEnvironment(const std::string& envName) = 0;
84 
86  virtual void removeEnvironment(const std::string& envName) = 0;
87 
89  virtual void renameEnvironment(
90  const std::string& oldName, const std::string& newName) = 0;
91 
96  virtual void getEnvironmentNames(std::vector<std::string>& names,
97  bool includeLocalOnlyEnvironment = false) = 0;
98 
100  virtual void setEnvironment(const std::string& envName) = 0;
101 
104  virtual void setDefaultEnvironmentName(const std::string& name) = 0;
105 
108  virtual std::string defaultEnvironmentName() const = 0;
109 
111  virtual void setLightningPresent(bool lightningPresent) = 0;
113  virtual bool lightningPresent() const = 0;
115 
117  virtual void setAirTurbidity(float turbidity) = 0;
119  virtual float airTurbidity() const = 0;
121 
123  virtual void setVisibleDistance(float distance) = 0;
128  virtual float visibleDistance() const = 0;
130 
132  virtual void setWindSpeed(float windSpeed) = 0;
137  virtual float windSpeed() const = 0;
139 
141  virtual void setWindDirection(float direction) = 0;
146  virtual float windDirection() const = 0;
148 
150  virtual void setPrecipitationType(PrecipitationType type) = 0;
152  virtual PrecipitationType precipitationType() const = 0;
154 
156  virtual void setPrecipitationIntensity(float intensity) = 0;
158  virtual float precipitationIntensity() const = 0;
160 
171  virtual void updateOrAddElevationalConfiguration(const DtElevationalConfigurationRecord& record) = 0;
172 
180  virtual bool getElevationalConfiguration(float baseMSLAltitude,
182 
190  virtual void removeElevationalConfiguration(float baseMSLAltitude) = 0;
191 
202  virtual void moveElevationalConfiguration(
203  float oldBaseMSLAltitude, float newBaseMSLAltitude) = 0;
204 
209  virtual void setWindSpeedAtMSLAltitude(float mslAltitude, float windSpeed) = 0;
210 
216  virtual float windSpeedAtMSLAltitude(float mslAltitude) const = 0;
217 
223  virtual void setWindDirectionAtMSLAltitude(float mslAltitude, float windDirection) = 0;
224 
230  virtual float windDirectionAtMSLAltitude(float mslAltitude) const = 0;
231 
237  virtual void setVisibilityDistanceAtMSLAltitude(float mslAltitude, float visibilityDistance) = 0;
238 
244  virtual float visibilityDistanceAtMSLAltitude(float mslAltitude) const = 0;
245 
251  virtual void setObscurantAtMSLAltitude(float mslAltitude, VisibilityObscurant obscurant) = 0;
252 
258  virtual VisibilityObscurant obscurantAtMSLAltitude(float mslAltitude) const = 0;
259 
265  virtual void setCloudTypeAtMSLAltitude(float mslAltitude, CloudType cloudType) = 0;
266 
272  virtual CloudType cloudTypeAtMSLAltitude(float mslAltitude) const = 0;
273 
278  virtual void setSkyCoverageAtMSLAltitude(float mslAltitude, float skyCoverage) = 0;
279 
284  virtual float skyCoverageAtMSLAltitude(float mslAltitude) const = 0;
285 
287  virtual void setAmbientAirTemperature(float temperature) = 0;
289  virtual float ambientAirTemperature() const = 0;
291 
293  virtual void setAmbientAirPressure(float pressure) = 0;
295  virtual float ambientAirPressure() const = 0;
297 
300  virtual void setAirPressureAltitude(float altitude) = 0;
301  virtual float airPressureAltitude() const = 0;
303 
306  virtual void setAirTemperatureAltitude(float altitude) = 0;
307  virtual float airTemperatureAltitude() const = 0;
309 
312  virtual void setAirPressureAltitudeIsSeaLevel(bool seaLevel) = 0;
313  virtual bool airPressureAltitudeIsSeaLevel() const = 0;
315 
318  virtual void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel) = 0;
319  virtual bool airTemperatureAltitudeIsSeaLevel() const = 0;
321 
324  virtual void setSeaLevelWaterConcentration(float water) = 0;
325  virtual float seaLevelWaterConcentration() const = 0;
327 
329  virtual void setFogHeight(float height) = 0;
331  virtual float fogHeight() const = 0;
333 
335  virtual void setFogColor(const DtVector& color) = 0;
337  virtual DtVector fogColor() const = 0;
339 
341  virtual void setGroundFogColor(const DtVector& color) = 0;
343  virtual DtVector groundFogColor() const = 0;
345 
347  virtual void setSeaState(DtDouglasSeaState::Scale state) = 0;
350  virtual DtDouglasSeaState::Scale seaState() const = 0;
352 
354  virtual void setSeaStateDirection(float dir) = 0;
356  virtual float seaStateDirection() const = 0;
358 
360  virtual void setWindDrivenSeaState(bool enabled) = 0;
362  virtual bool windDrivenSeaState() const = 0;
364 
366  virtual void setSwellState(DtDouglasSwellState::Scale state) = 0;
369  virtual DtDouglasSwellState::Scale swellState() const = 0;
371 
373  virtual void setSwellStateDirection(float dir) = 0;
375  virtual float swellStateDirection() const = 0;
377 
379  virtual void setWindFetch(float distance) = 0;
381  virtual float windFetch() const = 0;
383 
385  virtual void setSeaChoppiness(float chop) = 0;
387  virtual float seaChoppiness() const = 0;
389 
392  virtual void setUnderwaterVisibilityEnabled(bool enabled) = 0;
393  virtual bool underwaterVisibilityEnabled() const = 0;
395 
397  virtual void setUnderwaterVisibility(float distance) = 0;
399  virtual float underwaterVisibility() const = 0;
401 
403  virtual void setWaterSurfaceTransparency(float normalizedValue) = 0;
405  virtual float waterSurfaceTransparency() const = 0;
407 
409  virtual void setSurgeDepth(float meters) = 0;
411  virtual float surgeDepth() const = 0;
413 
415  virtual void setDepthOffset(float meters) = 0;
417  virtual float depthOffset() const = 0;
419 
421  virtual void setAmbientWaterTemperature(float temperature) = 0;
423  virtual float ambientWaterTemperature() const = 0;
425 
427  virtual void setWaterCurrentSpeed(float speed) = 0;
429  virtual float waterCurrentSpeed() const = 0;
431 
433  virtual void setWaterCurrentDirection(float direction) = 0;
436  virtual float waterCurrentDirection() const = 0;
438 
440  virtual void setTidalOffset(float meters) = 0;
442  virtual float tidalOffset() const = 0;
444 
446  virtual void setTidalDirection(bool inOut) = 0;
448  virtual bool tidalDirection() const = 0;
450 
452  virtual void setThermoclineDepth(unsigned int layer, float depth) = 0;
454  virtual float thermoclineDepth(unsigned int layer) const = 0;
456 
458  virtual void setThermoclinePermeability(
460  unsigned int layer, float permeability) = 0;
461  virtual float thermoclinePermeability(unsigned int layer) const = 0;
463 
465  virtual void setGroundSnowAccumulation(float depth) = 0;
467  virtual float groundSnowAccumulation() const = 0;
469 
471  virtual void setRoadSnowAccumulation(float depth) = 0;
473  virtual float roadSnowAccumulation() const = 0;
475 
477  virtual void setSnowMinimumElevation(float elevation) = 0;
479  virtual float snowMinimumElevation() const = 0;
481 
485  virtual void setSnowElevationTransition(float elevation) = 0;
486  virtual float snowElevationTransition() const = 0;
488 
490  virtual void setGroundRainAccumulation(float depth) = 0;
492  virtual float groundRainAccumulation() const = 0;
494 
495  //Called from CTOR to load the default settings.
496  virtual void loadDefaults(bool loadOnlyFactorySettings = false) = 0;
497 
498  // Restores to backup up environment from startup default
499  virtual void restore() = 0;
500 
501  //Called to save the current settings as the default settings.
502  virtual void saveAsDefaults() = 0;
503 
505  virtual void exportSettings(const std::string& filename) = 0;
507  virtual void importSettings(const std::string& filename) = 0;
509 
510  protected:
511 
514 
516  virtual void slot_coordinateSystemChanged() = 0;
517 
519  virtual void slot_oceanLayerAdded(const DtOceanLayer& layer) = 0;
520 
522  virtual void slot_oceanLayerToBeDeleted(const DtOceanLayer& layer) = 0;
523 
525  virtual void slot_oceanLayerSeaLevelChanged(
526  const DtOceanLayer& layer, double seaLevel) = 0;
527 
529  virtual void slot_oceanLayerLodRangeChanged(
530  const DtOceanLayer& layer, int range) = 0;
531 
533  virtual void slot_surgeDepthChanged(double depth) = 0;
534 
536  virtual void slot_depthOffsetChanged(double offset) = 0;
538 
539  };
540 }
makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord DtElevationalConfigurationRecord
Definition: DtEnvironmentInterface.h:55
Definition: DtSkyObject.h:78
Definition: DtSkyObject.h:81
makArchives::VisibilityObscurant VisibilityObscurant
Definition: DtEnvironmentInterface.h:54
Definition: surface.h:71
static const std::string theRemoteEnvironmentName
The Environment Name used when listening to remote environment settings.
Definition: DtEnvironmentInterface.h:60
VisibilityObscurant
Definition: DtEnvironmentRecord.h:21
Contains makVrv::DtSkyObject class.
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:242
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:36
Definition: DtSkyObject.h:80
The declaration of the makVrv::DtCloudTypeMapper class.
DtCloudTypeMapper::CloudType CloudType
Definition: DtEnvironmentInterface.h:57
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:63
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 Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)