14 #include <vlutil/vlString.h>
18 #include <matrix/vlVector.h>
22 #include <tbb/spin_mutex.h>
77 virtual bool globalEnvironmentSimulatedLocally()
const;
83 virtual bool startEnvironmentSimulationLocally();
113 bool* isGlobal = 0)
const;
118 bool* isGlobal = 0)
const;
124 virtual std::vector<DtSharedVrfObjectReference> weatherObjectsFor(
const DtChord& localChord)
const;
134 virtual std::vector<DtSharedVrfObjectReference> cloudLayersFor(
const DtChord& localChord)
const;
140 virtual std::vector<CloudStateSegment>
141 cloudLayerDescriptionsAt(
const DtVector& localPosition)
const;
151 virtual std::vector<DtSharedVrfObjectReference> windCorridorsFor(
const DtChord& localChord)
const;
161 virtual std::vector<DtSharedVrfObjectReference> airTurbulencesFor(
const DtChord& localChord)
const;
172 virtual double visualDetectionMinimumContrast()
const;
181 virtual double airTurbidity(
const DtVector&)
const;
184 virtual double airTemperature(
const DtVector&)
const;
187 virtual double airPressure(
const DtVector& localPosition )
const;
190 virtual double airTemperatureAltitude(
const DtVector& localPosition)
const;
193 virtual double airPressureAltitude(
const DtVector& localPosition)
const;
196 virtual bool airTemperatureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
199 virtual bool airPressureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
202 virtual double humidity(
const DtVector& localPosition)
const;
205 virtual double precipitationIntensity(
const DtVector&)
const;
209 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
215 virtual double windSpeed(
const DtVector&)
const;
218 virtual double windDirection(
const DtVector&)
const;
224 virtual bool lightningPresent(
const DtVector& localPosition)
const;
227 virtual double visibility(
const DtVector&)
const;
230 virtual int visibilityObscurant(
const DtVector&)
const;
237 virtual double visibility(
const DtChord&)
const;
240 virtual double underwaterVisibility(
const DtVector&)
const;
243 virtual double surfaceTransparency(
const DtVector&)
const;
246 virtual double waterCurrentSpeed(
const DtVector&)
const;
249 virtual double waterCurrentDirection(
const DtVector&)
const;
252 virtual double ambientWaterTemperature(
const DtVector&)
const;
255 virtual double tidalOffset(
const DtVector&)
const;
259 virtual bool tidalDirection(
const DtVector&)
const;
262 virtual unsigned int swellState(
const DtVector&)
const;
265 virtual double swellStateDirection(
const DtVector&)
const;
268 virtual unsigned int seaState(
const DtVector&)
const;
271 virtual double seaStateDirection(
const DtVector&)
const;
274 virtual double choppiness(
const DtVector&)
const;
277 virtual double surgeDepth(
const DtVector&)
const;
280 virtual double fogHeight(
const DtVector&)
const;
289 virtual double snowAccumulation(
const DtVector&)
const;
293 virtual double snowRoadAccumulation(
const DtVector&)
const;
296 virtual double rainAccumulation(
const DtVector&)
const;
300 virtual DtObjectType globalEnvironmentObjectType()
const;
308 virtual DtUUID initializeAndGetMetocWeatherService();
311 virtual void setMetocEnabled(
bool b);
313 virtual bool metocEnabled()
const;
318 virtual double thermoclineLayer1Depth(
const DtVector&)
const;
319 virtual double thermoclineLayer1Permeability(
const DtVector&)
const;
320 virtual double thermoclineLayer2Depth(
const DtVector&)
const;
321 virtual double thermoclineLayer2Permeability(
const DtVector&)
const;
322 virtual double thermoclineLayer3Depth(
const DtVector&)
const;
323 virtual double thermoclineLayer3Permeability(
const DtVector&)
const;
324 virtual double thermoclineLayer4Depth(
const DtVector&)
const;
325 virtual double thermoclineLayer4Permeability(
const DtVector&)
const;
326 virtual double thermoclineLayer5Depth(
const DtVector&)
const;
327 virtual double thermoclineLayer5Permeability(
const DtVector&)
const;
332 virtual bool windSpeedAndDirectionAtAltitude(
const DtVector&,
333 double altMSL,
double& windSpeed,
double& windDirection)
const;
335 virtual bool visibilityAndObscurantAtAltitude(
const DtVector&,
336 double altMSL,
double& visibility,
int& obscurant)
const;
345 virtual void setDateAndTimeOfDay(
double secondsPastMidnight);
348 virtual double timeOfDay()
const;
350 virtual double dateAndTimeOfDay()
const;
353 virtual void setTimeOfDayAdvancementSpeed(
double speed);
355 virtual double timeOfDayAdvancementSpeed()
const;
364 virtual double illumination(
const DtVector& localPosition)
const;
368 virtual double expectedIllumination(
const DtVector& localPosition,
double dateAndTime)
const;
387 virtual void computeSoilWeatherMobilityModifiers(
389 double& snowEffectFraction,
390 DtString& alternateSoil,
double& alternateSoilFraction,
391 double& tractionModifier)
const;
399 virtual double snowMinimumAltitude(
const DtVector&)
const;
406 virtual bool windDrivenSeaStateEnabled(
const DtVector&)
const;
412 virtual void setUseDayNightIlluminationModel(
bool);
413 virtual bool useDayNightIlluminationModel()
const;
419 virtual double normalizedPrecipitationRate()
const;
420 virtual void setNormalizedPrecipitationRate(
const double);
428 virtual bool reduceVisibilityForPrecipitation()
const;
429 virtual void setReduceVisibilityForPrecipitation(
const bool);
438 virtual DtString deepWaterSoilName()
const;
439 virtual DtString shallowWaterSoilName()
const;
440 virtual DtString waterySoilName()
const;
441 virtual DtString drySoilName()
const;
442 virtual DtString roadSoilName()
const;
443 virtual DtString snowSoilName()
const;
444 virtual DtString iceSoilName()
const;
445 virtual double deepSnowDepth()
const;
448 virtual double saturationWaterDepth()
const;
450 virtual double waterSlideDepth()
const;
452 virtual double waterSlideFactor()
const;
455 virtual double hardFreezeTemperature()
const;
461 virtual void createGlobalEnvironmentObject();
466 virtual int priority(
const DtUUID& weatherArea)
const;
467 virtual int priority(
const DtVector&)
const;
476 virtual double cloudAltitude(
const DtVector& localPosition)
const;
477 virtual double cloudThickness(
const DtVector& localPosition)
const;
478 virtual double cloudDensity(
const DtVector& localPosition)
const;
489 virtual void setAirTemperatureAltitudeIsSeaLevel(
bool seaLevel,
const DtUUID& weatherArea =
DtUUID::nullUUID());
490 virtual void setAirPressureAltitudeIsSeaLevel(
bool seaLevel,
const DtUUID& weatherArea =
DtUUID::nullUUID());
499 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
501 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
502 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
503 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
518 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
520 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
522 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
524 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
526 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
539 virtual void setDeepWaterSoilName(
const DtString&);
540 virtual void setShallowWaterSoilName(
const DtString&);
541 virtual void setDrySoilName(
const DtString&);
542 virtual void setWaterySoilName(
const DtString&);
543 virtual void setRoadSoilName(
const DtString&);
544 virtual void setSnowSoilName(
const DtString&);
545 virtual void setIceSoilName(
const DtString&);
546 virtual void setDeepSnowDepth(
const double);
547 virtual void setSaturationWaterDepth(
const double);
548 virtual void setWaterSlideDepth(
const double);
549 virtual void setWaterSlideFactor(
const double);
550 virtual void setHardFreezeTemperature(
const double);
554 static void objectAddedCallback(
const DtVrfObject*
object,
void* usr);
555 virtual void processObjectAdded(
const DtVrfObject*
object);
557 static void objectRemovedCallback(
const DtVrfObject*
object,
void* usr);
558 virtual void processObjectRemoved(
const DtVrfObject*
object);
565 static void changeWeatherPrioritiesCallback(
DtSimMessage* msg,
void* usr);
566 virtual void processChangeWeatherPriorities(
DtSimMessage* msg);
568 static void requestWeatherAtLocationCallback(
DtSimMessage* msg,
void* usr);
569 virtual void processRequestWeatherAtLocation(
DtSimMessage* msg);
571 static void physicalWorldParametersChangedCallback(
void* usr);
572 virtual void initializeIlluminationObjectsList();
575 virtual void initializeSoilCharacteristics();
579 virtual void initializeWeatherStateProvider();
583 virtual void initializeWeatherParameters();
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
DtString myIceSoilName
Name of "soil" that is ice.
Definition: environmentalStateManager.h:629
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtRwBoolean myReduceVisibilityForPrecipitation
This flag determines whether to degrade visibility due to precipitation, on top of the effect of the ...
Definition: environmentalStateManager.h:659
DtReal myWaterSlideFactor
Fraction [0-1] of traction retained on hard surface with water on it.
Definition: environmentalStateManager.h:642
std::map< DtObjectType, DtIlluminationObjectParameters > myIlluminationObjectTypes
Definition: environmentalStateManager.h:608
DtSimManager * mySimManager
Definition: environmentalStateManager.h:588
This class contains the functions that the VRF simulation uses to query the current state of the weat...
Definition: weatherStateProvider.h:183
DtEnvironmentalStateSetter * myEnvironmentalStateSetter
This is only for setting global weather – local weather will use local vrf objects.
Definition: environmentalStateManager.h:599
DtVrfTurbulenceLevel
placeholder. Final version is defined in vrfWeatherStateEnums.h
Definition: weatherStateProvider.h:24
Instances of DtIlluminationObjectParameters are used to specify the how much illumination is cast by ...
Definition: illuminationObjectParameters.h:21
DtString myShallowWaterSoilName
Name of soil that is considered shallow water.
Definition: environmentalStateManager.h:614
double myHardFreezeTemperature
Temperature at which shallow water is frozen enough to drive a vehicle on.
Definition: environmentalStateManager.h:646
DtUUID myMetocWeatherServiceUuid
Definition: environmentalStateManager.h:604
bool myFirstTick
Definition: environmentalStateManager.h:601
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:14
DtString myRoadSoilName
Name of soil that is paved road.
Definition: environmentalStateManager.h:623
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Definition: objectType.h:27
bool myCreatedMetocService
Definition: environmentalStateManager.h:603
static const DtUUID & nullUUID()
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Contains the enums for cloud layers.
double myDeepSnowDepth
Depth of snow required for full snow soil effect. Meters.
Definition: environmentalStateManager.h:632
File: simMsg.h.
Definition: simMessage.h:35
DtWeatherStateProvider * myWeatherStateProvider
The object used to get weather state.
Definition: environmentalStateManager.h:591
DtRwVrfObjectReferenceList myAirTurbulenceObjects
Definition: environmentalStateManager.h:596
double mySaturationWaterDepth
Depth of water accumulation before dry soil is changed completely to watery soil. ...
Definition: environmentalStateManager.h:636
A DtSimCommand subclass which specifies a change to the cloud layer settings for the specified cloud ...
Definition: changeCloudLayerCommand.h:25
DtReal myWaterSlideDepth
Depth of water on a hard surface that causes loss of normal traction.
Definition: environmentalStateManager.h:639
DtString myWaterySoilName
Name of soil that is considered watery soil.
Definition: environmentalStateManager.h:617
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:29
DtString myDeepWaterSoilName
Name of soil that is considered deep water.
Definition: environmentalStateManager.h:611
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtString myDrySoilName
Name of soil that is dry soil–not sand or gravel.
Definition: environmentalStateManager.h:620
DtString mySnowSoilName
Name of "soil" that is snow.
Definition: environmentalStateManager.h:626
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtBoost::shared_ptr< const DtManagedObjectList > DtManagedObjectListConstPtr
Typedef for a shared pointer to a const DtOrgViewManagedObjectList.
Definition: managedObjectList.h:31
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtRwVrfObjectReferenceList myWindCorridorObjects
Definition: environmentalStateManager.h:595
Handles the environmental state of the simulation.
Definition: environmentalStateManager.h:46
bool myMetocEnabled
This flag determines whether the net interfaces for Environmental Process objects will publish METOC ...
Definition: environmentalStateManager.h:663
Definition: rwWindLevels.h:17
If you use a list of object names to archive which objects are part of a controller (or any object) u...
Definition: vrfObjectReference.h:305
A DtSimCommand subclass which specifies a change to the time of day settings in the simulation engine...
Definition: changeTimeOfDayCommand.h:20
Abstract base class for classes that set new environmental state to the environmental state simulator...
Definition: environmentalStateSetter.h:29
DtManagedObjectListConstPtr myIlluminationObjects
Definition: environmentalStateManager.h:606
DtRwVrfObjectReferenceList myWeatherObjects
Definition: environmentalStateManager.h:594
DtSharedVrfObjectReference myGlobalEnvironmentObject
Definition: environmentalStateManager.h:593
double myNormalizedPrecipitationRate
The (rain) precipitation rate that corresponds to a value of 1.0 in a weather object or the return va...
Definition: environmentalStateManager.h:650