20 #include <matrix/vlVector.h>
232 virtual std::vector<CloudStateSegment> cloudLayers(
233 const DtVector& localPosition)
const;
238 virtual double airVisibility(
const DtVector& localPosition)
const;
242 virtual double visibility(
const DtVector& localPosition)
const;
245 virtual int visibilityObscurant(
const DtVector& localPosition)
const;
256 virtual double averageVisibilityOnChord(
const DtChord& path)
const;
260 virtual double airTemperatureAtAltitude(
const double mslTemperature,
261 const double altitude)
const;
267 virtual double airTemperature(
const DtVector& localPosition)
const;
272 virtual double mslTemperatureFromAirTemperatureAtAltitude(
const double airTemperature,
273 const double altitude)
const;
277 virtual double airPressureAtAltitude(
const double mslPressure,
278 const double altitude,
const double mslTemperature)
const;
285 virtual double airPressure(
const DtVector& localPosition)
const;
290 virtual double mslPressureFromAirPressureAtAltitude(
const double airPressure,
291 const double altitude,
const double mslTemperature)
const;
294 virtual double airTemperatureAltitude(
const DtVector& localPosition)
const;
297 virtual double airPressureAltitude(
const DtVector& localPosition)
const;
300 virtual bool airTemperatureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
303 virtual bool airPressureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
306 virtual double humidity(
const DtVector& localPosition)
const;
311 virtual double relativeHumidity(
const DtVector& localPosition)
const;
314 virtual double windSpeed(
const DtVector& localPosition)
const;
316 virtual double windDirection(
const DtVector& localPosition)
const;
319 virtual bool windSpeedAndDirectionAtAltitude(
const DtVector& localPosition,
double altMSL,
double& windSpeed,
double& windDiection)
const;
322 virtual bool visibilityAndObscurantAtAltitude(
const DtVector& localPosition,
double altMSL,
double& visibility,
int& obscurant)
const;
346 virtual void lineQueryAtmosphericState(
const DtVector& startPosition,
348 double minSegmentLength,
349 size_t maxSegmentCount,
350 std::vector<AtmosphericStateSegment>& atmosphericStateSegments)
const;
369 virtual void lineQueryCloudState(
const DtVector& startPosition,
371 std::vector<CloudStateSegment>& cloudStateSegments,
double tolerance = 5.0)
const;
374 virtual bool lightningPresent(
const DtVector& localPosition)
const;
385 virtual double precipitationIntensity(
const DtVector& localPosition)
const;
386 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
388 virtual double snowAccumulationDepth(
const DtVector& localPosition)
const;
389 virtual double snowDepthOnRoads(
const DtVector& localPosition)
const;
390 virtual double rainAccumulationDepth(
const DtVector& localPosition)
const;
409 virtual void lineQueryPrecipitationState(
const DtVector& startPosition,
411 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
double tolerance = 5.0)
const;
419 virtual double illuminationFromSky(
const DtVector& localPosition)
const;
422 virtual double illuminationAtTime(
const DtVector& localPosition,
423 const double dateTime)
const;
430 virtual double underwaterVisibility(
const DtVector& localPosition)
const;
433 virtual double averageWaterVisibilityOnChord(
const DtChord& path)
const;
434 virtual double waterCurrentSpeed(
const DtVector& localPosition)
const;
435 virtual double waterCurrentDirection(
const DtVector& localPosition)
const;
436 virtual double waterTemperature(
const DtVector& localPosition)
const;
439 virtual double tidalOffset(
const DtVector& localPosition)
const;
441 virtual bool tidalDirection(
const DtVector& localPosition)
const;
443 virtual unsigned int swellState(
const DtVector& localPosition)
const;
444 virtual double swellDirection(
const DtVector& localPosition)
const;
445 virtual unsigned int seaState(
const DtVector& localPosition)
const;
447 virtual double seaDirection(
const DtVector& localPosition)
const;
448 virtual double choppiness(
const DtVector& localPosition)
const;
451 virtual double surgeDepth(
const DtVector& localPosition)
const;
456 virtual double thermoclineLayer1Depth(
const DtVector& localPosition)
const;
457 virtual double thermoclineLayer1Permeability(
const DtVector& localPosition)
const;
458 virtual double thermoclineLayer2Depth(
const DtVector& localPosition)
const;
459 virtual double thermoclineLayer2Permeability(
const DtVector& localPosition)
const;
460 virtual double thermoclineLayer3Depth(
const DtVector& localPosition)
const;
461 virtual double thermoclineLayer3Permeability(
const DtVector& localPosition)
const;
462 virtual double thermoclineLayer4Depth(
const DtVector& localPosition)
const;
463 virtual double thermoclineLayer4Permeability(
const DtVector& localPosition)
const;
464 virtual double thermoclineLayer5Depth(
const DtVector& localPosition)
const;
465 virtual double thermoclineLayer5Permeability(
const DtVector& localPosition)
const;
477 std::vector<DtPoint> chordIntersectsPointsPrecipitationAreas(
const DtVector& startPosition,
479 const std::vector<DtSimObjectReference>& weatherObjects)
const;
483 void setChordPrecipitationStateWeatherObjects(
const std::vector<DtPoint>& chordIntersectingPoints,
484 const std::vector<DtSimObjectReference>& weatherObjects,
485 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
486 std::vector<DtChord>& globalWeatherChordSegments,
double tolerance = 5.0)
const;
490 void setChordPrecipitationStateGlobalWeather(
const DtPoint& startPosition,
491 const std::vector<DtChord>& globalWeatherChordSegments,
492 const std::vector<DtSimObjectReference>& weatherObjects,
493 std::vector<PrecipitationStateSegment>& precipitationStateSegments)
const;
498 std::vector<DtPoint> chordIntersectsPointsCloudLayers(
const DtVector& startPosition,
500 const std::vector<DtSimObjectReference>& weatherObjects)
const;
504 void setChordCloudStateWeatherObjects(
const std::vector<DtPoint>& chordIntersectingPoints,
505 const std::vector<DtSimObjectReference>& weatherObjects,
506 std::vector<CloudStateSegment>& cloudStateSegments,
507 std::vector<DtChord>& globalWeatherChordSegments,
508 double tolerance = 5.0)
const;
512 void setChordCloudStateGlobalWeather(
const DtPoint& startPosition,
513 const std::vector<DtChord>& globalWeatherChordSegments,
514 const std::vector<DtSimObjectReference>& weatherObjects,
515 std::vector<CloudStateSegment>& cloudStateSegments)
const;
520 bool chordIntersectsExtent(
const DtChord& chord,
523 double& intersectionLengt)
const;
527 bool chordIntersectsExtent(
const DtChord& chord,
529 DtPoint& intersectionEntryPoint,
530 DtPoint& intersectionExitPoint)
const;
538 virtual double defaultCloudVisibility()
const;
double distance()
Definition: weatherStateProvider.h:172
CloudStateSegment()
Definition: weatherStateProvider.h:101
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtVrfTurbulenceLevel airTurbulence()
Definition: weatherStateProvider.h:69
DtVector startPosition()
Definition: weatherStateProvider.h:169
double myPrecipitationIntensity
Definition: weatherStateProvider.h:177
Definition: weatherStateProvider.h:30
void setPrecipitationType(const DtVrfWeatherPrecipitationType &precipitationType)
Definition: weatherStateProvider.h:164
void setDistance(double distance)
Definition: weatherStateProvider.h:173
bool airTemperatureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:57
Definition: vrfCloudLayerStateEnums.h:16
double distance() const
Definition: weatherStateProvider.h:130
void setWindSpeed(double windSpeed)
Definition: weatherStateProvider.h:67
This class contains the functions that the VRF simulation uses to query the current state of the weat...
Definition: weatherStateProvider.h:185
DtVector myStartPosition
MSL of top of layer.
Definition: weatherStateProvider.h:143
void setAirTurbulence(const DtVrfTurbulenceLevel &airTurbulence)
Definition: weatherStateProvider.h:70
DtVrfWeatherPrecipitationType myPrecipitationType
Definition: weatherStateProvider.h:176
double myCoverFraction
Definition: weatherStateProvider.h:137
bool airPressureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:54
void setHumidity(double humidity)
Definition: weatherStateProvider.h:61
double myWindSpeed
Definition: weatherStateProvider.h:87
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:170
DtVrfTurbulenceLevel
placeholder. Final version is defined in vrfWeatherStateEnums.h
Definition: weatherStateProvider.h:26
double myVisibility
0-1, portion of sky covered. By default, coverFraction is multiplied by defaul...
Definition: weatherStateProvider.h:140
The CloudStateSegment structure contains the cloud layer data along a partial line section...
Definition: weatherStateProvider.h:98
CloudLayerCloudType cloudType() const
Definition: weatherStateProvider.h:112
bool myAirTemperatureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:84
double airTemperature()
Definition: weatherStateProvider.h:45
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
void setBottomAltitude(double bottomAltitude)
Definition: weatherStateProvider.h:122
void setAirPressureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:55
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:14
double bottomAltitude() const
Definition: weatherStateProvider.h:121
void setWindDirection(double windDirection)
Definition: weatherStateProvider.h:64
PrecipitationStateSegment()
Definition: weatherStateProvider.h:155
const DtSimulationServices * mySimulationServices
Definition: weatherStateProvider.h:540
double myDistance
Definition: weatherStateProvider.h:179
double myTopAltitude
MSL of bottom of layer.
Definition: weatherStateProvider.h:142
void setLocalPosition(const DtVector &localPosition)
Definition: weatherStateProvider.h:76
double myAirTemperatureAltitude
Definition: weatherStateProvider.h:82
void setAirPressure(double airPressure)
Definition: weatherStateProvider.h:43
double myAirTemperature
Definition: weatherStateProvider.h:80
DtVector myLocalPosition
Definition: weatherStateProvider.h:90
void setAirVisibility(double airVisibility)
Definition: weatherStateProvider.h:73
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
The PrecipitationStateSegment structure contains the precipitation data along a partial line section...
Definition: weatherStateProvider.h:152
Contains the enums for cloud layers.
const DtSimulationServices * simulationServices() const
Definition: weatherStateProvider.h:470
double airPressure()
Definition: weatherStateProvider.h:42
double myAirPressure
Definition: weatherStateProvider.h:79
double precipitationIntensity()
Definition: weatherStateProvider.h:166
double coverFraction() const
Definition: weatherStateProvider.h:115
DtVector localPosition()
Definition: weatherStateProvider.h:75
DtVector startPosition() const
Definition: weatherStateProvider.h:127
void setCloudType(const CloudLayerCloudType &cloudType)
Definition: weatherStateProvider.h:113
void setDistance(double distance)
Definition: weatherStateProvider.h:131
The AtmosphericStateSegment structure contains the atmospheric data taken at a certain location...
Definition: weatherStateProvider.h:39
double myAirVisibility
Definition: weatherStateProvider.h:89
Definition: weatherStateProvider.h:32
double topAltitude() const
Definition: weatherStateProvider.h:124
double myKoschmiederConstant
Constants for physical calculations that are computed from other constants, and cached to avoid reco...
Definition: weatherStateProvider.h:550
DtVector myStartPosition
Definition: weatherStateProvider.h:178
void setAirTemperatureAltitude(double airTemperatureAltitude)
Definition: weatherStateProvider.h:52
Definition: weatherStateProvider.h:29
double airTemperatureAltitude()
Definition: weatherStateProvider.h:51
double myAirPressureAltitude
Definition: weatherStateProvider.h:81
double airPressureAltitude()
Definition: weatherStateProvider.h:48
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
Definition: vrfWeatherStateEnums.h:15
void setAirTemperature(double airTemperature)
Definition: weatherStateProvider.h:46
void setCoverFraction(double coverFraction)
Definition: weatherStateProvider.h:116
void setAirPressureAltitude(double airPressureAltitude)
Definition: weatherStateProvider.h:49
A DtChord is a finite line segment in 3-space, represented by two points. Data derived from the two e...
CloudLayerCloudType myCloudType
the cloud state data is a copy of cloudLayerDescription could be refactored to reference the cloudLay...
Definition: weatherStateProvider.h:136
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myAirPressureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:83
DtVrfWeatherPrecipitationType precipitationType()
Definition: weatherStateProvider.h:163
double airVisibility()
Definition: weatherStateProvider.h:72
void setPrecipitationIntensity(double precipitationIntensity)
Definition: weatherStateProvider.h:167
Contains the DtSimObjectReference class declaration.
Definition: weatherStateProvider.h:28
DtVrfTurbulenceLevel myAirTurbulence
Definition: weatherStateProvider.h:88
void setVisibility(double visibility)
Definition: weatherStateProvider.h:119
double humidity()
Definition: weatherStateProvider.h:60
double myHumidity
Definition: weatherStateProvider.h:85
double windDirection()
Definition: weatherStateProvider.h:63
void setTopAltitude(double topAltitude)
Definition: weatherStateProvider.h:125
void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:58
double myDistance
Definition: weatherStateProvider.h:144
double myWindDirection
Definition: weatherStateProvider.h:86
Definition: weatherStateProvider.h:31
double myBottomAltitude
Meters.
Definition: weatherStateProvider.h:141
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:128
double visibility() const
Definition: weatherStateProvider.h:118
double windSpeed()
Definition: weatherStateProvider.h:66