VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
remoteEnvironmentController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c ) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
19 #include <vlutil/vlString.h>
20 #include <vrfutil/rwUUID.h>
21 #include <matrix/vlVector.h>
23 
24 #include <map>
25 #include "vl/reflectedObjectListDIS.h"
26 
35 
45 
47 
49 {
50 public:
53 
56 
64  virtual void init(DtVrfMessageInterface* msgIf,
65  DtReflectedEnvironmentProcessList* rel, int sessionId);
66 
69  virtual void reinitialize(DtReflectedEnvironmentProcessList* rel);
70 
71  static bool envProcessDiscoveryCriteria(
72  DtReflectedObject* envProcess, void* userData);
73  virtual bool processEnvProcessDiscoveryCriteria(
74  DtReflectedEnvironmentProcess* envProcess);
75 
79  bool reflectingCurrentWeatherState();
80 
83  {
84  return myGlobalWeatherSR;
85  }
86 
88 
89  virtual void setAirTurbidity(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
91  virtual double airTurbidity(const DtVector& geocentricLocation);
93 
95 
96  virtual void setAmbientAirTemperature(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
98  virtual double ambientAirTemperature(const DtVector& geocentricLocation);
100 
102 
103  virtual void setCloudState(DtVrfWeatherCloudState, const DtUUID& weatherArea = DtUUID::nullUUID());
105  virtual DtVrfWeatherCloudState cloudState(const DtVector& geocentricLocation);
107 
109 
110  virtual void setPrecipitationIntensity(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
112  virtual double precipitationIntensity(const DtVector& geocentricLocation);
114 
116 
117  virtual void setPrecipitationType(DtVrfWeatherPrecipitationType, const DtUUID& weatherArea = DtUUID::nullUUID());
119  virtual DtVrfWeatherPrecipitationType precipitationType(const DtVector& geocentricLocation);
121 
123 
124  virtual void setWindSpeed(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
126  virtual double windSpeed(const DtVector& geocentricLocation);
128 
130 
131  virtual void setWindDirection(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
133  virtual double windDirection(const DtVector& geocentricLocation);
135 
137 
138  virtual void setVisibility(double value, const DtUUID& weatherArea = DtUUID::nullUUID());
140  virtual double visibility(const DtVector& geocentricLocation);
142 
145 
146  virtual void setTimeOfDay(double secondsPastMidnight);
148  virtual double timeOfDay();
150 
153 
154  virtual void setDateAndTimeOfDay(double secondsPastUtc);
155  virtual void setDateAndTimeOfDay(int year, int month, int day, int hours, int minutes, int seconds);
156 
158  virtual double dateAndTimeOfDay();
159  virtual void dateAndTimeOfDay(int& year, int& month, int& day, int& hours, int& minutes, int& seconds);
161 
163  virtual void setUseDayNightIlluminationModel(bool value);
164 
166 
167  virtual void setTimeOfDayAdvancementSpeed(double speed);
169  virtual double timeOfDayAdvancementSpeed();
171 
173 
174  virtual void setUnderwaterVisibility(double underwaterVisibility, const DtUUID& weatherArea = DtUUID::nullUUID());
175  virtual double underwaterVisibility(const DtVector& geocentricLocation);
177 
179 
180  virtual void setSurfaceTransparency(double transparency, const DtUUID& weatherArea = DtUUID::nullUUID());
181  virtual double surfaceTransparency(const DtVector& geocentricLocation);
183 
185 
186  virtual void setWaterCurrentSpeed(double waterCurrentSpeed, const DtUUID& weatherArea = DtUUID::nullUUID());
187  virtual double waterCurrentSpeed(const DtVector& geocentricLocation);
189 
191 
192  virtual void setWaterCurrentDirection(double waterCurrentDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
193  virtual double waterCurrentDirection(const DtVector& geocentricLocation);
195 
197 
198  virtual void setAmbientWaterTemperature(double waterTemperature, const DtUUID& weatherArea = DtUUID::nullUUID());
199  virtual double ambientWaterTemperature(const DtVector& geocentricLocation);
201 
203 
204  virtual void setTidalOffset(double tidalOffset, const DtUUID& weatherArea = DtUUID::nullUUID());
205  virtual double tidalOffset(const DtVector& geocentricLocation);
207 
210 
211  virtual void setTidalDirection(bool tidalDirection, const DtUUID& weatherArea = DtUUID::nullUUID());
212  virtual bool tidalDirection(const DtVector& geocentricLocation);
214 
216 
217  virtual void setSwellState(unsigned int state, const DtUUID& weatherArea = DtUUID::nullUUID());
218  virtual unsigned int swellState(const DtVector& geocentricLocation);
220 
222 
223  virtual void setSwellStateDirection(double direction, const DtUUID& weatherArea = DtUUID::nullUUID());
224  virtual double swellStateDirection(const DtVector& geocentricLocation);
226 
229  virtual void setSeaState(unsigned int douglasScale, const DtUUID& weatherArea = DtUUID::nullUUID());
230  virtual unsigned int seaState(const DtVector& geocentricLocation);
232 
235  virtual void setSeaStateDirection(double radiansFromNorth, const DtUUID& weatherArea = DtUUID::nullUUID());
236  virtual double seaStateDirection(const DtVector& geocentricLocation);
238 
241  virtual void setWindDrivenSeaStateEnabled(bool enabled, const DtUUID& weatherArea = DtUUID::nullUUID());
242  virtual bool windDrivenSeaStateEnabled(const DtVector& geocentricLocation);
244 
246 
247  virtual void setChoppiness(double choppiness, const DtUUID& weatherArea = DtUUID::nullUUID());
248  virtual double choppiness(const DtVector& geocentricLocation);
250 
252 
253  virtual void setSurgeDepth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
254  virtual double surgeDepth(const DtVector& geocentricLocation);
256 
259  virtual void setFogColor(const DtVector&, const DtUUID& weatherArea = DtUUID::nullUUID());
260  virtual DtVector fogColor(const DtVector& geocentricLocation);
261 
262  virtual void setFogHeight(double, const DtUUID& weatherArea = DtUUID::nullUUID());
263  virtual double fogHeight(const DtVector& geocentricLocation);
265 
268  virtual void setSnowAccumulation(double, const DtUUID& weatherArea = DtUUID::nullUUID());
269  virtual double snowAccumulation(const DtVector& geocentricLocation);
270 
271  virtual void setSnowMinimumAltitude(double, const DtUUID& weatherArea = DtUUID::nullUUID());
272  virtual double snowMinimumAltitude(const DtVector& geocentricLocation);
273 
274  virtual void setSnowRoadAccumulation(double, const DtUUID& weatherArea = DtUUID::nullUUID());
275  virtual double snowRoadAccumulation(const DtVector& geocentricLocation);
276 
278  virtual void setRainAccumulation(double, const DtUUID& weatherArea = DtUUID::nullUUID());
279  virtual double rainAccumulation(const DtVector& geocentricLocation);
280 
282 
285 
286  virtual void setThermoclineLayer1Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
287  virtual double thermoclineLayer1Depth(const DtVector& geocentricLocation);
288  virtual void setThermoclineLayer1Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
289  virtual double thermoclineLayer1Permeability(const DtVector& geocentricLocation);
290  virtual void setThermoclineLayer2Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
291  virtual double thermoclineLayer2Depth(const DtVector& geocentricLocation);
292  virtual void setThermoclineLayer2Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
293  virtual double thermoclineLayer2Permeability(const DtVector& geocentricLocation);
294  virtual void setThermoclineLayer3Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
295  virtual double thermoclineLayer3Depth(const DtVector& geocentricLocation);
296  virtual void setThermoclineLayer3Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
297  virtual double thermoclineLayer3Permeability(const DtVector& geocentricLocation);
298  virtual void setThermoclineLayer4Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
299  virtual double thermoclineLayer4Depth(const DtVector& geocentricLocation);
300  virtual void setThermoclineLayer4Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
301  virtual double thermoclineLayer4Permeability(const DtVector& geocentricLocation);
302  virtual void setThermoclineLayer5Depth(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
303  virtual double thermoclineLayer5Depth(const DtVector& geocentricLocation);
304  virtual void setThermoclineLayer5Permeability(double depth, const DtUUID& weatherArea = DtUUID::nullUUID());
305  virtual double thermoclineLayer5Permeability(const DtVector& geocentricLocation);
307 
309  static void environmentProcessAddedCallback(
310  DtReflectedEnvironmentProcess* obj, void* userData);
314  virtual void processEnvironmentProcessAdded(
316 
318  static void environmentProcessRemovedCallback(
319  DtReflectedEnvironmentProcess* obj, void* userData);
323  virtual void processEnvironmentProcessRemoved(
325 
327  virtual double dT() const;
328 
330 
331  virtual void addGlobalEnvironmentCreatedCallback(
333  virtual void removeGlobalEnvironmentCreatedCallback(
335  virtual void invokeGlobalWeatherCreatedCallbacks();
337 
338 protected:
339 
341  virtual DtVrfEnvironmentalWeatherStateRecord* weatherObjectFor(const DtVector& geocentricLocation) const;
342 
344  virtual bool inside(const DtVector&, const DtControlObjectRepository::DtCOVertexList&) const;
345 
346 protected:
350  virtual bool updateGlobalEnvironment();
351 
353  virtual bool updateWeatherEnvironment(DtEnvironmentProcessRepository*, DtVrfEnvironmentalWeatherStateRecord*);
354 
356  static void environmentProcessUpdatedCallback(DtReflectedEnvironmentProcess* e, void* usr);
357  virtual void processUpdatedCallback(DtReflectedEnvironmentProcess* e);
358 
359 protected:
362 
363  typedef std::map<DtControlObjectRepository*, DtVrfEnvironmentalWeatherStateRecord*> WeatherObjects;
365 
369 
372 
374 };
375 
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:18
DtReflectedEnvironmentProcessList * myReflectedEnvironmentProcessList
Definition: remoteEnvironmentController.h:360
#define DT_DLL_vrfcontrol
This file is used to determine how to build.
Definition: vrfcontrolDefines.h:28
DtVrfEnvironmentalWeatherStateRecord * myGlobalWeatherStateRecord
Definition: remoteEnvironmentController.h:367
Contains the DtVrfEnvironmentalWeatherStateRecord class declaration.
Contains the DtVrfSimulationDateTimeStateRecord class declaration.
This class creates a network state repository to aid sending weather area objects.
Definition: weatherObjectRepository.h:16
double myLastTimeReceived
Definition: remoteEnvironmentController.h:370
Contains the DtExtEntityStateRepository class.
DtVrfSimulationDateTimeStateRecord * mySimulationDateTimeStateRecord
Definition: remoteEnvironmentController.h:368
std::vector< DtVector > DtCOVertexList
Definition: controlObjectBaseRepository.h:130
DT_DLL_vrfutil bool inside(const DtVector &localPoint, const DtLocalVertexList &localVertexList, const Coordinate_System &coordinateSystem)
Returns true if localPoint is inside localVertexList in 2D.
DtGlobalWeatherCreatedCallbackList myGlobalEnvironmentCreated
Definition: remoteEnvironmentController.h:373
std::map< DtControlObjectRepository *, DtVrfEnvironmentalWeatherStateRecord * > WeatherObjects
Definition: remoteEnvironmentController.h:363
static const DtUUID & nullUUID()
Definition: vrfSimulationDateTimeStateRecord.h:29
Definition: vrfEnvironmentalWeatherStateRecord.h:158
DtEnvironmentProcessRepository * myGlobalWeatherSR
Definition: remoteEnvironmentController.h:366
DtVrfWeatherCloudState
Definition: vrfWeatherStateEnums.h:28
DtCallbackList< const DtEnvironmentProcessRepository * > DtGlobalWeatherCreatedCallbackList
DtRemoteEnvironmentController allows the user to interrogate the back-end which is simulating the env...
Definition: remoteEnvironmentController.h:34
DtEnvironmentProcessRepository * globalEnvironment() const
The current global environment.
Definition: remoteEnvironmentController.h:82
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtVrfMessageInterface * myMsgIf
Definition: remoteEnvironmentController.h:361
void(* DtCallbackFunctionType)(const DtEnvironmentProcessRepository *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:95
Definition: remoteEnvironmentController.h:48
WeatherObjects myWeatherObjects
Definition: remoteEnvironmentController.h:364
int mySessionId
Definition: remoteEnvironmentController.h:371
Definition: vrfMessageInterface.h:46

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)