VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfEnvironmentalWeatherStateRecord.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
13 #include <vl/globalObjectDesignatorList.h>
14 #include <vl/environmentalRecord.h>
15 #include <vlpi/disEnums.h>
16 
17 // Definition of the FIXED PORTION of the weather state object.
18 // This will be followed by a variable length string of bytes to represent
19 // the object label, and 0 or more global object designators to represent
20 // any subordinate objects within the object represented.
21 
23 {
24  DtNetEnvironmentalRecord myHeader;
25  DtNetU32 myRecordVersion;
26  DtNetFloat64 myAirTurbidity;
27  DtNetU32 myCloudState;
30  DtNetFloat64 myVisibility;
31  DtNetFloat64 myWindDirection;
32  DtNetFloat64 myWindSpeed;
33  DtNetFloat64 myIllumination;
34  DtNetFloat64 myTimeOfDay;
36 };
37 
39 {
40  DtNetEnvironmentalRecord myHeader;
41  DtNetU32 myRecordVersion;
42  DtNetFloat64 myAirTurbidity;
43  DtNetU32 myCloudState;
46  DtNetFloat64 myVisibility;
47  DtNetFloat64 myWindDirection;
48  DtNetFloat64 myWindSpeed;
49  DtNetFloat64 myIllumination;
50  DtNetFloat64 myTimeOfDay;
53 };
54 
56 {
57  DtNetEnvironmentalRecord myHeader;
58  DtNetU32 myRecordVersion;
59  DtNetFloat64 myAirTurbidity;
60  DtNetU32 myCloudState;
63  DtNetFloat64 myVisibility;
64  DtNetFloat64 myWindDirection;
65  DtNetFloat64 myWindSpeed;
66  DtNetFloat64 myIllumination;
67  DtNetFloat64 myTimeOfDay;
70  DtNetFloat64 myUnderwaterVisibility;
71  DtNetFloat64 mySurfaceTransparency;
72  DtNetFloat64 myWaterCurrentSpeed;
75  DtNetFloat64 myTidalOffset;
76  DtNetBoolean myTidalDirection;
77  DtNetFloat64 mySeaState;
78  DtNetFloat64 mySeaStateDirection;
80  DtNetU32 mySwellState;
81  DtNetFloat64 mySwellStateDirection;
82  DtNetFloat64 myChoppiness;
83  DtNetFloat64 mySurgeDepth;
94 };
95 
97 {
98  DtNetInt64 myDateAndTimeOfDay; // Sent in conjunction with time of day, this is date/time since 00:00 hours, Jan 1, 1970 UTC
99 };
100 
101 // This is the revamped version of the weather state record. The version above is just used for
102 // backward compatability
106 {
107  DtNetEnvironmentalRecord myHeader;
108  DtNetU32 myRecordVersion;
109  DtNetFloat64 myAirTurbidity;
110  DtNetU32 myCloudState;
113  DtNetFloat64 myVisibility;
114  DtNetFloat64 myWindDirection;
115  DtNetFloat64 myWindSpeed;
116  DtNetFloat64 myIllumination;
119  DtNetFloat64 mySurfaceTransparency;
120  DtNetFloat64 myWaterCurrentSpeed;
123  DtNetFloat64 myTidalOffset;
124  DtNetBoolean myTidalDirection;
125  DtNetFloat64 mySeaState;
126  DtNetFloat64 mySeaStateDirection;
128  DtNetU32 mySwellState;
129  DtNetFloat64 mySwellStateDirection;
130  DtNetFloat64 myChoppiness;
131  DtNetFloat64 mySurgeDepth;
142  DtNetInt32 myPriority;
143 };
144 
146 {
147  DtNetVector64 myFogColor;
148  DtNetFloat64 myFogHeight;
149  DtNetFloat64 mySnowAccumulation;
150  DtNetFloat64 mySnowMinimumAltitude;
152  DtNetFloat64 myRainAccumulation;
153 };
154 
155 //
156 // Class Description: DtVrfEnvironmentalWeatherStateRecord
157 //
159  public DtEnvironmentalRecord
160 {
161 public:
162  // Default Constructor. To function properly, the state record should be
163  // initialized with an entity type. If you don't know it yet at creation
164  // time, you can use this constructor; but call setEntityType() before
165  // using the appearance accessors.
167 
171 
172  // Assignment Operator
173  const DtVrfEnvironmentalWeatherStateRecord& operator=(
175 
176  // Destructor
178 
179  // Clone. Return a copy of this instance.
180  virtual DtEnvironmentalRecord* clone() const;
181 
182  // See #myAirTurbidity
184  virtual void setAirTurbidity(double value);
185  virtual double airTurbidity() const;
187 
188  // See #myPriority
190  virtual void setPriority(int value);
191  virtual int priority() const;
193 
194  // See #myAmbientAirTemperature
196  virtual void setAmbientAirTemperature(double value);
197  virtual double ambientAirTemperature() const;
199 
200  // See #myCloudState
202  virtual void setCloudState(unsigned int value);
203  virtual unsigned int cloudState() const;
205 
206  // See #myPrecipitationIntensity
208  virtual void setPrecipitationIntensity(double value);
209  virtual double precipitationIntensity() const;
211 
212  // See #myPrecipitationType
214  virtual void setPrecipitationType(unsigned int value);
215  virtual unsigned int precipitationType() const;
217 
218  // See #myWindSpeed
220  virtual void setWindSpeed(double value);
221  virtual double windSpeed() const;
223 
224  // See #myWindDirection
226  virtual void setWindDirection(double value);
227  virtual double windDirection() const;
229 
230  // See #myVisibility
232  virtual void setVisibility(double value);
233  virtual double visibility() const;
235 
236  // See #myIllumination
238  virtual void setIllumination(double value);
239  virtual double illumination() const;
241 
242  // Underwater visibility in meters
244  virtual void setUnderwaterVisibility(double underwaterVisibility);
245  virtual double underwaterVisibility();
247 
248  // Water surface transparency, a percentage represented by the range 0..1
249  // with 1 being fully transparent.
251  virtual void setSurfaceTransparency(double transparency);
252  virtual double surfaceTransparency();
254 
255  // Water velocity in meters per second
257  virtual void setWaterCurrentSpeed(double waterCurrentSpeed);
258  virtual double waterCurrentSpeed();
260 
261  // Water direction in radians clockwise from 0 (north)
263  virtual void setWaterCurrentDirection(double waterCurrentDirection);
264  virtual double waterCurrentDirection();
266 
267  // Ambient water temperature in Celsius
269  virtual void setAmbientWaterTemperature(double waterTemperature);
270  virtual double ambientWaterTemperature();
272 
273  // Tidal offset in meters from the water polygons in the database
275  virtual void setTidalOffset(double tidalOffset);
276  virtual double tidalOffset();
278 
279  // Tidal direction where true represents the tide going in and false
280  // represents the tide going out.
282  virtual void setTidalDirection(bool tidalDirection);
283  virtual bool tidalDirection();
285 
286  // Swell state according to the Douglas Sea Scale (integer 0 - 9)
288  virtual void setSwellState(unsigned int state);
289  virtual unsigned int swellState();
291 
292  // Swell direction in in radians clockwise from 0 (north)
294  virtual void setSwellStateDirection(double direction);
295  virtual double swellStateDirection();
297 
300  virtual void setSeaState(unsigned int douglasScale);
301  virtual unsigned int seaState();
303 
306  virtual void setSeaStateDirection(double radiansFromNorth);
307  virtual double seaStateDirection();
309 
312  void setWindDrivenSeaStateEnabled(bool enabled);
313  bool windDrivenSeaStateEnabled();
315 
316  // Wave choppiness (0..1)
318  virtual void setChoppiness(double choppiness);
319  virtual double choppiness();
321 
322  // Surge depth (meters)
324  virtual void setSurgeDepth(double depth);
325  virtual double surgeDepth();
327 
328  // Fog color
330  virtual void setFogColor(double red, double green, double blue);
331  virtual void getFogColor(double& red, double& green, double& blue);
332  virtual DtVector fogColor();
334 
336  virtual void setFogHeight(double);
337  virtual double fogHeight();
338 
340  virtual void setSnowAccumulation(double);
341  virtual double snowAccumulation();
342 
344  virtual void setSnowMinimumAltitude(double);
345  virtual double snowMinimumAltitude();
346 
348  virtual void setSnowRoadAccumulation(double);
349  virtual double snowRoadAccumulation();
350 
352  virtual void setRainAccumulation(double);
353  virtual double rainAccumulation();
354 
355  // Thermocline depth (in meters) and permeability (a percentage based on the
356  // range 0..1 with 0 being impermeable and 1 being totally permeable). A
357  // depth of zero means that layer is not used.
359  virtual void setThermoclineLayer1Depth(double depth);
360  virtual double thermoclineLayer1Depth();
361  virtual void setThermoclineLayer1Permeability(double depth);
362  virtual double thermoclineLayer1Permeability();
363  virtual void setThermoclineLayer2Depth(double depth);
364  virtual double thermoclineLayer2Depth();
365  virtual void setThermoclineLayer2Permeability(double depth);
366  virtual double thermoclineLayer2Permeability();
367  virtual void setThermoclineLayer3Depth(double depth);
368  virtual double thermoclineLayer3Depth();
369  virtual void setThermoclineLayer3Permeability(double depth);
370  virtual double thermoclineLayer3Permeability();
371  virtual void setThermoclineLayer4Depth(double depth);
372  virtual double thermoclineLayer4Depth();
373  virtual void setThermoclineLayer4Permeability(double depth);
374  virtual double thermoclineLayer4Permeability();
375  virtual void setThermoclineLayer5Depth(double depth);
376  virtual double thermoclineLayer5Depth();
377  virtual void setThermoclineLayer5Permeability(double depth);
378  virtual double thermoclineLayer5Permeability();
380 
381  // This doesn't need to be called explicitly. If any routine that needs
382  // the repository finds that it hasn't been created yet, it calls this
383  // method.
384  virtual bool createNetworkRepresentation();
385 
386  // returns the network representation of the environmental record
387  const DtNetWeatherStateRecord* objStateNetRep() const;
388  DtNetWeatherStateRecord* objStateNetRep();
389 
390  // used by the PDU class to fill in the network representation
391  virtual void setFromNet(const DtNetEnvironmentalRecord& buffer, int protocolVersion);
392 
393  virtual int netRepSize() const;
394 
397  // The number of seconds past midnight.
399  virtual double timeOfDay() const;
401 
402  // The number of seconds past 00:00 hours, Jan 1, 1970 UTC. This routine will *also* set the time
403  // of day by stripping off the day/month/year and leaving only time of day. This MUST be set in UTC
404  // else the time of day will be off based on time zones
406  virtual time_t dateAndTimeOfDay() const;
408 
409  // The rate at which time of day is advancing, based on simulation time.
410  // For example, 0 indicates that TOD is paused, 1 means it is advancing normally.
412  virtual double timeOfDayAdvancementSpeed() const;
414 
415 protected:
416 
417  virtual bool resizeNetRep(int newSize);
418 
419  // Reworks the network buffer based on version
420  virtual void reworkStateRepForVersion(int bytesToCopy, int iVersion);
421 
422  // Casts the 'this' pointer for changing elements in a const function.
424 
425 protected:
429 };
DtNetFloat64 mySurfaceTransparency
Definition: vrfEnvironmentalWeatherStateRecord.h:71
DtNetFloat64 myWindSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:48
DtNetEnvironmentalRecord myHeader
Definition: vrfEnvironmentalWeatherStateRecord.h:24
Definition: vrfEnvironmentalWeatherStateRecord.h:22
DtNetFloat64 myThermoclineLayer3Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:136
DtNetFloat64 myWindDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:64
DtNetU32 myCloudState
Definition: vrfEnvironmentalWeatherStateRecord.h:43
DtNetFloat64 myWaterCurrentSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:120
DtNetFloat64 myPrecipitationIntensity
Definition: vrfEnvironmentalWeatherStateRecord.h:111
DtNetFloat64 mySeaState
Definition: vrfEnvironmentalWeatherStateRecord.h:125
DtNetFloat64 myWindDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:114
DtNetFloat64 myVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:30
DtNetFloat64 myWindSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:65
DtNetEnvironmentalRecord myHeader
Definition: vrfEnvironmentalWeatherStateRecord.h:40
DtNetFloat64 myThermoclineLayer2Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:87
DtNetFloat64 myFogHeight
Definition: vrfEnvironmentalWeatherStateRecord.h:148
DtNetFloat64 myUnderwaterVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:118
DtNetFloat64 mySurfaceTransparency
Definition: vrfEnvironmentalWeatherStateRecord.h:119
DtNetFloat64 myThermoclineLayer3Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:88
DtNetFloat64 myAirTurbidity
Definition: vrfEnvironmentalWeatherStateRecord.h:42
DtNetFloat64 myThermoclineLayer3Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:89
DtNetU32 myRecordVersion
Definition: vrfEnvironmentalWeatherStateRecord.h:108
DtNetFloat64 myAmbientAirTemperature
Definition: vrfEnvironmentalWeatherStateRecord.h:117
DtNetFloat64 myTimeOfDay
Definition: vrfEnvironmentalWeatherStateRecord.h:50
Definition: vrfEnvironmentalWeatherStateRecord.h:38
DtNetFloat64 mySwellStateDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:129
DtNetFloat64 mySnowRoadAccumulation
Definition: vrfEnvironmentalWeatherStateRecord.h:151
DtNetBoolean myTidalDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:76
DtNetFloat64 myAmbientWaterTemperature
Definition: vrfEnvironmentalWeatherStateRecord.h:122
DtNetFloat64 myAirTurbidity
Definition: vrfEnvironmentalWeatherStateRecord.h:109
DtNetU32 mySwellState
Definition: vrfEnvironmentalWeatherStateRecord.h:128
DtNetU32 myPrecipitationType
Definition: vrfEnvironmentalWeatherStateRecord.h:29
DtNetFloat64 myWaterCurrentDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:73
DtNetFloat64 mySnowAccumulation
Definition: vrfEnvironmentalWeatherStateRecord.h:149
DtNetFloat64 myTidalOffset
Definition: vrfEnvironmentalWeatherStateRecord.h:75
DtNetFloat64 mySwellStateDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:81
DtNetFloat64 myWindDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:31
DtNetFloat64 myUnderwaterVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:70
DtNetInt32 myPriority
Definition: vrfEnvironmentalWeatherStateRecord.h:142
DtNetFloat64 mySurgeDepth
Definition: vrfEnvironmentalWeatherStateRecord.h:83
DtNetFloat64 myAmbientAirTemperature
Definition: vrfEnvironmentalWeatherStateRecord.h:52
DtNetFloat64 myVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:63
DtNetFloat64 myThermoclineLayer5Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:141
DtNetFloat64 mySnowMinimumAltitude
Definition: vrfEnvironmentalWeatherStateRecord.h:150
DtNetU32 myRecordVersion
Definition: vrfEnvironmentalWeatherStateRecord.h:41
DtNetFloat64 myIllumination
Definition: vrfEnvironmentalWeatherStateRecord.h:33
DtNetFloat64 myTidalOffset
Definition: vrfEnvironmentalWeatherStateRecord.h:123
DtNetFloat64 myAmbientWaterTemperature
Definition: vrfEnvironmentalWeatherStateRecord.h:74
DtNetFloat64 myTimeOfDay
Definition: vrfEnvironmentalWeatherStateRecord.h:34
DtNetVector64 myFogColor
Definition: vrfEnvironmentalWeatherStateRecord.h:147
DtNetFloat64 myThermoclineLayer4Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:90
Definition: vrfEnvironmentalWeatherStateRecord.h:55
DtNetFloat64 myWindSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:115
DtNetU32 myCloudState
Definition: vrfEnvironmentalWeatherStateRecord.h:60
DtNetFloat64 myTimeOfDayAdvancementSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:68
DtNetFloat64 myThermoclineLayer1Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:85
Definition: vrfEnvironmentalWeatherStateRecord.h:158
DtNetBoolean myTidalDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:124
DtNetFloat64 myPrecipitationIntensity
Definition: vrfEnvironmentalWeatherStateRecord.h:28
DtNetFloat64 myVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:113
double myOldTimeOfDayAdvancementSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:427
DtNetFloat64 myIllumination
Definition: vrfEnvironmentalWeatherStateRecord.h:66
int myNetRepSize
Definition: vrfEnvironmentalWeatherStateRecord.h:426
DtNetFloat64 myWaterCurrentSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:72
DtNetFloat64 mySeaStateDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:78
DtNetFloat64 myTimeOfDayAdvancementSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:51
DtNetFloat64 mySurgeDepth
Definition: vrfEnvironmentalWeatherStateRecord.h:131
DtNetFloat64 myAirTurbidity
Definition: vrfEnvironmentalWeatherStateRecord.h:26
DtNetFloat64 myVisibility
Definition: vrfEnvironmentalWeatherStateRecord.h:46
DtNetFloat64 myIllumination
Definition: vrfEnvironmentalWeatherStateRecord.h:49
DtNetFloat64 myTimeOfDay
Definition: vrfEnvironmentalWeatherStateRecord.h:67
DtNetU32 myPrecipitationType
Definition: vrfEnvironmentalWeatherStateRecord.h:62
DtNetU32 myCloudState
Definition: vrfEnvironmentalWeatherStateRecord.h:27
DtNetFloat64 myThermoclineLayer5Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:93
DtNetFloat64 myThermoclineLayer3Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:137
DtNetFloat64 myThermoclineLayer1Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:132
DtNetFloat64 myThermoclineLayer2Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:135
time_t myOldTimeOfDay
Definition: vrfEnvironmentalWeatherStateRecord.h:428
!!!!!!!!!!!!!!!!!!!!! DO NOT INCREASE THE RECORD NUMBER ANY FURTHER!!!!! !!!!!!!!!!!!!!!!!!!!! Use th...
Definition: vrfEnvironmentalWeatherStateRecord.h:105
DtNetFloat64 myIllumination
Definition: vrfEnvironmentalWeatherStateRecord.h:116
DtNetFloat64 myPrecipitationIntensity
Definition: vrfEnvironmentalWeatherStateRecord.h:44
DtNetU32 myRecordVersion
Definition: vrfEnvironmentalWeatherStateRecord.h:58
DtNetFloat64 myThermoclineLayer4Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:139
DtNetFloat64 myThermoclineLayer5Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:140
DtNetFloat64 myWindSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:32
DtNetFloat64 myWaterCurrentDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:121
Definition: vrfEnvironmentalWeatherStateRecord.h:145
Definition: vrfEnvironmentalWeatherStateRecord.h:96
DtNetFloat64 myChoppiness
Definition: vrfEnvironmentalWeatherStateRecord.h:130
DtNetU32 myPrecipitationType
Definition: vrfEnvironmentalWeatherStateRecord.h:45
DtNetInt64 myDateAndTimeOfDay
Definition: vrfEnvironmentalWeatherStateRecord.h:98
DtNetFloat64 mySeaState
Definition: vrfEnvironmentalWeatherStateRecord.h:77
DtNetFloat64 myAirTurbidity
Definition: vrfEnvironmentalWeatherStateRecord.h:59
DtNetFloat64 myThermoclineLayer2Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:134
DtNetEnvironmentalRecord myHeader
Definition: vrfEnvironmentalWeatherStateRecord.h:57
DtNetFloat64 myThermoclineLayer1Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:84
DtNetFloat64 myThermoclineLayer4Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:91
DtNetFloat64 myWindDrivenSeaStateEnabled
Definition: vrfEnvironmentalWeatherStateRecord.h:127
DtNetEnvironmentalRecord myHeader
Definition: vrfEnvironmentalWeatherStateRecord.h:107
DtNetFloat64 myThermoclineLayer4Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:138
DtNetFloat64 myAmbientAirTemperature
Definition: vrfEnvironmentalWeatherStateRecord.h:69
DtNetU32 myCloudState
Definition: vrfEnvironmentalWeatherStateRecord.h:110
DtNetU32 myPrecipitationType
Definition: vrfEnvironmentalWeatherStateRecord.h:112
DtNetFloat64 myTimeOfDayAdvancementSpeed
Definition: vrfEnvironmentalWeatherStateRecord.h:35
DtNetFloat64 myThermoclineLayer1Permeability
Definition: vrfEnvironmentalWeatherStateRecord.h:133
DtNetFloat64 myChoppiness
Definition: vrfEnvironmentalWeatherStateRecord.h:82
DtNetFloat64 myPrecipitationIntensity
Definition: vrfEnvironmentalWeatherStateRecord.h:61
DtNetFloat64 myWindDrivenSeaStateEnabled
Definition: vrfEnvironmentalWeatherStateRecord.h:79
DtNetFloat64 mySeaStateDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:126
DtNetFloat64 myRainAccumulation
Definition: vrfEnvironmentalWeatherStateRecord.h:152
#define DT_DLL_vrfExtObjects
Definition: dllExport.h:23
DtNetFloat64 myThermoclineLayer2Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:86
DtNetFloat64 myThermoclineLayer5Depth
Definition: vrfEnvironmentalWeatherStateRecord.h:92
DtNetU32 mySwellState
Definition: vrfEnvironmentalWeatherStateRecord.h:80
DtNetFloat64 myWindDirection
Definition: vrfEnvironmentalWeatherStateRecord.h:47
DtNetU32 myRecordVersion
Definition: vrfEnvironmentalWeatherStateRecord.h:25

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)