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;
320 virtual DtRwWindLevels windLevels(
const DtVector& localPosition)
const;
344 virtual void lineQueryAtmosphericState(
const DtVector& startPosition,
345 const DtVector& endPosition,
346 double minSegmentLength,
347 size_t maxSegmentCount,
348 std::vector<AtmosphericStateSegment>& atmosphericStateSegments)
const;
375 virtual void lineQueryCloudState(
const DtVector& startPosition,
376 const DtVector& endPosition,
377 std::vector<CloudStateSegment>& cloudStateSegments,
378 double tolerance = 5.0)
const;
381 virtual bool lightningPresent(
const DtVector& localPosition)
const;
389 virtual int blowingParticulateMatter(
const DtVector& localPosition)
const;
393 virtual double precipitationIntensity(
const DtVector& localPosition)
const;
394 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
396 virtual double snowAccumulationDepth(
const DtVector& localPosition)
const;
397 virtual double snowDepthOnRoads(
const DtVector& localPosition)
const;
398 virtual double rainAccumulationDepth(
const DtVector& localPosition)
const;
425 virtual void lineQueryPrecipitationState(
const DtVector& startPosition,
426 const DtVector& endPosition,
427 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
428 double tolerance = 5.0)
const;
436 virtual double illuminationFromSky(
const DtVector& localPosition)
const;
439 virtual double illuminationAtTime(
const DtVector& localPosition,
440 const double dateTime)
const;
447 virtual double underwaterVisibility(
const DtVector& localPosition)
const;
450 virtual double averageWaterVisibilityOnChord(
const DtChord& path)
const;
451 virtual double waterCurrentSpeed(
const DtVector& localPosition)
const;
452 virtual double waterCurrentDirection(
const DtVector& localPosition)
const;
453 virtual double waterTemperature(
const DtVector& localPosition)
const;
456 virtual double tidalOffset(
const DtVector& localPosition)
const;
458 virtual unsigned int swellState(
const DtVector& localPosition)
const;
459 virtual double swellDirection(
const DtVector& localPosition)
const;
460 virtual unsigned int seaState(
const DtVector& localPosition)
const;
462 virtual double seaDirection(
const DtVector& localPosition)
const;
463 virtual double choppiness(
const DtVector& localPosition)
const;
466 virtual double surgeDepth(
const DtVector& localPosition)
const;
468 virtual double depthOffset(
const DtVector& localPosition)
const;
470 virtual double windFetch(
const DtVector& localPosition)
const;
475 virtual double thermoclineLayer1Depth(
const DtVector& localPosition)
const;
476 virtual double thermoclineLayer1Permeability(
const DtVector& localPosition)
const;
477 virtual double thermoclineLayer2Depth(
const DtVector& localPosition)
const;
478 virtual double thermoclineLayer2Permeability(
const DtVector& localPosition)
const;
479 virtual double thermoclineLayer3Depth(
const DtVector& localPosition)
const;
480 virtual double thermoclineLayer3Permeability(
const DtVector& localPosition)
const;
481 virtual double thermoclineLayer4Depth(
const DtVector& localPosition)
const;
482 virtual double thermoclineLayer4Permeability(
const DtVector& localPosition)
const;
483 virtual double thermoclineLayer5Depth(
const DtVector& localPosition)
const;
484 virtual double thermoclineLayer5Permeability(
const DtVector& localPosition)
const;
496 std::vector<DtChord> segmentsIntersectingPrecipitationAreas(
const DtVector& startPosition,
497 const DtVector& endPosition,
498 const std::vector<DtSimObjectReference>& weatherObjects,
499 double tolerance)
const;
503 void setPrecipitationStateForWeatherObjectsSegments(
const std::vector<DtChord>& chordIntersectingSegments,
504 const std::vector<DtSimObjectReference>& weatherObjects,
505 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
506 std::vector<DtChord>& globalWeatherChordIntersectingSegments,
507 double tolerance)
const;
511 void setPrecipitationStateForGlobalWeatherSegments(
const DtVector& startPosition,
512 const std::vector<DtChord>& globalWeatherChordIntersectingSegments,
513 const std::vector<DtSimObjectReference>& weatherObjects,
514 std::vector<PrecipitationStateSegment>& precipitationStateSegments,
515 double tolerance)
const;
520 std::vector<DtChord> segmentsIntersectingCloudLayers(
const DtVector& startPosition,
521 const DtVector& endPosition,
522 const std::vector<DtSimObjectReference>& weatherObjects,
523 double tolerance)
const;
527 void setCloudStateForWeatherObjectsSegments(
const std::vector<DtChord>& chordIntersectingSegments,
528 const std::vector<DtSimObjectReference>& weatherObjects,
529 std::vector<CloudStateSegment>& cloudStateSegments,
530 std::vector<DtChord>& globalWeatherChordIntersectingSegments,
531 double tolerance)
const;
535 void setCloudStateForGlobalWeatherSegments(
const DtVector& startPosition,
536 const std::vector<DtChord>& globalWeatherChordIntersectingSegments,
537 const std::vector<DtSimObjectReference>& weatherObjects,
538 std::vector<CloudStateSegment>& cloudStateSegments,
539 double tolerance)
const;
544 bool chordIntersectsExtent(
const DtChord& chord,
546 DtPoint& intersectionEntryPoint,
547 DtPoint& intersectionExitPoint,
548 bool& chordPt0InExtent,
549 bool& chordPt1InExtent)
const;
557 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:559
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:489
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:569
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:96
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