14 #include <vlutil/vlString.h>
18 #include <matrix/vlVector.h>
22 #include <tbb/spin_mutex.h>
90 virtual bool globalEnvironmentSimulatedLocally()
const;
96 virtual bool startEnvironmentSimulationLocally();
126 bool* isGlobal = 0)
const;
131 bool* isGlobal = 0)
const;
137 virtual std::vector<DtSimObjectReference> weatherObjectsFor(
const DtChord& localChord)
const;
147 virtual std::vector<DtSimObjectReference> cloudLayersFor(
const DtChord& localChord)
const;
153 virtual std::vector<CloudStateSegment>
154 cloudLayerDescriptionsAt(
const DtVector& localPosition)
const;
164 virtual std::vector<DtSimObjectReference> windCorridorsFor(
const DtChord& localChord)
const;
174 virtual std::vector<DtSimObjectReference> airTurbulencesFor(
const DtChord& localChord)
const;
182 virtual double visualDetectionMinimumContrast()
const;
191 virtual double airTurbidity(
const DtVector&)
const;
194 virtual double airTemperature(
const DtVector&)
const;
197 virtual double airPressure(
const DtVector& localPosition )
const;
200 virtual double airTemperatureAltitude(
const DtVector& localPosition)
const;
203 virtual double airPressureAltitude(
const DtVector& localPosition)
const;
206 virtual bool airTemperatureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
209 virtual bool airPressureAltitudeIsSeaLevel(
const DtVector& localPosition)
const;
212 virtual double humidity(
const DtVector& localPosition)
const;
215 virtual double precipitationIntensity(
const DtVector&)
const;
219 virtual double averagePrecipitationIntensity(
const DtChord&)
const;
225 virtual double windSpeed(
const DtVector&)
const;
228 virtual double windDirection(
const DtVector&)
const;
234 virtual bool lightningPresent(
const DtVector& localPosition)
const;
237 virtual double visibility(
const DtVector&)
const;
240 virtual int visibilityObscurant(
const DtVector&)
const;
247 virtual double visibility(
const DtChord&)
const;
250 virtual double underwaterVisibility(
const DtVector&)
const;
253 virtual double surfaceTransparency(
const DtVector&)
const;
256 virtual double waterCurrentSpeed(
const DtVector&)
const;
259 virtual double waterCurrentDirection(
const DtVector&)
const;
262 virtual double ambientWaterTemperature(
const DtVector&)
const;
265 virtual double tidalOffset(
const DtVector&)
const;
269 virtual bool tidalDirection(
const DtVector&)
const;
272 virtual unsigned int swellState(
const DtVector&)
const;
275 virtual double swellStateDirection(
const DtVector&)
const;
278 virtual unsigned int seaState(
const DtVector&)
const;
281 virtual double seaStateDirection(
const DtVector&)
const;
284 virtual double choppiness(
const DtVector&)
const;
287 virtual double surgeDepth(
const DtVector&)
const;
290 virtual double fogHeight(
const DtVector&)
const;
299 virtual double snowAccumulation(
const DtVector&)
const;
303 virtual double snowRoadAccumulation(
const DtVector&)
const;
306 virtual double rainAccumulation(
const DtVector&)
const;
310 virtual DtObjectType globalEnvironmentObjectType()
const;
318 virtual DtUUID initializeAndGetMetocWeatherService();
321 virtual void setMetocEnabled(
bool b);
323 virtual bool metocEnabled()
const;
328 virtual double thermoclineLayer1Depth(
const DtVector&)
const;
329 virtual double thermoclineLayer1Permeability(
const DtVector&)
const;
330 virtual double thermoclineLayer2Depth(
const DtVector&)
const;
331 virtual double thermoclineLayer2Permeability(
const DtVector&)
const;
332 virtual double thermoclineLayer3Depth(
const DtVector&)
const;
333 virtual double thermoclineLayer3Permeability(
const DtVector&)
const;
334 virtual double thermoclineLayer4Depth(
const DtVector&)
const;
335 virtual double thermoclineLayer4Permeability(
const DtVector&)
const;
336 virtual double thermoclineLayer5Depth(
const DtVector&)
const;
337 virtual double thermoclineLayer5Permeability(
const DtVector&)
const;
341 virtual bool windSpeedAndDirectionAtAltitude(
const DtVector&,
342 double altMSL,
double& windSpeed,
double& windDirection)
const;
344 virtual bool visibilityAndObscurantAtAltitude(
const DtVector&,
345 double altMSL,
double& visibility,
int& obscurant)
const;
354 virtual void setDateAndTimeOfDay(
double secondsPastMidnight);
357 virtual double timeOfDay()
const;
359 virtual double dateAndTimeOfDay()
const;
362 virtual void setTimeOfDayAdvancementSpeed(
double speed);
364 virtual double timeOfDayAdvancementSpeed()
const;
373 virtual double illumination(
const DtVector& localPosition)
const;
377 virtual double expectedIllumination(
const DtVector& localPosition,
double dateAndTime)
const;
396 virtual void computeSoilWeatherMobilityModifiers(
398 double& snowEffectFraction,
399 DtString& alternateSoil,
double& alternateSoilFraction,
400 double& tractionModifier)
const;
408 virtual double snowMinimumAltitude(
const DtVector&)
const;
415 virtual bool windDrivenSeaStateEnabled(
const DtVector&)
const;
421 virtual void setUseDayNightIlluminationModel(
bool);
422 virtual bool useDayNightIlluminationModel()
const;
428 virtual double normalizedPrecipitationRate()
const;
429 virtual void setNormalizedPrecipitationRate(
const double);
437 virtual bool reduceVisibilityForPrecipitation()
const;
438 virtual void setReduceVisibilityForPrecipitation(
const bool);
454 virtual DtString deepWaterSoilName()
const;
455 virtual DtString shallowWaterSoilName()
const;
456 virtual DtString waterySoilName()
const;
457 virtual DtString drySoilName()
const;
458 virtual DtString roadSoilName()
const;
459 virtual DtString snowSoilName()
const;
460 virtual DtString iceSoilName()
const;
461 virtual double deepSnowDepth()
const;
464 virtual double saturationWaterDepth()
const;
466 virtual double waterSlideDepth()
const;
468 virtual double waterSlideFactor()
const;
471 virtual double hardFreezeTemperature()
const;
477 virtual int priority(
const DtUUID& weatherArea)
const;
478 virtual int priority(
const DtVector&)
const;
487 virtual double cloudAltitude(
const DtVector& localPosition)
const;
488 virtual double cloudThickness(
const DtVector& localPosition)
const;
489 virtual double cloudDensity(
const DtVector& localPosition)
const;
501 virtual void setAirTemperatureAltitudeIsSeaLevel(
bool seaLevel,
const DtUUID& weatherArea =
DtUUID::nullUUID());
502 virtual void setAirPressureAltitudeIsSeaLevel(
bool seaLevel,
const DtUUID& weatherArea =
DtUUID::nullUUID());
511 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
513 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
514 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
515 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
530 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
532 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
534 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
536 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
538 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
551 virtual void setDeepWaterSoilName(
const DtString&);
552 virtual void setShallowWaterSoilName(
const DtString&);
553 virtual void setDrySoilName(
const DtString&);
554 virtual void setWaterySoilName(
const DtString&);
555 virtual void setRoadSoilName(
const DtString&);
556 virtual void setSnowSoilName(
const DtString&);
557 virtual void setIceSoilName(
const DtString&);
558 virtual void setDeepSnowDepth(
const double);
559 virtual void setSaturationWaterDepth(
const double);
560 virtual void setWaterSlideDepth(
const double);
561 virtual void setWaterSlideFactor(
const double);
562 virtual void setHardFreezeTemperature(
const double);
574 static void changeWeatherPrioritiesCallback(
DtSimMessage* msg,
void* usr);
575 virtual void processChangeWeatherPriorities(
DtSimMessage* msg);
577 static void requestWeatherAtLocationCallback(
DtSimMessage* msg,
void* usr);
578 virtual void processRequestWeatherAtLocation(
DtSimMessage* msg);
580 static void physicalWorldParametersChangedCallback(
void* usr);
581 virtual void initializeIlluminationObjectsList();
584 virtual void initializeSoilCharacteristics();
588 virtual void initializeWeatherStateProvider();
592 virtual void initializeWeatherParameters();
595 virtual void setupGlobalEnvironmentObject(
DtLocalObject* lo);
596 virtual void setupGlobalEnvironmentObject(
const DtUUID&);
597 static void globalObjectAddedCallback(
const DtLocalObject*,
void* usr);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
DtString myIceSoilName
Name of "soil" that is ice.
Definition: environmentalStateManager.h:640
NOTE: This entire class is deprecated, in favor of Dt3dChord.
Definition: chord.h:40
class DtLocalObjectManager:
Definition: localObjectManager.h:151
DtRwBoolean myReduceVisibilityForPrecipitation
This flag determines whether to degrade visibility due to precipitation, on top of the effect of the ...
Definition: environmentalStateManager.h:670
DtSimulationServices * simulationServices() const
Definition: environmentalStateManager.h:443
DtReal myWaterSlideFactor
Fraction [0-1] of traction retained on hard surface with water on it.
Definition: environmentalStateManager.h:653
std::map< DtObjectType, DtIlluminationObjectParameters > myIlluminationObjectTypes
Definition: environmentalStateManager.h:619
This class contains the functions that the VRF simulation uses to query the current state of the weat...
Definition: weatherStateProvider.h:185
DtEnvironmentalStateSetter * myEnvironmentalStateSetter
This is only for setting global weather – local weather will use local vrf objects.
Definition: environmentalStateManager.h:612
DtVrfTurbulenceLevel
placeholder. Final version is defined in vrfWeatherStateEnums.h
Definition: weatherStateProvider.h:26
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Instances of DtIlluminationObjectParameters are used to specify the how much illumination is cast by ...
Definition: illuminationObjectParameters.h:21
DtSimObjectReferenceList myAirTurbulenceObjects
Definition: environmentalStateManager.h:609
DtString myShallowWaterSoilName
Name of soil that is considered shallow water.
Definition: environmentalStateManager.h:625
double myHardFreezeTemperature
Temperature at which shallow water is frozen enough to drive a vehicle on. Degrees C...
Definition: environmentalStateManager.h:657
Contains the DtUUID class declaration.
DtUUID myMetocWeatherServiceUuid
Definition: environmentalStateManager.h:615
boost::signals2::scoped_connection mySimObjectAddedConnection
Definition: environmentalStateManager.h:672
bool myFirstTick
Definition: environmentalStateManager.h:675
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:14
DtString myRoadSoilName
Name of soil that is paved road.
Definition: environmentalStateManager.h:634
DtLocalObjectManager * myObjectManager
Definition: environmentalStateManager.h:676
DtSimulationServices * mySimulationServices
Definition: environmentalStateManager.h:600
DtSimObjectReferenceList myWeatherObjects
Definition: environmentalStateManager.h:607
Definition: objectType.h:27
bool myCreatedMetocService
Definition: environmentalStateManager.h:614
static const DtUUID & nullUUID()
boost::signals2::scoped_connection mySimObjectDeletedConnection
Definition: environmentalStateManager.h:673
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Contains the enums for cloud layers.
DtSimObjectReferenceList myWindCorridorObjects
Definition: environmentalStateManager.h:608
double myDeepSnowDepth
Depth of snow required for full snow soil effect. Meters.
Definition: environmentalStateManager.h:643
File: simMsg.h.
Definition: simMessage.h:35
DtWeatherStateProvider * myWeatherStateProvider
The object used to get weather state.
Definition: environmentalStateManager.h:603
double mySaturationWaterDepth
Depth of water accumulation before dry soil is changed completely to watery soil. Meters...
Definition: environmentalStateManager.h:647
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:650
DtString myWaterySoilName
Name of soil that is considered watery soil.
Definition: environmentalStateManager.h:628
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:29
DtSimObjectReference myGlobalEnvironmentObject
Definition: environmentalStateManager.h:606
DtString myDeepWaterSoilName
Name of soil that is considered deep water.
Definition: environmentalStateManager.h:622
This is a convenience list that will add DtSimObjectReference objects and modify the list as objects ...
Definition: simObjectReferenceList.h:22
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtString myDrySoilName
Name of soil that is dry soil–not sand or gravel.
Definition: environmentalStateManager.h:631
DtString mySnowSoilName
Name of "soil" that is snow.
Definition: environmentalStateManager.h:637
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. These lists are used within VR-Fo...
Definition: managedObjectList.h:35
Maintains the environmental state of the simulation, such as time of day, illumination, and various aspects of the weather. All access to this data from any behavior or dynamics model should be made to this class.
Definition: environmentalStateManager.h:59
bool myMetocEnabled
This flag determines whether the net interfaces for Environmental Process objects will publish METOC ...
Definition: environmentalStateManager.h:680
Definition: rwWindLevels.h:17
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:617
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:661
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
DtLocalObject * myNextFrameGlobalEnvironmentObject
Definition: environmentalStateManager.h:605