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);
110 virtual void setVisibilityAndObscurant(
double visibility,
int obscurant,
const DtUUID& weatherArea =
DtUUID::nullUUID());
113 virtual bool visibilityAndObscurant(
const DtVector& geocentricLocation,
double& visibility,
int& obscurant);
119 virtual void setTimeOfDay(
double secondsPastMidnight);
121 virtual double timeOfDay();
127 virtual void setDateAndTimeOfDay(
double secondsPastUtc);
128 virtual void setDateAndTimeOfDay(
int year,
int month,
int day,
int hours,
int minutes,
int seconds);
131 virtual double dateAndTimeOfDay();
132 virtual void dateAndTimeOfDay(
int& year,
int& month,
int& day,
int& hours,
int& minutes,
int& seconds);
136 virtual void setUseDayNightIlluminationModel(
bool value);
140 virtual void setTimeOfDayAdvancementSpeed(
double speed);
142 virtual double timeOfDayAdvancementSpeed();
148 virtual bool lightningPresent(
const DtVector& geocentricLocation)
const;
153 virtual void setUnderwaterVisibility(
double underwaterVisibility,
const DtUUID& weatherArea =
DtUUID::nullUUID());
154 virtual double underwaterVisibility(
const DtVector& geocentricLocation);
160 virtual double surfaceTransparency(
const DtVector& geocentricLocation);
165 virtual void setWaterCurrentSpeed(
double waterCurrentSpeed,
const DtUUID& weatherArea =
DtUUID::nullUUID());
166 virtual double waterCurrentSpeed(
const DtVector& geocentricLocation);
171 virtual void setWaterCurrentDirection(
double waterCurrentDirection,
const DtUUID& weatherArea =
DtUUID::nullUUID());
172 virtual double waterCurrentDirection(
const DtVector& geocentricLocation);
177 virtual void setAmbientWaterTemperature(
double waterTemperature,
const DtUUID& weatherArea =
DtUUID::nullUUID());
178 virtual double ambientWaterTemperature(
const DtVector& geocentricLocation);
184 virtual double tidalOffset(
const DtVector& geocentricLocation);
190 virtual unsigned int swellState(
const DtVector& geocentricLocation);
196 virtual double swellStateDirection(
const DtVector& geocentricLocation);
202 virtual unsigned int seaState(
const DtVector& geocentricLocation);
207 virtual void setSeaStateDirection(
double radiansFromNorth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
208 virtual double seaStateDirection(
const DtVector& geocentricLocation);
214 virtual bool windDrivenSeaStateEnabled(
const DtVector& geocentricLocation);
220 virtual double choppiness(
const DtVector& geocentricLocation);
226 virtual double surgeDepth(
const DtVector& geocentricLocation);
232 virtual DtVector fogColor(
const DtVector& geocentricLocation);
235 virtual double fogHeight(
const DtVector& geocentricLocation);
241 virtual double snowAccumulation(
const DtVector& geocentricLocation);
244 virtual double snowMinimumAltitude(
const DtVector& geocentricLocation);
247 virtual double snowRoadAccumulation(
const DtVector& geocentricLocation);
251 virtual double rainAccumulation(
const DtVector& geocentricLocation);
259 virtual double thermoclineLayer1Depth(
const DtVector& geocentricLocation);
260 virtual void setThermoclineLayer1Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
261 virtual double thermoclineLayer1Permeability(
const DtVector& geocentricLocation);
263 virtual double thermoclineLayer2Depth(
const DtVector& geocentricLocation);
264 virtual void setThermoclineLayer2Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
265 virtual double thermoclineLayer2Permeability(
const DtVector& geocentricLocation);
267 virtual double thermoclineLayer3Depth(
const DtVector& geocentricLocation);
268 virtual void setThermoclineLayer3Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
269 virtual double thermoclineLayer3Permeability(
const DtVector& geocentricLocation);
271 virtual double thermoclineLayer4Depth(
const DtVector& geocentricLocation);
272 virtual void setThermoclineLayer4Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
273 virtual double thermoclineLayer4Permeability(
const DtVector& geocentricLocation);
275 virtual double thermoclineLayer5Depth(
const DtVector& geocentricLocation);
276 virtual void setThermoclineLayer5Permeability(
double depth,
const DtUUID& weatherArea =
DtUUID::nullUUID());
277 virtual double thermoclineLayer5Permeability(
const DtVector& geocentricLocation);
281 virtual double dT()
const;
285 virtual void addGlobalEnvironmentCreatedCallback(
287 virtual void removeGlobalEnvironmentCreatedCallback(
289 virtual void invokeGlobalWeatherCreatedCallbacks();
299 template<
typename WeatherStateType>
300 const WeatherStateType* weatherStateFor(
const DtVector& geocentricLocation)
const;
303 virtual bool inside(
const DtVector&,
const std::vector<DtVector>&)
const;
308 virtual void updateGlobalEnvironment();
314 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:325
#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:326
boost::signals2::scoped_connection myEnvironmentalRemovedConnection
Definition: remoteEnvironmentController.h:327
const makVrf::DtTimeAndDateStateComponent * myTimeAndDateStateComponent
Definition: remoteEnvironmentController.h:318
Contains the DtUUID class declaration.
double myLastTimeReceived
Definition: remoteEnvironmentController.h:321
DtCommunicationManager * myCommunicationManager
Definition: remoteEnvironmentController.h:311
DtGlobalWeatherCreatedCallbackList myGlobalEnvironmentCreated
Definition: remoteEnvironmentController.h:324
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:79
static const DtUUID & nullUUID()
boost::signals2::scoped_connection myGlobalEnvironmentUpdatedCallback
Definition: remoteEnvironmentController.h:328
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
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:54
DtRemoteEnvironmentController *(* DtRemoteEnvironmentControllerCreatorFcn)()
Definition: remoteEnvironmentController.h:32
Definition: stateData.h:301
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfMessageInterface * myMessageInterface
Definition: remoteEnvironmentController.h:312
void(* DtCallbackFunctionType)(const makVrf::DtExternalCurrentFrameState *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:94
DtRemoteEnvironmentController; remotely controls and reflects the weather state of VR-Forces...
Definition: remoteEnvironmentController.h:48
WeatherObjects myWeatherObjects
Definition: remoteEnvironmentController.h:315
std::map< DtUUID, const makVrf::DtExternalCurrentFrameState * > WeatherObjects
Definition: remoteEnvironmentController.h:314
const makVrf::DtExternalCurrentFrameState * myGlobalWeatherSR
Definition: remoteEnvironmentController.h:317
DtUUID myGlobalWeatherUUID
Definition: remoteEnvironmentController.h:319
int mySessionId
Definition: remoteEnvironmentController.h:322
Definition: vrfMessageInterface.h:40