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) 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.
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Functor for comparing cloud layers by altitude.
Definition: DtLocalEnvironmentalsControllerObject.h:361
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: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:72
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 Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)