VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtEnvironmentRecord.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
13 
16 #include <vector>
17 #include <string>
18 
19 namespace makArchives
20 {
25  {
26  public:
30  {
31  public:
33  DtColorRecord(float r=1.0f, float g=1.0f, float b=1.0f, float a=1.0f);
34 
36  DtColorRecord(const DtColorRecord& orig);
37 
39  DtColorRecord& operator =(DtColorRecord rhs);
40 
42  ~DtColorRecord();
43 
45  void swap(DtColorRecord& other);
46 
49  void setRed(float r);
50  float red() const;
52 
55  void setGreen(float g);
56  float green() const;
58 
61  void setBlue(float b);
62  float blue() const;
64 
67  void setAlpha(float a);
68  float alpha() const;
70 
71  protected:
72 
73  friend class boost::serialization::access;
74 
79  template<class Archive>
80  void serialize(Archive & ar, const unsigned int version)
81  {
82  ar & BOOST_SERIALIZATION_NVP(myRed);
83  ar & BOOST_SERIALIZATION_NVP(myGreen);
84  ar & BOOST_SERIALIZATION_NVP(myBlue);
85  ar & BOOST_SERIALIZATION_NVP(myAlpha);
86  }
87 
88  private:
89  static float clamp(float component);
90 
91  private:
92  float myRed;
93  float myGreen;
94  float myBlue;
95  float myAlpha;
96  };
97 
101  {
102  public:
104  DtThermoclineRecord(float depth=0.0f, float permeability=0.0);
105 
108 
110  DtThermoclineRecord& operator =(DtThermoclineRecord rhs);
111 
114 
116  void swap(DtThermoclineRecord& other);
117 
120  void setDepth(float meters);
121  float depth() const;
123 
126  void setPermeability(float normalizedValue);
127  float permeability() const;
129 
130  protected:
131 
132  friend class boost::serialization::access;
133 
138  template<class Archive>
139  void serialize(Archive & ar, const unsigned int version)
140  {
141  ar & BOOST_SERIALIZATION_NVP(myDepth);
142  ar & BOOST_SERIALIZATION_NVP(myPermeability);
143  }
144 
145  private:
146  float myDepth;
148  };
149 
150  typedef std::vector<DtCloudLayerRecord> CloudLayerRecordList;
151  typedef std::vector<DtThermoclineRecord> ThermoclineRecordList;
152  typedef std::map<std::string, std::string> OptionalParameterMap;
153 
156 
159 
161  virtual ~DtEnvironmentRecord();
162 
164  void swap(DtEnvironmentRecord& other);
165 
167  DtEnvironmentRecord& operator =(DtEnvironmentRecord rhs);
168 
171  void setEnvironmentName(const std::string& name);
172  const std::string& environmentName() const;
174 
177  void setAirTurbidity(float turbidity);
178  float airTurbidity() const;
180 
183  void setVisibleDistance(float distance);
184  float visibleDistance() const;
186 
189  void setPrecipitation(int type);
190  int precipitation() const;
192 
195  void setPrecipitationIntensity(float intensity);
196  float precipitationIntensity() const;
198 
202  CloudLayerRecordList& customCloudLayers();
203  const CloudLayerRecordList& customCloudLayers() const;
205 
208  void setCloudCoverType( DtCloudCoverType cloudCoverType );
209  DtCloudCoverType cloudCoverType() const;
211 
214  void setWindSpeed(float metersPerSecond);
215  float windSpeed() const;
217 
220  void setWindDirection(float radiansFromNorth);
221  float windDirection() const;
223 
226  void setAmbientAirTemperature(float celsius);
227  float ambientAirTemperature() const;
229 
232  void setSeaState(int douglasScale);
233  int seaState() const;
235 
238  void setSeaStateDirection(float radiansFromNorth);
239  float seaStateDirection() const;
241 
244  void setWindDrivenSeaStateEnabled(bool enabled);
245  bool windDrivenSeaStateEnabled() const;
247 
250  void setSwellState(int douglasScale);
251  int swellState() const;
253 
256  void setSwellStateDirection(float radiansFromNorth);
257  float swellStateDirection() const;
259 
262  void setWindFetch(float meters);
263  float windFetch() const;
265 
268  void setSeaChoppiness(float chop);
269  float seaChoppiness() const;
271 
274  void setUnderwaterVisibilityEnabled(bool enabled);
275  bool underwaterVisibilityEnabled() const;
277 
280  void setUnderwaterVisibility(float meters);
281  float underwaterVisibility() const;
283 
286  void setSurfaceTransparency(float normalizedValue);
287  float surfaceTransparency() const;
289 
292  void setSurgeDepth(float meters);
293  float surgeDepth() const;
295 
298  void setDepthOffset(float meters);
299  float depthOffset() const;
301 
304  void setAmbientWaterTemperature(float celsius);
305  float ambientWaterTemperature() const;
307 
310  void setWaterCurrentSpeed(float metersPerSecond);
311  float waterCurrentSpeed() const;
313 
316  void setWaterCurrentDirection(float radiansFromNorth);
317  float waterCurrentDirection() const;
319 
322  void setTidalOffset(float meters);
323  float tidalOffset() const;
325 
328  void setTidalDirection(bool inOut);
329  bool tidalDirection() const;
331 
334  void setFogHeight(float meters);
335  float fogHeight() const;
337 
340  void setFogColor(const DtColorRecord& color);
341  const DtColorRecord& fogColor() const;
343 
346  void setThermoclineRecord(
347  unsigned int index, const DtThermoclineRecord& tRec);
348  DtThermoclineRecord thermoclineRecord(unsigned int index) const;
349  void setThermoclineDepth(unsigned int index, float depth);
350  float thermoclineDepth(unsigned int index) const;
351  void setThermoclinePermeability(unsigned int index, float permeability);
352  float thermoclinePermeability(unsigned int index) const;
354 
357  void setGroundSnowAccumulation(float depth);
358  float groundSnowAccumulation() const;
360 
363  void setRoadSnowAccumulation(float depth);
364  float roadSnowAccumulation() const;
366 
369  void setSnowMinimumElevation(float elevation);
370  float snowMinimumElevation() const;
372 
375  void setSnowElevationTransition(float elevation);
376  float snowElevationTransition() const;
378 
381  void setGroundRainAccumulation(float depth);
382  float groundRainAccumulation() const;
384 
387  virtual const std::string*
388  findOptionalParameter(const std::string& name) const;
389 
391  virtual void setOptionalParameter(
392  const std::string& name, const std::string& value);
393 
396  virtual void setOptionalParameters(const OptionalParameterMap&);
397 
399  virtual void removeOptionalParameter(const std::string& name);
400 
402  const OptionalParameterMap& optionalParameters() const;
404 
405  protected:
406 
407  friend class boost::serialization::access;
408 
412  template<class Archive>
413  void serialize(Archive & ar, const unsigned int version)
414  {
415  ar & BOOST_SERIALIZATION_NVP(myAirTurbidity);
416  ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
417  if (version < 4)
418  {
419  ar & BOOST_SERIALIZATION_NVP(myPrecipitationEnabledFlag);
420  ar & BOOST_SERIALIZATION_NVP(myPrecipitationType);
421  if (myPrecipitationEnabledFlag && myPrecipitationType == "Rain")
422  {
423  myPrecipitation = 1;
424  }
425  else if (myPrecipitationEnabledFlag && myPrecipitationType == "Snow")
426  {
427  myPrecipitation = 2;
428  }
429  else
430  {
431  myPrecipitationType = "None";
432  myPrecipitation = 0;
433  }
434  }
435  ar & BOOST_SERIALIZATION_NVP(myPrecipitationIntensity);
436  ar & BOOST_SERIALIZATION_NVP(myCloudLayers);
437  if(version >= 1)
438  {
439  ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
440  ar & BOOST_SERIALIZATION_NVP(myWindDirection);
441  ar & BOOST_SERIALIZATION_NVP(myAmbientAirTemperature);
442  ar & BOOST_SERIALIZATION_NVP(mySeaState);
443  ar & BOOST_SERIALIZATION_NVP(mySeaChoppiness);
444  ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibility);
445  ar & BOOST_SERIALIZATION_NVP(myAmbientWaterTemperature);
446  ar & BOOST_SERIALIZATION_NVP(myWaterCurrentSpeed);
447  ar & BOOST_SERIALIZATION_NVP(myWaterCurrentDirection);
448  ar & BOOST_SERIALIZATION_NVP(myTidalOffset);
449  ar & BOOST_SERIALIZATION_NVP(myTidalDirection);
450  }
451  if (version >= 2)
452  {
453  ar & BOOST_SERIALIZATION_NVP(myEnvironmentName);
454  ar & BOOST_SERIALIZATION_NVP(myOptionalParameters);
455  }
456  if (version >= 3)
457  {
458  ar & BOOST_SERIALIZATION_NVP(mySeaStateDirection);
459  ar & BOOST_SERIALIZATION_NVP(myWindDrivenSeaStateEnabled);
460  ar & BOOST_SERIALIZATION_NVP(mySwellState);
461  ar & BOOST_SERIALIZATION_NVP(mySwellStateDirection);
462  ar & BOOST_SERIALIZATION_NVP(myWindFetch);
463  ar & BOOST_SERIALIZATION_NVP(mySurfaceTransparency);
464  ar & BOOST_SERIALIZATION_NVP(mySurgeDepth);
465  ar & BOOST_SERIALIZATION_NVP(myDepthOffset);
466  }
467  if (version >= 4)
468  {
469  ar & BOOST_SERIALIZATION_NVP(myFogHeight);
470  ar & BOOST_SERIALIZATION_NVP(myFogColor);
471  ar & BOOST_SERIALIZATION_NVP(myPrecipitation);
472  ar & BOOST_SERIALIZATION_NVP(myThermoclineRecordList);
473  }
474  if (version >= 5)
475  {
476  ar & BOOST_SERIALIZATION_NVP(myCloudCoverType);
477  if (version < 7)
478  {
479  ar & BOOST_SERIALIZATION_NVP(myUseCustomCloudCover);
480  }
481  }
482  if (version >= 6)
483  {
484  ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibilityEnabled);
485  }
486  if (version >= 8)
487  {
488  ar & BOOST_SERIALIZATION_NVP(myGroundSnowAccumulation);
489  ar & BOOST_SERIALIZATION_NVP(myRoadSnowAccumulation);
490  ar & BOOST_SERIALIZATION_NVP(mySnowMinimumElevation);
491  ar & BOOST_SERIALIZATION_NVP(mySnowElevationTransition);
492  }
493  if (version >= 9)
494  {
495  ar & BOOST_SERIALIZATION_NVP(myGroundRainAccumulation);
496  }
497  }
498 
499  std::string myEnvironmentName;
500 
507  float myWindSpeed;
510 
516  float myWindFetch;
522 
528 
529  float myFogHeight;
531 
533  // obsolete as of version 7 (it was never actually used)
535 
537 
538  // obsolete as of version 4
540  std::string myPrecipitationType;
541 
543 
549 
550  };
551 
552 }
553 
555 BOOST_CLASS_VERSION(makArchives::DtEnvironmentRecord::DtThermoclineRecord, 0)
556 BOOST_CLASS_VERSION(makArchives::DtEnvironmentRecord, 9)
float myAirTurbidity
Definition: DtEnvironmentRecord.h:501
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: DtEnvironmentRecord.h:80
float myDepthOffset
Definition: DtEnvironmentRecord.h:521
bool myUnderwaterVisibilityEnabled
Definition: DtEnvironmentRecord.h:542
float myWaterCurrentDirection
Definition: DtEnvironmentRecord.h:525
DtColorRecord myFogColor
Definition: DtEnvironmentRecord.h:530
bool myWindDrivenSeaStateEnabled
Definition: DtEnvironmentRecord.h:513
float mySurfaceTransparency
Definition: DtEnvironmentRecord.h:519
float myRoadSnowAccumulation
Definition: DtEnvironmentRecord.h:545
bool myTidalDirection
Definition: DtEnvironmentRecord.h:527
std::map< std::string, std::string > OptionalParameterMap
Definition: DtEnvironmentRecord.h:152
float mySeaStateDirection
Definition: DtEnvironmentRecord.h:512
float mySnowMinimumElevation
Definition: DtEnvironmentRecord.h:546
float myGroundRainAccumulation
Definition: DtEnvironmentRecord.h:548
float myPermeability
Definition: DtEnvironmentRecord.h:147
float mySnowElevationTransition
Definition: DtEnvironmentRecord.h:547
float myWaterCurrentSpeed
Definition: DtEnvironmentRecord.h:524
std::vector< DtThermoclineRecord > ThermoclineRecordList
Definition: DtEnvironmentRecord.h:151
std::string myPrecipitationType
Definition: DtEnvironmentRecord.h:540
float myGreen
Definition: DtEnvironmentRecord.h:93
Contains DLL export macros.
float myBlue
Definition: DtEnvironmentRecord.h:94
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 2)
float myWindSpeed
Definition: DtEnvironmentRecord.h:507
int mySeaState
Definition: DtEnvironmentRecord.h:511
ThermoclineRecordList myThermoclineRecordList
Definition: DtEnvironmentRecord.h:532
float myAlpha
Definition: DtEnvironmentRecord.h:95
float myUnderwaterVisibility
Definition: DtEnvironmentRecord.h:518
float mySeaChoppiness
Definition: DtEnvironmentRecord.h:517
Record of thermocline settings.
Definition: DtEnvironmentRecord.h:100
bool myUseCustomCloudCover
Definition: DtEnvironmentRecord.h:534
Contains makArchives::DtCloudLayerRecord class.
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:502
bool myPrecipitationEnabledFlag
Definition: DtEnvironmentRecord.h:539
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
std::vector< DtCloudLayerRecord > CloudLayerRecordList
Definition: DtEnvironmentRecord.h:150
float mySurgeDepth
Definition: DtEnvironmentRecord.h:520
DtCloudCoverType
Definition: DtCloudCoverType.h:14
Record of color settings.
Definition: DtEnvironmentRecord.h:29
OptionalParameterMap myOptionalParameters
Definition: DtEnvironmentRecord.h:536
float myTidalOffset
Definition: DtEnvironmentRecord.h:526
float myPrecipitationIntensity
Definition: DtEnvironmentRecord.h:504
float myRed
Definition: DtEnvironmentRecord.h:92
float myAmbientAirTemperature
Definition: DtEnvironmentRecord.h:509
std::string myEnvironmentName
Definition: DtEnvironmentRecord.h:499
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:24
DtCloudCoverType myCloudCoverType
Definition: DtEnvironmentRecord.h:506
float myAmbientWaterTemperature
Definition: DtEnvironmentRecord.h:523
int myPrecipitation
Definition: DtEnvironmentRecord.h:503
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: DtEnvironmentRecord.h:139
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the &amp; operator is defined similar to &lt;&lt;...
Definition: DtEnvironmentRecord.h:413
CloudLayerRecordList myCloudLayers
Definition: DtEnvironmentRecord.h:505
float myFogHeight
Definition: DtEnvironmentRecord.h:529
float myDepth
Definition: DtEnvironmentRecord.h:146
float myGroundSnowAccumulation
Definition: DtEnvironmentRecord.h:544
float myWindDirection
Definition: DtEnvironmentRecord.h:508
int mySwellState
Definition: DtEnvironmentRecord.h:514
float mySwellStateDirection
Definition: DtEnvironmentRecord.h:515
#define DT_DLL_MAKARCHIVES
Definition: makArchives.h:31
float myWindFetch
Definition: DtEnvironmentRecord.h:516

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)