21 #include <matrix/vlVector.h>
233 virtual std::vector<CloudStateSegment> cloudLayers(
234 const DtVector& localPosition)
const;
239 virtual double airVisibility(
const DtVector& localPosition)
const;
243 virtual double visibility(
const DtVector& localPosition)
const;
246 virtual int visibilityObscurant(
const DtVector& localPosition)
const;
257 virtual double averageVisibilityOnChord(
const DtChord& path)
const;
261 virtual double airTemperatureAtAltitude(
const double mslTemperature,
262 const double altitude)
const;
268 virtual double airTemperature(
const DtVector& localPosition)
const;
273 virtual double mslTemperatureFromAirTemperatureAtAltitude(
const double airTemperature,
274 const double altitude)
const;
278 virtual double airPressureAtAltitude(
const double mslPressure,
279 const double altitude,
const double mslTemperature)
const;
286 virtual double airPressure(
const DtVector& localPosition)
const;
291 virtual double mslPressureFromAirPressureAtAltitude(
const double airPressure,
292 const double altitude,
const double mslTemperature)
const;
295 virtual double airTemperatureAltitude(
const DtVector& localPosition)
const;
298 virtual double airPressureAltitude(
const DtVector& localPosition)
const;
301 virtual double humidity(
const DtVector& localPosition)
const;
306 virtual double relativeHumidity(
const DtVector& localPosition)
const;
309 virtual double windSpeed(
const DtVector& localPosition)
const;
311 virtual double windDirection(
const DtVector& localPosition)
const;
314 virtual bool windSpeedAndDirectionAtAltitude(
const DtVector& localPosition,
double altMSL,
double& windSpeed,
double& windDiection)
const;
317 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;
370 virtual void lineQueryCloudState(
const DtVector& startPosition,
372 std::vector<CloudStateSegment>& cloudStateSegments,
373 double tolerance = 5.0)
const;
376 virtual bool lightningPresent(
const DtVector& localPosition)
const;
387 virtual double precipitationIntensity(
const DtVector& localPosition)
const;
388 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
390 virtual double snowAccumulationDepth(
const DtVector& localPosition)
const;
391 virtual double snowDepthOnRoads(
const DtVector& localPosition)
const;
392 virtual double rainAccumulationDepth(
const DtVector& localPosition)
const;
414 virtual void lineQueryPrecipitationState(
const DtVector& startPosition,
416 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
417 double tolerance = 5.0)
const;
425 virtual double illuminationFromSky(
const DtVector& localPosition)
const;
428 virtual double illuminationAtTime(
const DtVector& localPosition,
429 const double dateTime)
const;
436 virtual double underwaterVisibility(
const DtVector& localPosition)
const;
439 virtual double averageWaterVisibilityOnChord(
const DtChord& path)
const;
440 virtual double waterCurrentSpeed(
const DtVector& localPosition)
const;
441 virtual double waterCurrentDirection(
const DtVector& localPosition)
const;
442 virtual double waterTemperature(
const DtVector& localPosition)
const;
445 virtual double tidalOffset(
const DtVector& localPosition)
const;
447 virtual unsigned int swellState(
const DtVector& localPosition)
const;
448 virtual double swellDirection(
const DtVector& localPosition)
const;
449 virtual unsigned int seaState(
const DtVector& localPosition)
const;
451 virtual double seaDirection(
const DtVector& localPosition)
const;
452 virtual double choppiness(
const DtVector& localPosition)
const;
455 virtual double surgeDepth(
const DtVector& localPosition)
const;
460 virtual double thermoclineLayer1Depth(
const DtVector& localPosition)
const;
461 virtual double thermoclineLayer1Permeability(
const DtVector& localPosition)
const;
462 virtual double thermoclineLayer2Depth(
const DtVector& localPosition)
const;
463 virtual double thermoclineLayer2Permeability(
const DtVector& localPosition)
const;
464 virtual double thermoclineLayer3Depth(
const DtVector& localPosition)
const;
465 virtual double thermoclineLayer3Permeability(
const DtVector& localPosition)
const;
466 virtual double thermoclineLayer4Depth(
const DtVector& localPosition)
const;
467 virtual double thermoclineLayer4Permeability(
const DtVector& localPosition)
const;
468 virtual double thermoclineLayer5Depth(
const DtVector& localPosition)
const;
469 virtual double thermoclineLayer5Permeability(
const DtVector& localPosition)
const;
481 std::vector<DtChord> segmentsIntersectingPrecipitationAreas(
const DtVector& startPosition,
483 const std::vector<DtSimObjectReference>& weatherObjects)
const;
487 void setPrecipitationStateForWeatherObjectsSegments(
const std::vector<DtChord>& chordIntersectingSegments,
488 const std::vector<DtSimObjectReference>& weatherObjects,
489 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
490 std::vector<DtChord>& globalWeatherChordIntersectingSegments,
491 double tolerance)
const;
495 void setPrecipitationStateForGlobalWeatherSegments(
const DtVector& startPosition,
496 const std::vector<DtChord>& globalWeatherChordIntersectingSegments,
497 const std::vector<DtSimObjectReference>& weatherObjects,
498 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
499 double tolerance)
const;
504 std::vector<DtChord> segmentsIntersectingCloudLayers(
const DtVector& startPosition,
506 const std::vector<DtSimObjectReference>& weatherObjects)
const;
510 void setCloudStateForWeatherObjectsSegments(
const std::vector<DtChord>& chordIntersectingSegments,
511 const std::vector<DtSimObjectReference>& weatherObjects,
512 std::vector<CloudStateSegment>& cloudStateSegments,
513 std::vector<DtChord>& globalWeatherChordIntersectingSegments,
514 double tolerance)
const;
518 void setCloudStateForGlobalWeatherSegments(
const DtVector& startPosition,
519 const std::vector<DtChord>& globalWeatherChordIntersectingSegments,
520 const std::vector<DtSimObjectReference>& weatherObjects,
521 std::vector<CloudStateSegment>& cloudStateSegments,
522 double tolerance)
const;
527 bool chordIntersectsExtent(
const DtChord& chord,
529 DtPoint& intersectionEntryPoint,
530 DtPoint& intersectionExitPoint,
531 bool& chordPt0InExtent,
532 bool& chordPt1InExtent)
const;
540 virtual double defaultCloudVisibility()
const;
double distance()
Definition: weatherStateProvider.h:173
CloudStateSegment()
Definition: weatherStateProvider.h:102
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtVrfTurbulenceLevel airTurbulence()
Definition: weatherStateProvider.h:70
DtVector startPosition()
Definition: weatherStateProvider.h:170
double myPrecipitationIntensity
Definition: weatherStateProvider.h:178
Definition: weatherStateProvider.h:31
void setPrecipitationType(const DtVrfWeatherPrecipitationType &precipitationType)
Definition: weatherStateProvider.h:165
void setDistance(double distance)
Definition: weatherStateProvider.h:174
bool airTemperatureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:58
Definition: vrfCloudLayerStateEnums.h:16
double distance() const
Definition: weatherStateProvider.h:131
void setWindSpeed(double windSpeed)
Definition: weatherStateProvider.h:68
This class contains the functions that the VRF simulation uses to query the current state of the weat...
Definition: weatherStateProvider.h:186
DtVector myStartPosition
MSL of top of layer.
Definition: weatherStateProvider.h:144
void setAirTurbulence(const DtVrfTurbulenceLevel &airTurbulence)
Definition: weatherStateProvider.h:71
DtVrfWeatherPrecipitationType myPrecipitationType
Definition: weatherStateProvider.h:177
double myCoverFraction
Definition: weatherStateProvider.h:138
bool airPressureAltitudeIsSeaLevel()
Definition: weatherStateProvider.h:55
void setHumidity(double humidity)
Definition: weatherStateProvider.h:62
double myWindSpeed
Definition: weatherStateProvider.h:88
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:171
DtVrfTurbulenceLevel
placeholder. Final version is defined in vrfWeatherStateEnums.h
Definition: weatherStateProvider.h:27
double myVisibility
0-1, portion of sky covered. By default, coverFraction is multiplied by defaul...
Definition: weatherStateProvider.h:141
The CloudStateSegment structure contains the cloud layer data along a partial line section...
Definition: weatherStateProvider.h:99
CloudLayerCloudType cloudType() const
Definition: weatherStateProvider.h:113
bool myAirTemperatureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:85
double airTemperature()
Definition: weatherStateProvider.h:46
The DtExtent represents an axis-aligned 3d bounding box.
Definition: extent.h:43
void setBottomAltitude(double bottomAltitude)
Definition: weatherStateProvider.h:123
void setAirPressureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:56
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:14
double bottomAltitude() const
Definition: weatherStateProvider.h:122
void setWindDirection(double windDirection)
Definition: weatherStateProvider.h:65
PrecipitationStateSegment()
Definition: weatherStateProvider.h:156
const DtSimulationServices * mySimulationServices
Definition: weatherStateProvider.h:542
double myDistance
Definition: weatherStateProvider.h:180
double myTopAltitude
MSL of bottom of layer.
Definition: weatherStateProvider.h:143
void setLocalPosition(const DtVector &localPosition)
Definition: weatherStateProvider.h:77
double myAirTemperatureAltitude
Definition: weatherStateProvider.h:83
void setAirPressure(double airPressure)
Definition: weatherStateProvider.h:44
double myAirTemperature
Definition: weatherStateProvider.h:81
DtVector myLocalPosition
Definition: weatherStateProvider.h:91
void setAirVisibility(double airVisibility)
Definition: weatherStateProvider.h:74
#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:153
Contains the enums for cloud layers.
const DtSimulationServices * simulationServices() const
Definition: weatherStateProvider.h:474
double airPressure()
Definition: weatherStateProvider.h:43
double myAirPressure
Definition: weatherStateProvider.h:80
double precipitationIntensity()
Definition: weatherStateProvider.h:167
double coverFraction() const
Definition: weatherStateProvider.h:116
DtVector localPosition()
Definition: weatherStateProvider.h:76
DtVector startPosition() const
Definition: weatherStateProvider.h:128
void setCloudType(const CloudLayerCloudType &cloudType)
Definition: weatherStateProvider.h:114
void setDistance(double distance)
Definition: weatherStateProvider.h:132
The AtmosphericStateSegment structure contains the atmospheric data taken at a certain location...
Definition: weatherStateProvider.h:40
double myAirVisibility
Definition: weatherStateProvider.h:90
Definition: weatherStateProvider.h:33
double topAltitude() const
Definition: weatherStateProvider.h:125
double myKoschmiederConstant
Constants for physical calculations that are computed from other constants, and cached to avoid reco...
Definition: weatherStateProvider.h:552
DtVector myStartPosition
Definition: weatherStateProvider.h:179
void setAirTemperatureAltitude(double airTemperatureAltitude)
Definition: weatherStateProvider.h:53
Definition: weatherStateProvider.h:30
double airTemperatureAltitude()
Definition: weatherStateProvider.h:52
double myAirPressureAltitude
Definition: weatherStateProvider.h:82
double airPressureAltitude()
Definition: weatherStateProvider.h:49
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
Definition: vrfWeatherStateEnums.h:15
void setAirTemperature(double airTemperature)
Definition: weatherStateProvider.h:47
void setCoverFraction(double coverFraction)
Definition: weatherStateProvider.h:117
void setAirPressureAltitude(double airPressureAltitude)
Definition: weatherStateProvider.h:50
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:137
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
bool myAirPressureAltitudeIsSeaLevel
Definition: weatherStateProvider.h:84
DtVrfWeatherPrecipitationType precipitationType()
Definition: weatherStateProvider.h:164
double airVisibility()
Definition: weatherStateProvider.h:73
void setPrecipitationIntensity(double precipitationIntensity)
Definition: weatherStateProvider.h:168
Contains the DtSimObjectReference class declaration.
Definition: weatherStateProvider.h:29
DtVrfTurbulenceLevel myAirTurbulence
Definition: weatherStateProvider.h:89
void setVisibility(double visibility)
Definition: weatherStateProvider.h:120
double humidity()
Definition: weatherStateProvider.h:61
double myHumidity
Definition: weatherStateProvider.h:86
double windDirection()
Definition: weatherStateProvider.h:64
void setTopAltitude(double topAltitude)
Definition: weatherStateProvider.h:126
Definition: rwWindLevels.h:17
void setAirTemperatureAltitudeIsSeaLevel(bool seaLevel)
Definition: weatherStateProvider.h:59
double myDistance
Definition: weatherStateProvider.h:145
double myWindDirection
Definition: weatherStateProvider.h:87
Definition: weatherStateProvider.h:32
double myBottomAltitude
Meters.
Definition: weatherStateProvider.h:142
void setStartPosition(const DtVector &startPosition)
Definition: weatherStateProvider.h:129
double visibility() const
Definition: weatherStateProvider.h:119
double windSpeed()
Definition: weatherStateProvider.h:67