14 #include <vlutil/vlString.h>
18 #include <matrix/vlVector.h>
68 virtual bool globalEnvironmentSimulatedLocally()
const;
74 virtual bool startEnvironmentSimulationLocally();
78 bool* isGlobal = 0)
const;
83 bool* isGlobal = 0)
const;
89 virtual std::vector<DtSharedVrfObjectReference> weatherObjectsFor(
const DtChord& localChord)
const;
93 bool* isGlobal = 0)
const;
105 virtual std::vector<DtSharedVrfObjectReference> cloudLayersFor(
const DtChord& localChord)
const;
108 virtual std::vector<DtSharedVrfObjectReference> cloudLayers()
const;
114 virtual void setCloudAltitude(
double,
const DtUUID& cloudLayer);
115 virtual double cloudAltitude(
const DtUUID& cloudLayer)
const;
116 virtual double cloudAltitude(
const DtVector& cloudLayer)
const;
118 virtual void setCloudThickness(
double,
const DtUUID& cloudLayer);
119 virtual double cloudThickness(
const DtUUID& cloudLayer)
const;
120 virtual double cloudThickness(
const DtVector& cloudLayer)
const;
122 virtual void setCornerRadius(
double,
const DtUUID& cloudLayer);
123 virtual double cornerRadius(
const DtUUID& cloudLayer)
const;
124 virtual double cornerRadius(
const DtVector& cloudLayer)
const;
126 virtual void setCloudDensity(
double,
const DtUUID& cloudLayer);
127 virtual double cloudDensity(
const DtUUID& cloudLayer)
const;
128 virtual double cloudDensity(
const DtVector& cloudLayer)
const;
130 virtual void setCloudBox(
const DtVector& center,
double width,
double length,
const DtUUID& cloudLayer);
131 virtual void cloudBox(
const DtUUID& cloudLayer,
DtVector& center,
double& width,
double& length)
const;
132 virtual void cloudBox(
const DtVector& cloudLayer,
DtVector& center,
double& width,
double& length)
const;
144 virtual double airTurbidity(
const DtUUID& weatherArea)
const;
145 virtual double airTurbidity(
const DtVector&)
const;
151 virtual double ambientAirTemperature(
const DtUUID& weatherArea)
const;
152 virtual double ambientAirTemperature(
const DtVector&)
const;
153 virtual double ambientAirTemperature(
const DtVector&,
double defaultMslTemperature)
const;
164 virtual double temperatureAtAltitude(
double altitude,
165 const double defaultMslTemperature = 15.04)
const;
178 virtual double pressureAtAltitude(
180 const double temperatureAtAltitudeInCelcius,
181 const double defaultMslPressure = 0.7600)
const;
194 virtual double precipitationIntensity(
const DtUUID& weatherArea)
const;
195 virtual double precipitationIntensity(
const DtVector&)
const;
201 virtual double precipitationIntensity(
const DtChord&)
const;
214 virtual double windSpeed(
const DtUUID& weatherArea)
const;
215 virtual double windSpeed(
const DtVector&)
const;
221 virtual double windDirection(
const DtUUID& weatherArea)
const;
222 virtual double windDirection(
const DtVector&)
const;
228 virtual double visibility(
const DtUUID& weatherArea)
const;
229 virtual double visibility(
const DtVector&)
const;
234 virtual double visibility(
const DtChord&)
const;
239 virtual double illumination(
const DtVector& localPosition)
const;
244 virtual double expectedIllumination(
const DtVector& localPosition,
double dateAndTime)
const;
253 virtual void setDateAndTimeOfDay(
double secondsPastMidnight);
255 virtual double timeOfDay()
const;
256 virtual double dateAndTimeOfDay()
const;
259 virtual void setTimeOfDayAdvancementSpeed(
double speed);
261 virtual double timeOfDayAdvancementSpeed()
const;
266 virtual int priority(
const DtUUID& weatherArea)
const;
267 virtual int priority(
const DtVector&)
const;
272 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
273 virtual double underwaterVisibility(
const DtUUID& weatherArea)
const;
274 virtual double underwaterVisibility(
const DtVector&)
const;
280 virtual double surfaceTransparency(
const DtUUID& weatherArea)
const;
281 virtual double surfaceTransparency(
const DtVector&)
const;
286 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
287 virtual double waterCurrentSpeed(
const DtUUID& weatherArea)
const;
288 virtual double waterCurrentSpeed(
const DtVector&)
const;
293 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
294 virtual double waterCurrentDirection(
const DtUUID& weatherArea)
const;
295 virtual double waterCurrentDirection(
const DtVector&)
const;
300 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
301 virtual double ambientWaterTemperature(
const DtUUID& weatherArea)
const;
302 virtual double ambientWaterTemperature(
const DtVector&)
const;
308 virtual double tidalOffset(
const DtUUID& weatherArea)
const;
309 virtual double tidalOffset(
const DtVector&)
const;
315 virtual void setUseDayNightIlluminationModel(
bool);
316 virtual bool useDayNightIlluminationModel()
const;
323 virtual bool tidalDirection(
const DtUUID& weatherArea)
const;
324 virtual bool tidalDirection(
const DtVector&)
const;
330 virtual unsigned int swellState(
const DtUUID& weatherArea)
const;
331 virtual unsigned int swellState(
const DtVector&)
const;
337 virtual double swellStateDirection(
const DtUUID& weatherArea)
const;
338 virtual double swellStateDirection(
const DtVector&)
const;
344 virtual unsigned int seaState(
const DtUUID& weatherArea)
const;
345 virtual unsigned int seaState(
const DtVector&)
const;
351 virtual double seaStateDirection(
const DtUUID& weatherArea)
const;
352 virtual double seaStateDirection(
const DtVector&)
const;
358 virtual bool windDrivenSeaStateEnabled(
const DtUUID& weatherArea)
const;
359 virtual bool windDrivenSeaStateEnabled(
const DtVector&)
const;
365 virtual double choppiness(
const DtUUID& weatherArea)
const;
366 virtual double choppiness(
const DtVector&)
const;
372 virtual double surgeDepth(
const DtUUID& weatherArea)
const;
373 virtual double surgeDepth(
const DtVector&)
const;
379 virtual double fogHeight(
const DtUUID& weatherArea)
const;
380 virtual double fogHeight(
const DtVector&)
const;
393 virtual double snowAccumulation(
const DtUUID& weatherArea)
const;
394 virtual double snowAccumulation(
const DtVector&)
const;
400 virtual double snowMinimumAltitude(
const DtUUID& weatherArea)
const;
401 virtual double snowMinimumAltitude(
const DtVector&)
const;
407 virtual double snowRoadAccumulation(
const DtUUID& weatherArea)
const;
408 virtual double snowRoadAccumulation(
const DtVector&)
const;
414 virtual double rainAccumulation(
const DtUUID& weatherArea)
const;
415 virtual double rainAccumulation(
const DtVector&)
const;
420 virtual DtObjectType globalEnvironmentObjectType()
const;
426 virtual double thermoclineLayer1Depth(
const DtUUID& weatherArea)
const;
427 virtual double thermoclineLayer1Depth(
const DtVector&)
const;
428 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
429 virtual double thermoclineLayer1Permeability(
const DtUUID& weatherArea)
const;
430 virtual double thermoclineLayer1Permeability(
const DtVector&)
const;
432 virtual double thermoclineLayer2Depth(
const DtUUID& weatherArea)
const;
433 virtual double thermoclineLayer2Depth(
const DtVector&)
const;
434 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
435 virtual double thermoclineLayer2Permeability(
const DtUUID& weatherArea)
const;
436 virtual double thermoclineLayer2Permeability(
const DtVector&)
const;
438 virtual double thermoclineLayer3Depth(
const DtUUID& weatherArea)
const;
439 virtual double thermoclineLayer3Depth(
const DtVector&)
const;
440 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
441 virtual double thermoclineLayer3Permeability(
const DtUUID& weatherArea)
const;
442 virtual double thermoclineLayer3Permeability(
const DtVector&)
const;
444 virtual double thermoclineLayer4Depth(
const DtUUID& weatherArea)
const;
445 virtual double thermoclineLayer4Depth(
const DtVector&)
const;
446 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
447 virtual double thermoclineLayer4Permeability(
const DtUUID& weatherArea)
const;
448 virtual double thermoclineLayer4Permeability(
const DtVector&)
const;
450 virtual double thermoclineLayer5Depth(
const DtUUID& weatherArea)
const;
451 virtual double thermoclineLayer5Depth(
const DtVector&)
const;
452 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
453 virtual double thermoclineLayer5Permeability(
const DtUUID& weatherArea)
const;
454 virtual double thermoclineLayer5Permeability(
const DtVector&)
const;
462 virtual DtString deepWaterSoilName()
const;
463 virtual void setDeepWaterSoilName(
const DtString&);
468 virtual DtString shallowWaterSoilName()
const;
469 virtual void setShallowWaterSoilName(
const DtString&);
474 virtual DtString waterySoilName()
const;
475 virtual void setWaterySoilName(
const DtString&);
480 virtual DtString drySoilName()
const;
481 virtual void setDrySoilName(
const DtString&);
486 virtual DtString roadSoilName()
const;
487 virtual void setRoadSoilName(
const DtString&);
492 virtual DtString snowSoilName()
const;
493 virtual void setSnowSoilName(
const DtString&);
498 virtual DtString iceSoilName()
const;
499 virtual void setIceSoilName(
const DtString&);
504 virtual double deepSnowDepth()
const;
505 virtual void setDeepSnowDepth(
const double);
510 virtual double saturationWaterDepth()
const;
511 virtual void setSaturationWaterDepth(
const double);
516 virtual double waterSlideDepth()
const;
517 virtual void setWaterSlideDepth(
const double);
522 virtual double waterSlideFactor()
const;
523 virtual void setWaterSlideFactor(
const double);
528 virtual double hardFreezeTemperature()
const;
529 virtual void setHardFreezeTemperature(
const double);
548 virtual void computeSoilWeatherMobilityModifiers(
550 double& snowEffectFraction,
551 DtString& alternateSoil,
double& alternateSoilFraction,
552 double& tractionModifier)
const;
559 virtual void createGlobalEnvironmentObject();
562 static void objectAddedCallback(
const DtVrfObject*
object,
void* usr);
563 virtual void processObjectAdded(
const DtVrfObject*
object);
565 static void objectRemovedCallback(
const DtVrfObject*
object,
void* usr);
566 virtual void processObjectRemoved(
const DtVrfObject*
object);
573 static void changeWeatherPrioritiesCallback(
DtSimMessage* msg,
void* usr);
574 virtual void processChangeWeatherPriorities(
DtSimMessage* msg);
576 static void requestWeatherAtLocationCallback(
DtSimMessage* msg,
void* usr);
577 virtual void processRequestWeatherAtLocation(
DtSimMessage* msg);
579 static void physicalWorldParametersChangedCallback(
void* usr);
580 virtual void initializeIlluminationObjectsList();
583 virtual void initializeSoilCharacteristics();
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:18
DtString myIceSoilName
Name of "soil" that is ice.
Definition: environmentalStateManager.h:626
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
DtReal myWaterSlideFactor
Fraction [0-1] of traction retained on hard surface with water on it.
Definition: environmentalStateManager.h:639
std::map< DtObjectType, DtIlluminationObjectParameters > myIlluminationObjectTypes
Definition: environmentalStateManager.h:605
DtSimManager * mySimManager
Definition: environmentalStateManager.h:588
DtEnvironmentalStateSetter * myEnvironmentalStateSetter
This is only for setting global weather – local weather will use local vrf objects.
Definition: environmentalStateManager.h:595
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:611
double myHardFreezeTemperature
Temperature at which shallow water is frozen enough to drive a vehicle on.
Definition: environmentalStateManager.h:643
bool myFirstTick
Definition: environmentalStateManager.h:597
CloudLayerCloudType
Definition: vrfCloudLayerStateEnums.h:12
DtString myRoadSoilName
Name of soil that is paved road.
Definition: environmentalStateManager.h:620
DtSharedVrfObjectReference class will allocate an empty DtVrfObjectReference if one is not assigned s...
Definition: vrfObjectReference.h:102
Definition: objectType.h:27
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:629
File: simMsg.h.
Definition: simMessage.h:35
double mySaturationWaterDepth
Depth of water accumulation before dry soil is changed completely to watery soil. ...
Definition: environmentalStateManager.h:633
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:636
DtString myWaterySoilName
Name of soil that is considered watery soil.
Definition: environmentalStateManager.h:614
A DtSimCommand subclass which specifies a change to the weather settings for the specified weather ar...
Definition: changeWeatherCommand.h:28
DtString myDeepWaterSoilName
Name of soil that is considered deep water.
Definition: environmentalStateManager.h:608
DtVrfWeatherCloudState
Definition: vrfWeatherStateEnums.h:28
DtVector myLastPointChecked
For faster access for consecutive lookups given a point.
Definition: environmentalStateManager.h:600
DtString myDrySoilName
Name of soil that is dry soil–not sand or gravel.
Definition: environmentalStateManager.h:617
DtString mySnowSoilName
Name of "soil" that is snow.
Definition: environmentalStateManager.h:623
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:102
Handles the environmental state of the simulation.
Definition: environmentalStateManager.h:41
DtRwVrfObjectReferenceList myCloudLayerObjects
Definition: environmentalStateManager.h:592
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:28
DtManagedObjectListConstPtr myIlluminationObjects
Definition: environmentalStateManager.h:603
DtSharedVrfObjectReference myLastWeatherByPoint
Definition: environmentalStateManager.h:601
DtRwVrfObjectReferenceList myWeatherObjects
Definition: environmentalStateManager.h:591
DtSharedVrfObjectReference myGlobalEnvironmentObject
Definition: environmentalStateManager.h:590