15 #include <matrix/vlVector.h>
230 virtual std::vector<CloudStateSegment> cloudLayers(
231 const DtVector& localPosition)
const;
236 virtual double airVisibility(
const DtVector& localPosition)
const;
240 virtual double visibility(
const DtVector& localPosition)
const;
243 virtual int visibilityObscurant(
const DtVector& localPosition)
const;
254 virtual double averageVisibilityOnChord(
const DtChord& path)
const;
258 virtual double airTemperatureAtAltitude(
const double mslTemperature,
259 const double altitude)
const;
265 virtual double airTemperature(
const DtVector& localPosition)
const;
270 virtual double mslTemperatureFromAirTemperatureAtAltitude(
const double airTemperature,
271 const double altitude)
const;
275 virtual double airPressureAtAltitude(
const double mslPressure,
276 const double altitude,
const double mslTemperature)
const;
283 virtual double airPressure(
const DtVector& localPosition)
const;
288 virtual double mslPressureFromAirPressureAtAltitude(
const double airPressure,
289 const double altitude,
const double mslTemperature)
const;
292 virtual double airTemperatureAltitude(
const DtVector& localPosition)
const;
295 virtual double airPressureAltitude(
const DtVector& localPosition)
const;
298 virtual bool airTemperatureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
301 virtual bool airPressureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
304 virtual double humidity(
const DtVector& localPosition)
const;
309 virtual double relativeHumidity(
const DtVector& localPosition)
const;
312 virtual double windSpeed(
const DtVector& localPosition)
const;
314 virtual double windDirection(
const DtVector& localPosition)
const;
317 virtual bool windSpeedAndDirectionAtAltitude(
const DtVector& localPosition,
double altMSL,
double& windSpeed,
double& windDiection)
const;
320 virtual bool visibilityAndObscurantAtAltitude(
const DtVector& localPosition,
double altMSL,
double& visibility,
int& obscurant)
const;
344 virtual void lineQueryAtmosphericState(
const DtVector& startPosition,
346 double minSegmentLength,
347 size_t maxSegmentCount,
348 std::vector<AtmosphericStateSegment>& atmosphericStateSegments)
const;
367 virtual void lineQueryCloudState(
const DtVector& startPosition,
369 std::vector<CloudStateSegment>& cloudStateSegments,
double tolerance = 5.0)
const;
372 virtual bool lightningPresent(
const DtVector& localPosition)
const;
383 virtual double precipitationIntensity(
const DtVector& localPosition)
const;
384 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
386 virtual double snowAccumulationDepth(
const DtVector& localPosition)
const;
387 virtual double snowDepthOnRoads(
const DtVector& localPosition)
const;
388 virtual double rainAccumulationDepth(
const DtVector& localPosition)
const;
407 virtual void lineQueryPrecipitationState(
const DtVector& startPosition,
409 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
double tolerance = 5.0)
const;
417 virtual double illuminationFromSky(
const DtVector& localPosition)
const;
420 virtual double illuminationAtTime(
const DtVector& localPosition,
421 const double dateTime)
const;
428 virtual double underwaterVisibility(
const DtVector& localPosition)
const;
431 virtual double averageWaterVisibilityOnChord(
const DtChord& path)
const;
432 virtual double waterCurrentSpeed(
const DtVector& localPosition)
const;
433 virtual double waterCurrentDirection(
const DtVector& localPosition)
const;
434 virtual double waterTemperature(
const DtVector& localPosition)
const;
437 virtual double tidalOffset(
const DtVector& localPosition)
const;
439 virtual bool tidalDirection(
const DtVector& localPosition)
const;
441 virtual unsigned int swellState(
const DtVector& localPosition)
const;
442 virtual double swellDirection(
const DtVector& localPosition)
const;
443 virtual unsigned int seaState(
const DtVector& localPosition)
const;
445 virtual double seaDirection(
const DtVector& localPosition)
const;
446 virtual double choppiness(
const DtVector& localPosition)
const;
449 virtual double surgeDepth(
const DtVector& localPosition)
const;
454 virtual double thermoclineLayer1Depth(
const DtVector& localPosition)
const;
455 virtual double thermoclineLayer1Permeability(
const DtVector& localPosition)
const;
456 virtual double thermoclineLayer2Depth(
const DtVector& localPosition)
const;
457 virtual double thermoclineLayer2Permeability(
const DtVector& localPosition)
const;
458 virtual double thermoclineLayer3Depth(
const DtVector& localPosition)
const;
459 virtual double thermoclineLayer3Permeability(
const DtVector& localPosition)
const;
460 virtual double thermoclineLayer4Depth(
const DtVector& localPosition)
const;
461 virtual double thermoclineLayer4Permeability(
const DtVector& localPosition)
const;
462 virtual double thermoclineLayer5Depth(
const DtVector& localPosition)
const;
463 virtual double thermoclineLayer5Permeability(
const DtVector& localPosition)
const;
473 std::vector<DtPoint> chordIntersectsPointsPrecipitationAreas(
const DtVector& startPosition,
475 const std::vector<DtSharedVrfObjectReference>& weatherObjects)
const;
479 void setChordPrecipitationStateWeatherObjects(
const std::vector<DtPoint>& chordIntersectingPoints,
480 const std::vector<DtSharedVrfObjectReference>& weatherObjects,
481 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
482 std::vector<DtChord>& globalWeatherChordSegments,
double tolerance = 5.0)
const;
486 void setChordPrecipitationStateGlobalWeather(
const DtPoint& startPosition,
487 const std::vector<DtChord>& globalWeatherChordSegments,
488 const std::vector<DtSharedVrfObjectReference>& weatherObjects,
489 std::vector<PrecipitationStateSegment>& precipitationStateSegments)
const;
494 std::vector<DtPoint> chordIntersectsPointsCloudLayers(
const DtVector& startPosition,
496 const std::vector<DtSharedVrfObjectReference>& weatherObjects)
const;
500 void setChordCloudStateWeatherObjects(
const std::vector<DtPoint>& chordIntersectingPoints,
501 const std::vector<DtSharedVrfObjectReference>& weatherObjects,
502 std::vector<CloudStateSegment>& cloudStateSegments,
503 std::vector<DtChord>& globalWeatherChordSegments,
504 double tolerance = 5.0)
const;
508 void setChordCloudStateGlobalWeather(
const DtPoint& startPosition,
509 const std::vector<DtChord>& globalWeatherChordSegments,
510 const std::vector<DtSharedVrfObjectReference>& weatherObjects,
511 std::vector<CloudStateSegment>& cloudStateSegments)
const;
516 bool chordIntersectsExtent(
const DtChord& chord,
519 double& intersectionLengt)
const;
523 bool chordIntersectsExtent(
const DtChord& chord,
525 DtPoint& intersectionEntryPoint,
526 DtPoint& intersectionExitPoint)
const;
534 virtual double defaultCloudVisibility()
const;
double distance()
Definition: weatherStateProvider.h:170
CloudStateSegment()
Definition: weatherStateProvider.h:99
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtVrfTurbulenceLevel airTurbulence()
Definition: weatherStateProvider.h:67
DtVector startPosition()
Definition: weatherStateProvider.h:167
double myPrecipitationIntensity
Definition: weatherStateProvider.h:175
Definition: weatherStateProvider.h:28
void setPrecipitationType(const DtVrfWeatherPrecipitationType &precipitationType)
Definition: weatherStateProvider.h:162
void setDistance(double distance)
Definition: weatherStateProvider.h:171
bool airTemperatureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:55
Definition: vrfCloudLayerStateEnums.h:16
double distance() const
Definition: weatherStateProvider.h:128
void setWindSpeed(double windSpeed)
Definition: weatherStateProvider.h:65
This class contains the functions that the VRF simulation uses to query the current state of the weat...
Definition: weatherStateProvider.h:183
DtVector myStartPosition
MSL of top of layer.
Definition: weatherStateProvider.h:141
void setAirTurbulence(const DtVrfTurbulenceLevel &airTurbulence)
Definition: weatherStateProvider.h:68
DtVrfWeatherPrecipitationType myPrecipitationType
Definition: weatherStateProvider.h:174
double myCoverFraction
Definition: weatherStateProvider.h:135
bool airPressureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:52
void setHumidity(double humidity)
Definition: weatherStateProvider.h:59
double myWindSpeed
Definition: weatherStateProvider.h:85
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:168
DtVrfTurbulenceLevel
placeholder. Final version is defined in vrfWeatherStateEnums.h
Definition: weatherStateProvider.h:24
double myVisibility
0-1, portion of sky covered.
Definition: weatherStateProvider.h:138
The CloudStateSegment structure contains the cloud layer data along a partial line section...
Definition: weatherStateProvider.h:96
CloudLayerCloudType cloudType() const
Definition: weatherStateProvider.h:110
bool myAirTemperatureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:82
double airTemperature()
Definition: weatherStateProvider.h:43
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
void setBottomAltitude(double bottomAltitude)
Definition: weatherStateProvider.h:120
void setAirPressureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:53
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:14
double bottomAltitude() const
Definition: weatherStateProvider.h:119
void setWindDirection(double windDirection)
Definition: weatherStateProvider.h:62
const DtSimManager * mySimManager
Definition: weatherStateProvider.h:536
PrecipitationStateSegment()
Definition: weatherStateProvider.h:153
double myDistance
Definition: weatherStateProvider.h:177
double myTopAltitude
MSL of bottom of layer.
Definition: weatherStateProvider.h:140
void setLocalPosition(const DtVector &localPosition)
Definition: weatherStateProvider.h:74
double myAirTemperatureAltitude
Definition: weatherStateProvider.h:80
void setAirPressure(double airPressure)
Definition: weatherStateProvider.h:41
double myAirTemperature
Definition: weatherStateProvider.h:78
DtVector myLocalPosition
Definition: weatherStateProvider.h:88
void setAirVisibility(double airVisibility)
Definition: weatherStateProvider.h:71
#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:150
Contains the enums for cloud layers.
double airPressure()
Definition: weatherStateProvider.h:40
double myAirPressure
Definition: weatherStateProvider.h:77
double precipitationIntensity()
Definition: weatherStateProvider.h:164
double coverFraction() const
Definition: weatherStateProvider.h:113
DtVector localPosition()
Definition: weatherStateProvider.h:73
DtVector startPosition() const
Definition: weatherStateProvider.h:125
void setCloudType(const CloudLayerCloudType &cloudType)
Definition: weatherStateProvider.h:111
void setDistance(double distance)
Definition: weatherStateProvider.h:129
The AtmosphericStateSegment structure contains the atmospheric data taken at a certain location...
Definition: weatherStateProvider.h:37
double myAirVisibility
Definition: weatherStateProvider.h:87
Definition: weatherStateProvider.h:30
double topAltitude() const
Definition: weatherStateProvider.h:122
double myKoschmiederConstant
Constants for physical calculations that are computed from other constants, and cached to avoid reco...
Definition: weatherStateProvider.h:546
DtVector myStartPosition
Definition: weatherStateProvider.h:176
void setAirTemperatureAltitude(double airTemperatureAltitude)
Definition: weatherStateProvider.h:50
Definition: weatherStateProvider.h:27
double airTemperatureAltitude()
Definition: weatherStateProvider.h:49
double myAirPressureAltitude
Definition: weatherStateProvider.h:79
double airPressureAltitude()
Definition: weatherStateProvider.h:46
Definition: vrfWeatherStateEnums.h:15
void setAirTemperature(double airTemperature)
Definition: weatherStateProvider.h:44
void setCoverFraction(double coverFraction)
Definition: weatherStateProvider.h:114
void setAirPressureAltitude(double airPressureAltitude)
Definition: weatherStateProvider.h:47
A DtChord is a finite line segment in 3-space, represented by two points.
CloudLayerCloudType myCloudType
the cloud state data is a copy of cloudLayerDescription could be refactored to reference the cloudLay...
Definition: weatherStateProvider.h:134
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myAirPressureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:81
DtVrfWeatherPrecipitationType precipitationType()
Definition: weatherStateProvider.h:161
double airVisibility()
Definition: weatherStateProvider.h:70
void setPrecipitationIntensity(double precipitationIntensity)
Definition: weatherStateProvider.h:165
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
Definition: weatherStateProvider.h:26
DtVrfTurbulenceLevel myAirTurbulence
Definition: weatherStateProvider.h:86
void setVisibility(double visibility)
Definition: weatherStateProvider.h:117
double humidity()
Definition: weatherStateProvider.h:58
double myHumidity
Definition: weatherStateProvider.h:83
double windDirection()
Definition: weatherStateProvider.h:61
void setTopAltitude(double topAltitude)
Definition: weatherStateProvider.h:123
void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:56
double myDistance
Definition: weatherStateProvider.h:142
double myWindDirection
Definition: weatherStateProvider.h:84
Definition: weatherStateProvider.h:29
double myBottomAltitude
Meters.
Definition: weatherStateProvider.h:139
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:126
double visibility() const
Definition: weatherStateProvider.h:116
double windSpeed()
Definition: weatherStateProvider.h:64