13 #include <vlutil/vlString.h>
15 #include <matrix/vlVector.h>
17 #include <boost/signals2.hpp>
26 class DtExternalCurrentFrameState;
28 class DtTimeAndDateStateComponent;
65 bool reflectingCurrentWeatherState();
70 return myGlobalWeatherSR;
77 virtual double ambientAirTemperature(
const DtVector& geocentricLocation);
84 virtual double precipitationIntensity(
const DtVector& geocentricLocation);
91 virtual int precipitationType(
const DtVector& geocentricLocation);
98 virtual double windSpeed(
const DtVector& geocentricLocation);
105 virtual double windDirection(
const DtVector& geocentricLocation);
112 virtual double visibility(
const DtVector& geocentricLocation);
118 virtual void setTimeOfDay(
double secondsPastMidnight);
120 virtual double timeOfDay();
126 virtual void setDateAndTimeOfDay(
double secondsPastUtc);
127 virtual void setDateAndTimeOfDay(
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
130 virtual double dateAndTimeOfDay();
131 virtual void dateAndTimeOfDay(
int& year,
int& month,
int& day,
int& hours,
int& minutes,
int& seconds);
135 virtual void setUseDayNightIlluminationModel(
bool value);
139 virtual void setTimeOfDayAdvancementSpeed(
double speed);
141 virtual double timeOfDayAdvancementSpeed();
147 virtual bool lightningPresent(
const DtVector& geocentricLocation)
const;
152 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
153 virtual double underwaterVisibility(
const DtVector& geocentricLocation);
159 virtual double surfaceTransparency(
const DtVector& geocentricLocation);
164 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
165 virtual double waterCurrentSpeed(
const DtVector& geocentricLocation);
170 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
171 virtual double waterCurrentDirection(
const DtVector& geocentricLocation);
176 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
177 virtual double ambientWaterTemperature(
const DtVector& geocentricLocation);
183 virtual double tidalOffset(
const DtVector& geocentricLocation);
189 virtual unsigned int swellState(
const DtVector& geocentricLocation);
195 virtual double swellStateDirection(
const DtVector& geocentricLocation);
201 virtual unsigned int seaState(
const DtVector& geocentricLocation);
206 virtual void setSeaStateDirection(
double radiansFromNorth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
207 virtual double seaStateDirection(
const DtVector& geocentricLocation);
213 virtual bool windDrivenSeaStateEnabled(
const DtVector& geocentricLocation);
219 virtual double choppiness(
const DtVector& geocentricLocation);
225 virtual double surgeDepth(
const DtVector& geocentricLocation);
234 virtual double fogHeight(
const DtVector& geocentricLocation);
240 virtual double snowAccumulation(
const DtVector& geocentricLocation);
243 virtual double snowMinimumAltitude(
const DtVector& geocentricLocation);
246 virtual double snowRoadAccumulation(
const DtVector& geocentricLocation);
250 virtual double rainAccumulation(
const DtVector& geocentricLocation);
258 virtual double thermoclineLayer1Depth(
const DtVector& geocentricLocation);
259 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
260 virtual double thermoclineLayer1Permeability(
const DtVector& geocentricLocation);
262 virtual double thermoclineLayer2Depth(
const DtVector& geocentricLocation);
263 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
264 virtual double thermoclineLayer2Permeability(
const DtVector& geocentricLocation);
266 virtual double thermoclineLayer3Depth(
const DtVector& geocentricLocation);
267 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
268 virtual double thermoclineLayer3Permeability(
const DtVector& geocentricLocation);
270 virtual double thermoclineLayer4Depth(
const DtVector& geocentricLocation);
271 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
272 virtual double thermoclineLayer4Permeability(
const DtVector& geocentricLocation);
274 virtual double thermoclineLayer5Depth(
const DtVector& geocentricLocation);
275 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
276 virtual double thermoclineLayer5Permeability(
const DtVector& geocentricLocation);
280 virtual double dT()
const;
284 virtual void addGlobalEnvironmentCreatedCallback(
286 virtual void removeGlobalEnvironmentCreatedCallback(
288 virtual void invokeGlobalWeatherCreatedCallbacks();
298 template<
typename WeatherStateType>
299 const WeatherStateType* weatherStateFor(
const DtVector& geocentricLocation)
const;
302 virtual bool inside(
const DtVector&,
const std::vector<DtVector>&)
const;
307 virtual void updateGlobalEnvironment();
313 typedef std::map<DtUUID, const makVrf::DtExternalCurrentFrameState*>
WeatherObjects;
const makVrf::DtExternalCurrentFrameState * globalEnvironment() const
The current global environment.
Definition: remoteEnvironmentController.h:68
UUID is a unique ID wrapper class.
Definition: uuid.h:59
static DtRemoteEnvironmentControllerCreatorFcn theRemoteEnvironmentControllerCreatorFcn
Definition: remoteEnvironmentController.h:324
#define DT_DLL_vrfcontrol
This file is used to determine how to build.
Definition: vrfcontrolDefines.h:28
boost::signals2::scoped_connection myEnvironmentalAddedConnection
Definition: remoteEnvironmentController.h:325
boost::signals2::scoped_connection myEnvironmentalRemovedConnection
Definition: remoteEnvironmentController.h:326
const makVrf::DtTimeAndDateStateComponent * myTimeAndDateStateComponent
Definition: remoteEnvironmentController.h:317
Contains the DtUUID class declaration.
double myLastTimeReceived
Definition: remoteEnvironmentController.h:320
DtCommunicationManager * myCommunicationManager
Definition: remoteEnvironmentController.h:310
DtGlobalWeatherCreatedCallbackList myGlobalEnvironmentCreated
Definition: remoteEnvironmentController.h:323
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: timeAndDateStateComponent.h:72
static const DtUUID & nullUUID()
boost::signals2::scoped_connection myGlobalEnvironmentUpdatedCallback
Definition: remoteEnvironmentController.h:327
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:339
DtCallbackList< const makVrf::DtExternalCurrentFrameState * > DtGlobalWeatherCreatedCallbackList
DtRemoteEnvironmentController allows the user to interrogate the back-end which is simulating the env...
Definition: remoteEnvironmentController.h:44
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:51
DtRemoteEnvironmentController *(* DtRemoteEnvironmentControllerCreatorFcn)()
Definition: remoteEnvironmentController.h:32
Definition: stateData.h:263
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfMessageInterface * myMessageInterface
Definition: remoteEnvironmentController.h:311
void(* DtCallbackFunctionType)(const makVrf::DtExternalCurrentFrameState *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:95
DtRemoteEnvironmentController; remotely controls and reflects the weather state of VR-Forces...
Definition: remoteEnvironmentController.h:48
WeatherObjects myWeatherObjects
Definition: remoteEnvironmentController.h:314
std::map< DtUUID, const makVrf::DtExternalCurrentFrameState * > WeatherObjects
Definition: remoteEnvironmentController.h:313
const makVrf::DtExternalCurrentFrameState * myGlobalWeatherSR
Definition: remoteEnvironmentController.h:316
DtUUID myGlobalWeatherUUID
Definition: remoteEnvironmentController.h:318
int mySessionId
Definition: remoteEnvironmentController.h:321
Definition: vrfMessageInterface.h:40