VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtLocalEnvironmentalsControllerObject.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 
14 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtCloudLayer.h>
16 #include <vrvCore/DtUniqueID.h>
17 
19 
20 #include <matrix/vlVector.h>
21 
22 namespace makVrv
23 {
24  class DtCoordinateConverter;
25 
46  {
47  public:
48 
51 
54 
57 
60 
63 
67  virtual DtCloudLayerId addLayerToCloudCover(const DtCloudLayer& layer, const std::string& coverName);
68 
73  virtual void setZoneOrigin(double x, double y, double z);
74 
83  virtual void setZoneShape(double width, double length, double height, double cornerRadius);
84 
87  virtual void setAirTurbidity(float turbidity);
88 
91  virtual void setAmbientAirTemperature(float temperature);
92 
94  virtual void setAmbientAirPressure(float pressure);
95 
97  virtual void setAirTemperatureAltitude(float altitude);
98 
100  virtual void setAirPressureAltitude(float altitude);
101 
103  virtual void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel);
104 
106  virtual void setAirPressureAltitudeIsSeaLevel(bool seaLevel);
107 
109  virtual void setSeaLevelWaterConcentration(float water);
110 
112  virtual void setLightningPresent(bool lightningPresent);
113 
116  virtual void setPrecipitationType(unsigned int type);
117 
120  virtual void setPrecipitationIntensity(float intensity);
121 
126  virtual void setTimeOfDay(int hour, int minutes, double seconds);
127 
135  virtual void setDateAndTimeOfDay(int year, int month, int day,
136  int hour, int minutes, double seconds);
137 
142  virtual void setUseGlobalTimeZone(bool value);
143 
146  virtual void setTimeOfDayAdvancementSpeed(float speed);
147 
150  virtual void setFogHeight(float value);
151 
154  virtual void setFogColor(const DtVector& color);
155 
160  virtual void setFogColor(float red, float green, float blue);
161 
166  virtual void setFogColor(int red, int green, int blue);
167 
170  virtual void removeElevationalConfiguration(float baseMSLAltitude);
171 
180  virtual void updateOrAddElevationalConfiguration(float baseMSLAltitude,
181  float windSpeed, float windDirection,
182  float visibilityDistance, unsigned int obscurant,
183  int cloudType, float cloudDensity, float skyCoverage);
184 
187  virtual void setSwellState(int state);
188 
191  virtual void setSwellStateDirection(float value);
192 
195  virtual void setSeaState(int state);
196 
199  virtual void setSeaStateDirection(float value);
200 
204  virtual void setWindDrivenSeaStateEnabled(bool value);
205 
208  virtual void setWindFetch(float value);
209 
212  virtual void setSeaChoppiness(float value);
213 
216  virtual void setUnderwaterVisibility(float distance);
217 
220  virtual void setSurfaceTransparency(float value);
221 
224  virtual void setSurgeDepth(float value);
225 
228  virtual void setAmbientWaterTemperature(float temperature);
229 
232  virtual void setWaterCurrentSpeed(float speed);
233 
236  virtual void setWaterCurrentDirection(float direction);
237 
240  virtual void setTidalOffset(float meters);
241 
244  virtual void setTidalDirection(bool inOut);
245 
249  virtual void setThermoclineDepth(unsigned int layer, float value);
250 
254  virtual void setThermoclinePermeability(unsigned int layer, float value);
255 
258  virtual void setGroundSnowAccumulation(float depth);
259 
262  virtual void setRoadSnowAccumulation(float depth);
263 
266  virtual void setSnowMinimumElevation(float elevation);
267 
271  virtual void setSnowElevationTransition(float elevation);
272 
275  virtual void setGroundRainAccumulation(float depth);
276 
277  protected:
278 
282  virtual bool ensureWeatherAreaCreated();
283 
289  virtual void computeOriginBasis(DtVector& origin, DtVector& north, DtVector& east, DtVector& up);
290 
299  virtual void updateOrAddCloudForElevation(float baseMSLAltitude,
300  int cloudType, float cloudDensity, float skyCoverage,
301  float visibilityDistance);
302 
306  virtual void refreshCloudLayerThicknessIfNeeded();
307 
310  virtual void adjustWeatherAreaForClouds();
311 
314  virtual const float computeDensityFromVisibility(const float visibility) const;
315 
319  virtual const float computeCloudThickness(const float baseMSLAltitude) const;
320 
322  virtual void slot_coordinateSystemChanged();
323 
324  protected:
325 
327 
329  double myWidth;
330  double myLength;
331  double myHeight;
333 
336  {
338  , localPosition(0, 0, 0)
339  , baseMSLAltitude(0)
340  , cloudType(0)
341  , cloudDensity(0)
342  , skyCoverage(0)
343  , visibilityDistance(0)
344  , boundsScale(1)
345  {
346  // intentional noop
347  }
348 
355  float skyCoverage;
357  float boundsScale;
358  };
359 
362  {
363  public:
364  bool operator()(
367  };
368 
370  typedef std::vector<CloudLayerData*> CloudLayerSet;
371 
373 
374  unsigned int myPrecipitationType;
376 
378 
381  float myOvercast;
383  float myWindSpeed;
384 
386 
388 
390 
393  DtCoordinateConverter* myCoordinateConverter = nullptr;
394  };
395 }
396 
397 
398 
399 
double myHeight
Definition: DtLocalEnvironmentalsControllerObject.h:331
DtVector myFogColor
Definition: DtLocalEnvironmentalsControllerObject.h:379
double myLength
Definition: DtLocalEnvironmentalsControllerObject.h:330
int cloudType
Definition: DtLocalEnvironmentalsControllerObject.h:353
A structure used to store information about a cloud layer.
Definition: DtLocalEnvironmentalsControllerObject.h:335
unsigned int myPrecipitationType
Definition: DtLocalEnvironmentalsControllerObject.h:374
DtCoordinateConverter is the base class for &#39;local (cig) to geocentric&#39; converters.
Definition: DtCoordinateConverter.h:25
double myCornerRadius
Definition: DtLocalEnvironmentalsControllerObject.h:332
voidpf uLong int origin
Definition: ioapi.h:42
float myWindSpeed
Definition: DtLocalEnvironmentalsControllerObject.h:383
#define DtCloudLayerIdUndefined
Definition: DtCloudLayer.h:29
float visibilityDistance
Definition: DtLocalEnvironmentalsControllerObject.h:356
std::vector< CloudLayerData * > CloudLayerSet
This type defines a set of cloud layers.
Definition: DtLocalEnvironmentalsControllerObject.h:370
float myGroundRainAccumulation
Definition: DtLocalEnvironmentalsControllerObject.h:377
DtVector myOrigin
Definition: DtLocalEnvironmentalsControllerObject.h:328
CloudLayerData()
Definition: DtLocalEnvironmentalsControllerObject.h:337
bool myLightningEnabled
Definition: DtLocalEnvironmentalsControllerObject.h:385
float baseMSLAltitude
Definition: DtLocalEnvironmentalsControllerObject.h:352
DtVector localPosition
Definition: DtLocalEnvironmentalsControllerObject.h:351
A DtLocalEnvironmentalsControllerObject processes enviromental data for a localize weather area...
Definition: DtLocalEnvironmentalsControllerObject.h:45
DtSignalConnectionManager myConnections
Definition: DtLocalEnvironmentalsControllerObject.h:389
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...
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myWindDirection
Definition: DtLocalEnvironmentalsControllerObject.h:382
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Representation of a single cloud layer.
Definition: DtCloudLayer.h:34
DtUniqueID myWeatherAreaId
Definition: DtLocalEnvironmentalsControllerObject.h:387
DtDe & myDe
Definition: DtLocalEnvironmentalsControllerObject.h:326
Contains vrvCore::DtCloudLayerRecord declaration.
Functor for comparing cloud layers by altitude.
Definition: DtLocalEnvironmentalsControllerObject.h:361
Base class to provide boost signal/slot management.
float myVisibilityDistance
Definition: DtLocalEnvironmentalsControllerObject.h:380
CloudLayerSet myCloudLayerSet
Definition: DtLocalEnvironmentalsControllerObject.h:372
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
Contains makVrv::DtUniqueID type.
float myOvercast
Definition: DtLocalEnvironmentalsControllerObject.h:381
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:70
DtCloudLayerId layerId
Definition: DtLocalEnvironmentalsControllerObject.h:349
float boundsScale
Definition: DtLocalEnvironmentalsControllerObject.h:357
float myPrecipitationIntensity
Definition: DtLocalEnvironmentalsControllerObject.h:375
float skyCoverage
Definition: DtLocalEnvironmentalsControllerObject.h:355
float cloudDensity
Definition: DtLocalEnvironmentalsControllerObject.h:354
double myWidth
Definition: DtLocalEnvironmentalsControllerObject.h:329
DtCloudLayer cloudLayer
Definition: DtLocalEnvironmentalsControllerObject.h:350
Contains DLL export macros.

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)