VR-Forces 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) 2025 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 
42  {
43  public:
44 
47 
50 
53 
56 
59 
63  virtual DtCloudLayerId addLayerToCloudCover(const DtCloudLayer& layer, const std::string& coverName);
64 
69  virtual void setZoneOrigin(double x, double y, double z);
70 
79  virtual void setZoneShape(double width, double length, double height, double cornerRadius);
80 
83  virtual void setAirTurbidity(float turbidity);
84 
87  virtual void setAmbientAirTemperature(float temperature);
88 
90  virtual void setAmbientAirPressure(float pressure);
91 
93  virtual void setAirTemperatureAltitude(float altitude);
94 
96  virtual void setAirPressureAltitude(float altitude);
97 
99  virtual void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel);
100 
102  virtual void setAirPressureAltitudeIsSeaLevel(bool seaLevel);
103 
105  virtual void setSeaLevelWaterConcentration(float water);
106 
108  virtual void setLightningPresent(bool lightningPresent);
109 
112  virtual void setBlowingParticulateMatter(unsigned int type);
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 
294  virtual int mapBlowingParticulateMatterToCloudType(unsigned int type) const;
295 
304  virtual void updateOrAddCloudForElevation(float baseMSLAltitude,
305  int cloudType, float cloudDensity, float skyCoverage,
306  float visibilityDistance);
307 
309  virtual bool hasCloud(float baseMSLAltitude, int cloudType, float cloudDensity,
310  float skyCoverage, float visibilityDistance) const;
311 
313  virtual void removeAllCloudsAtElevation(float baseMSLAltitude);
314 
318  virtual void refreshCloudLayerThicknessIfNeeded();
319 
322  virtual void adjustWeatherAreaForClouds();
323 
326  virtual const float computeDensityFromVisibility(const float visibility) const;
327 
331  virtual const float computeCloudThickness(const float baseMSLAltitude) const;
332 
334  virtual void slot_coordinateSystemChanged();
335 
336  protected:
337 
339 
340  DtVector myOrigin;
341  double myWidth;
342  double myLength;
343  double myHeight;
345 
348  {
350  , localPosition(0, 0, 0)
351  , baseMSLAltitude(0)
352  , cloudType(0)
353  , cloudDensity(0)
354  , skyCoverage(0)
355  , visibilityDistance(0)
356  , boundsScale(1)
357  {
358  // intentional noop
359  }
360 
363  DtVector localPosition;
367  float skyCoverage;
369  float boundsScale;
370  };
371 
374  {
375  public:
376  bool operator()(
379  };
380 
382  typedef std::vector<CloudLayerData*> CloudLayerSet;
383 
385 
386  unsigned int myPrecipitationType;
388 
390 
391  DtVector myFogColor;
393  float myOvercast;
395  float myWindSpeed;
396 
399 
401 
403 
406  DtCoordinateConverter* myCoordinateConverter = nullptr;
407  };
408 }
409 
410 
411 
412 
double myHeight
Definition: DtLocalEnvironmentalsControllerObject.h:343
DtVector myFogColor
Definition: DtLocalEnvironmentalsControllerObject.h:391
double myLength
Definition: DtLocalEnvironmentalsControllerObject.h:342
int cloudType
Definition: DtLocalEnvironmentalsControllerObject.h:365
A structure used to store information about a cloud layer.
Definition: DtLocalEnvironmentalsControllerObject.h:347
unsigned int myPrecipitationType
Definition: DtLocalEnvironmentalsControllerObject.h:386
DtCoordinateConverter is the base class for &#39;local (cig) to geocentric&#39; converters.
Definition: DtCoordinateConverter.h:25
double myCornerRadius
Definition: DtLocalEnvironmentalsControllerObject.h:344
unsigned int myBlowingParticulateMatter
Definition: DtLocalEnvironmentalsControllerObject.h:398
voidpf uLong int origin
Definition: ioapi.h:42
float myWindSpeed
Definition: DtLocalEnvironmentalsControllerObject.h:395
#define DtCloudLayerIdUndefined
Definition: DtCloudLayer.h:29
float visibilityDistance
Definition: DtLocalEnvironmentalsControllerObject.h:368
std::vector< CloudLayerData * > CloudLayerSet
This type defines a set of cloud layers.
Definition: DtLocalEnvironmentalsControllerObject.h:382
float myGroundRainAccumulation
Definition: DtLocalEnvironmentalsControllerObject.h:389
DtVector myOrigin
Definition: DtLocalEnvironmentalsControllerObject.h:340
CloudLayerData()
Definition: DtLocalEnvironmentalsControllerObject.h:349
bool myLightningEnabled
Definition: DtLocalEnvironmentalsControllerObject.h:397
float baseMSLAltitude
Definition: DtLocalEnvironmentalsControllerObject.h:364
DtVector localPosition
Definition: DtLocalEnvironmentalsControllerObject.h:363
A DtLocalEnvironmentalsControllerObject processes enviromental data for a localize weather area...
Definition: DtLocalEnvironmentalsControllerObject.h:41
DtSignalConnectionManager myConnections
Definition: DtLocalEnvironmentalsControllerObject.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...
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
float myWindDirection
Definition: DtLocalEnvironmentalsControllerObject.h:394
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:400
DtDe & myDe
Definition: DtLocalEnvironmentalsControllerObject.h:338
Contains vrvCore::DtCloudLayerRecord declaration.
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Functor for comparing cloud layers by altitude.
Definition: DtLocalEnvironmentalsControllerObject.h:373
Base class to provide boost signal/slot management.
DT_DLL_VRVCORE double length(const makVrv::DtCoordinateSystem &, const std::vector< DtVector > &vertices)
Returns the total distance of a segmented line defined by the provided vector of vertices. Coordinates are in local database coordinates. The coordinate system is used to convert between the local database coordinates and geocentric. All distance is in 2D – the Z value is ignored.
float myVisibilityDistance
Definition: DtLocalEnvironmentalsControllerObject.h:392
CloudLayerSet myCloudLayerSet
Definition: DtLocalEnvironmentalsControllerObject.h:384
long long DtCloudLayerId
Definition: DtCloudLayer.h:26
Contains makVrv::DtUniqueID type.
float myOvercast
Definition: DtLocalEnvironmentalsControllerObject.h:393
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:76
DtCloudLayerId layerId
Definition: DtLocalEnvironmentalsControllerObject.h:361
float boundsScale
Definition: DtLocalEnvironmentalsControllerObject.h:369
float myPrecipitationIntensity
Definition: DtLocalEnvironmentalsControllerObject.h:387
float skyCoverage
Definition: DtLocalEnvironmentalsControllerObject.h:367
float cloudDensity
Definition: DtLocalEnvironmentalsControllerObject.h:366
double myWidth
Definition: DtLocalEnvironmentalsControllerObject.h:341
DtCloudLayer cloudLayer
Definition: DtLocalEnvironmentalsControllerObject.h:362
Contains DLL export macros.

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)