54 DtColorRecord(
float r=1.0f,
float g=1.0f,
float b=1.0f,
float a=1.0f);
82 void setGreen(
float g);
88 void setBlue(
float b);
94 void setAlpha(
float a);
100 friend class boost::serialization::access;
106 template<
class Archive>
107 void serialize(Archive & ar,
const unsigned int version)
109 ar & BOOST_SERIALIZATION_NVP(myRed);
110 ar & BOOST_SERIALIZATION_NVP(myGreen);
111 ar & BOOST_SERIALIZATION_NVP(myBlue);
112 ar & BOOST_SERIALIZATION_NVP(myAlpha);
116 static float clamp(
float component);
147 void setDepth(
float meters);
153 void setPermeability(
float normalizedValue);
154 float permeability()
const;
159 friend class boost::serialization::access;
165 template<
class Archive>
166 void serialize(Archive & ar,
const unsigned int version)
168 ar & BOOST_SERIALIZATION_NVP(myDepth);
169 ar & BOOST_SERIALIZATION_NVP(myPermeability);
185 float speedInMetersPerSecond = 0.0,
186 float offsetInRadiansFromTrueNorth = 0.0);
203 void setWindSpeed(
float speedInMetersPerSecond);
204 float windSpeed()
const;
210 void setWindDirection(
float offsetInRadiansFromTrueNorth);
211 float windDirection()
const;
217 void setBaseMSLAltitude(
float mslAltitudeInMeters);
218 float baseMSLAltitude()
const;
223 friend class boost::serialization::access;
229 template<
class Archive>
230 void serialize(Archive & ar,
const unsigned int version)
232 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
233 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
234 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
256 float speedInMetersPerSecond = 0.0,
257 float offsetInRadiansFromTrueNorth = 0.0,
258 float visibilityDistanceInMeters = 20000,
260 const std::string& cloudTypeName =
"None",
261 float cloudDensity = 0.0,
262 float skyCoverageInOktas = 0.0);
279 void setBaseMSLAltitude(
float mslAltitudeInMeters);
280 float baseMSLAltitude()
const;
286 void setWindSpeed(
float speedInMetersPerSecond);
287 float windSpeed()
const;
293 void setWindDirection(
float offsetInRadiansFromTrueNorth);
294 float windDirection()
const;
300 void setVisibilityDistance(
float visibilityInMeters);
301 float visibilityDistance()
const;
312 void setCloudType(
const std::string& cloudTypeEnumerationValue);
313 std::string cloudType()
const;
319 void setCloudDensity(
float cloudDensity);
320 float cloudDensity()
const;
326 void setSkyCoverage(
float skyCoverage);
327 float skyCoverage()
const;
340 friend class boost::serialization::access;
346 template<
class Archive>
347 void serialize(Archive & ar,
const unsigned int version)
349 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
350 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
351 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
352 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
353 ar & BOOST_SERIALIZATION_NVP(myObscurant);
357 ar & BOOST_SERIALIZATION_NVP(myCloudLayer);
361 myCloudLayer.setPosition(0.0, 0.0, myBaseMSLAltitude);
399 void setEnvironmentName(
const std::string& name);
400 const std::string& environmentName()
const;
411 void setIsLocalOnly(
bool isLocalOnly);
412 bool isLocalOnly()
const;
417 void setAirTurbidity(
float turbidity);
418 float airTurbidity()
const;
425 void setVisibleDistance(
float distance);
426 float visibleDistance()
const;
431 void setPrecipitation(
int type);
432 int precipitation()
const;
437 void setPrecipitationIntensity(
float intensity);
438 float precipitationIntensity()
const;
458 virtual void setLightningPresent(
bool lightningPresent);
459 virtual bool lightningPresent()
const;
481 virtual bool removeElevationalConfigurationRecord(
unsigned int index);
486 bool setElevationalConfigurationRecord(
502 bool setElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float baseMSLAltitude);
508 bool getElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float& baseMSLAltitude)
const;
514 bool setElevationalWindSpeed(
unsigned int index,
float metersPerSecond);
520 bool getElevationalWindSpeed(
unsigned int index,
float& windSpeed)
const;
526 bool setElevationalWindDirection(
unsigned int index,
float radiansFromNorth);
532 bool getElevationalWindDirection(
unsigned int index,
float& windDirection)
const;
538 bool setElevationalVisibilityDistance(
unsigned int index,
float meters);
544 bool getElevationalVisibilityDistance(
unsigned int index,
float& visibilityDistance)
const;
556 bool getElevationalVisibilityObscurant(
unsigned int index,
VisibilityObscurant& obscurant)
const;
562 bool setElevationalCloudType(
unsigned int index, std::string cloudTypeName);
569 bool getElevationalCloudType(
unsigned int index, std::string& cloudTypeName)
const;
576 bool setElevationalCloudDensity(
unsigned int index,
float cloudDensity);
583 bool getElevationalCloudDensity(
unsigned int index,
float& cloudDensity)
const;
589 bool setElevationalSkyCoverage(
unsigned int index,
float cloudCoverage);
596 bool getElevationalSkyCoverage(
unsigned int index,
float& cloudCoverage)
const;
602 void setWindSpeed(
float metersPerSecond);
603 float windSpeed()
const;
610 void setWindDirection(
float radiansFromNorth);
611 float windDirection()
const;
616 void setAmbientAirTemperature(
float kelvins);
617 float ambientAirTemperature()
const;
622 void setSeaState(
int douglasScale);
623 int seaState()
const;
628 void setSeaStateDirection(
float radiansFromNorth);
629 float seaStateDirection()
const;
634 void setWindDrivenSeaStateEnabled(
bool enabled);
635 bool windDrivenSeaStateEnabled()
const;
640 void setSwellState(
int douglasScale);
641 int swellState()
const;
646 void setSwellStateDirection(
float radiansFromNorth);
647 float swellStateDirection()
const;
652 void setWindFetch(
float meters);
653 float windFetch()
const;
658 void setSeaChoppiness(
float chop);
659 float seaChoppiness()
const;
664 void setUnderwaterVisibilityEnabled(
bool enabled);
665 bool underwaterVisibilityEnabled()
const;
670 void setUnderwaterVisibility(
float meters);
671 float underwaterVisibility()
const;
676 void setSurfaceTransparency(
float normalizedValue);
677 float surfaceTransparency()
const;
682 void setSurgeDepth(
float meters);
683 float surgeDepth()
const;
688 void setDepthOffset(
float meters);
689 float depthOffset()
const;
694 void setAmbientWaterTemperature(
float kelvins);
695 float ambientWaterTemperature()
const;
700 void setWaterCurrentSpeed(
float metersPerSecond);
701 float waterCurrentSpeed()
const;
706 void setWaterCurrentDirection(
float radiansFromNorth);
707 float waterCurrentDirection()
const;
712 void setTidalOffset(
float meters);
713 float tidalOffset()
const;
718 void setTidalDirection(
bool inOut);
719 bool tidalDirection()
const;
724 void setFogHeight(
float meters);
725 float fogHeight()
const;
736 void setThermoclineRecord(
739 void setThermoclineDepth(
unsigned int index,
float depth);
740 float thermoclineDepth(
unsigned int index)
const;
741 void setThermoclinePermeability(
unsigned int index,
float permeability);
742 float thermoclinePermeability(
unsigned int index)
const;
747 void setGroundSnowAccumulation(
float depth);
748 float groundSnowAccumulation()
const;
753 void setRoadSnowAccumulation(
float depth);
754 float roadSnowAccumulation()
const;
759 void setSnowMinimumElevation(
float elevation);
760 float snowMinimumElevation()
const;
766 void setSnowElevationTransition(
float elevation);
767 float snowElevationTransition()
const;
772 void setGroundRainAccumulation(
float depth);
773 float groundRainAccumulation()
const;
778 void setAmbientAirPressure(
float pressure);
779 float ambientAirPressure()
const;
784 void setAirPressureAltitude(
float altitude);
785 float airPressureAltitude()
const;
790 void setAirTemperatureAltitude(
float altitude);
791 float airTemperatureAltitude()
const;
796 void setAirPressureAltitudeIsSeaLevel(
bool seaLevel);
797 bool airPressureAltitudeIsSeaLevel()
const;
802 void setAirTemperatureAltitudeIsSeaLevel(
bool seaLevel);
803 bool airTemperatureAltitudeIsSeaLevel()
const;
808 void setSeaLevelWaterConcentration(
float water);
809 float seaLevelWaterConcentration()
const;
814 virtual const std::string*
815 findOptionalParameter(
const std::string& name)
const;
818 virtual void setOptionalParameter(
819 const std::string& name,
const std::string& value);
826 virtual void removeOptionalParameter(
const std::string& name);
837 virtual void sortElevationalWindRecordsByBaseMSLAltitude();
843 virtual void sortElevationalConfigurationRecordsByBaseMSLAltitude();
846 virtual void copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
848 friend class boost::serialization::access;
853 template<
class Archive>
854 void serialize(Archive & ar,
const unsigned int version)
856 ar & BOOST_SERIALIZATION_NVP(myAirTurbidity);
860 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
862 bool foundConfig =
false;
863 for (
auto& config : elevationalConfigurations())
866 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
869 config.setVisibilityDistance(myVisibilityDistance);
878 addElevationalConfigurationRecord(newRec);
883 ar & BOOST_SERIALIZATION_NVP(myElevationalConfigurations);
885 for (
auto& config : elevationalConfigurations())
888 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
891 myVisibilityDistance = config.visibilityDistance();
898 ar & BOOST_SERIALIZATION_NVP(myPrecipitationEnabledFlag);
899 ar & BOOST_SERIALIZATION_NVP(myPrecipitationType);
900 if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Rain")
904 else if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Snow")
910 myPrecipitationType =
"None";
914 ar & BOOST_SERIALIZATION_NVP(myPrecipitationIntensity);
915 ar & BOOST_SERIALIZATION_NVP(myCloudLayers);
918 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
919 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
921 bool foundConfig =
false;
922 for (
auto& config : elevationalConfigurations())
925 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
928 config.setWindSpeed(myWindSpeed);
929 config.setWindDirection(myWindDirection);
938 addElevationalConfigurationRecord(newRec);
941 else if (version == 11)
943 ar & BOOST_SERIALIZATION_NVP(myWindConfigurations);
944 copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
948 ar & BOOST_SERIALIZATION_NVP(myAmbientAirTemperature);
949 ar & BOOST_SERIALIZATION_NVP(mySeaState);
950 ar & BOOST_SERIALIZATION_NVP(mySeaChoppiness);
951 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibility);
952 ar & BOOST_SERIALIZATION_NVP(myAmbientWaterTemperature);
953 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentSpeed);
954 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentDirection);
955 ar & BOOST_SERIALIZATION_NVP(myTidalOffset);
956 ar & BOOST_SERIALIZATION_NVP(myTidalDirection);
960 ar & BOOST_SERIALIZATION_NVP(myEnvironmentName);
963 ar & BOOST_SERIALIZATION_NVP(myIsLocalOnly);
965 ar & BOOST_SERIALIZATION_NVP(myOptionalParameters);
969 ar & BOOST_SERIALIZATION_NVP(mySeaStateDirection);
970 ar & BOOST_SERIALIZATION_NVP(myWindDrivenSeaStateEnabled);
971 ar & BOOST_SERIALIZATION_NVP(mySwellState);
972 ar & BOOST_SERIALIZATION_NVP(mySwellStateDirection);
973 ar & BOOST_SERIALIZATION_NVP(myWindFetch);
974 ar & BOOST_SERIALIZATION_NVP(mySurfaceTransparency);
975 ar & BOOST_SERIALIZATION_NVP(mySurgeDepth);
976 ar & BOOST_SERIALIZATION_NVP(myDepthOffset);
980 ar & BOOST_SERIALIZATION_NVP(myFogHeight);
981 ar & BOOST_SERIALIZATION_NVP(myFogColor);
982 ar & BOOST_SERIALIZATION_NVP(myPrecipitation);
983 ar & BOOST_SERIALIZATION_NVP(myThermoclineRecordList);
987 ar & BOOST_SERIALIZATION_NVP(myCloudCoverType);
990 ar & BOOST_SERIALIZATION_NVP(myUseCustomCloudCover);
995 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibilityEnabled);
999 ar & BOOST_SERIALIZATION_NVP(myGroundSnowAccumulation);
1000 ar & BOOST_SERIALIZATION_NVP(myRoadSnowAccumulation);
1001 ar & BOOST_SERIALIZATION_NVP(mySnowMinimumElevation);
1002 ar & BOOST_SERIALIZATION_NVP(mySnowElevationTransition);
1006 ar & BOOST_SERIALIZATION_NVP(myGroundRainAccumulation);
1010 ar & BOOST_SERIALIZATION_NVP(myAirPressure);
1014 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitude);
1015 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitude);
1016 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitudeIsSeaLevel);
1017 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitudeIsSeaLevel);
1018 ar & BOOST_SERIALIZATION_NVP(mySeaLevelWaterConcentration);
1022 ar & BOOST_SERIALIZATION_NVP(myLightningPresent);
1027 ar& BOOST_SERIALIZATION_NVP(myBlowingParticulateMatter);
1113 BOOST_CLASS_VERSION(makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord, 1)
bool myAirPressureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1103
ElevationalWindRecordList myWindConfigurations
Definition: DtEnvironmentRecord.h:1051
VisibilityObscurant myObscurant
Definition: DtEnvironmentRecord.h:371
float myAirTurbidity
Definition: DtEnvironmentRecord.h:1034
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: DtEnvironmentRecord.h:107
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
float myDepthOffset
Definition: DtEnvironmentRecord.h:1070
bool myUnderwaterVisibilityEnabled
Definition: DtEnvironmentRecord.h:1091
float myWaterCurrentDirection
Definition: DtEnvironmentRecord.h:1074
DtColorRecord myFogColor
Definition: DtEnvironmentRecord.h:1079
bool myWindDrivenSeaStateEnabled
Definition: DtEnvironmentRecord.h:1062
std::vector< DtElevationalWindRecord > ElevationalWindRecordList
Definition: DtEnvironmentRecord.h:378
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:366
float mySurfaceTransparency
Definition: DtEnvironmentRecord.h:1068
float myRoadSnowAccumulation
Definition: DtEnvironmentRecord.h:1094
bool myTidalDirection
Definition: DtEnvironmentRecord.h:1076
std::map< std::string, std::string > OptionalParameterMap
Definition: DtEnvironmentRecord.h:380
float myAirPressureAltitude
Definition: DtEnvironmentRecord.h:1101
float mySeaStateDirection
Definition: DtEnvironmentRecord.h:1061
float mySnowMinimumElevation
Definition: DtEnvironmentRecord.h:1095
float myGroundRainAccumulation
Definition: DtEnvironmentRecord.h:1097
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
float myPermeability
Definition: DtEnvironmentRecord.h:174
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:238
DtCloudLayerRecord myCloudLayer
Definition: DtEnvironmentRecord.h:373
float mySnowElevationTransition
Definition: DtEnvironmentRecord.h:1096
float myWaterCurrentSpeed
Definition: DtEnvironmentRecord.h:1073
std::vector< DtThermoclineRecord > ThermoclineRecordList
Definition: DtEnvironmentRecord.h:377
std::string myPrecipitationType
Definition: DtEnvironmentRecord.h:1089
float myWindSpeed
Definition: DtEnvironmentRecord.h:367
float myGreen
Definition: DtEnvironmentRecord.h:120
Contains DLL export macros.
float myBlue
Definition: DtEnvironmentRecord.h:121
VisibilityObscurant
Definition: DtEnvironmentRecord.h:30
float myAirTemperatureAltitude
Definition: DtEnvironmentRecord.h:1102
float myAirPressure
Definition: DtEnvironmentRecord.h:1099
float myWindSpeed
Definition: DtEnvironmentRecord.h:1044
BlowingParticulateMatterType
Definition: DtEnvironmentRecord.h:22
float myWindSpeed
Definition: DtEnvironmentRecord.h:239
int mySeaState
Definition: DtEnvironmentRecord.h:1060
ThermoclineRecordList myThermoclineRecordList
Definition: DtEnvironmentRecord.h:1081
float myAlpha
Definition: DtEnvironmentRecord.h:122
float myUnderwaterVisibility
Definition: DtEnvironmentRecord.h:1067
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:251
float mySeaChoppiness
Definition: DtEnvironmentRecord.h:1066
bool myAirTemperatureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1104
Record of thermocline settings.
Definition: DtEnvironmentRecord.h:127
bool myUseCustomCloudCover
Definition: DtEnvironmentRecord.h:1083
Contains makArchives::DtCloudLayerRecord class.
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:1048
bool myPrecipitationEnabledFlag
Definition: DtEnvironmentRecord.h:1088
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: DtEnvironmentRecord.h:230
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
std::vector< DtCloudLayerRecord > CloudLayerRecordList
Definition: DtEnvironmentRecord.h:376
Record of a single cloud layer's settings.
Definition: DtCloudLayerRecord.h:17
float mySurgeDepth
Definition: DtEnvironmentRecord.h:1069
DtCloudCoverType
Definition: DtCloudCoverType.h:14
Record of color settings.
Definition: DtEnvironmentRecord.h:50
OptionalParameterMap myOptionalParameters
Definition: DtEnvironmentRecord.h:1085
float myTidalOffset
Definition: DtEnvironmentRecord.h:1075
float myPrecipitationIntensity
Definition: DtEnvironmentRecord.h:1036
float myRed
Definition: DtEnvironmentRecord.h:119
float myAmbientAirTemperature
Definition: DtEnvironmentRecord.h:1058
ElevationalConfigurationRecordList myElevationalConfigurations
Definition: DtEnvironmentRecord.h:1056
std::string myEnvironmentName
Definition: DtEnvironmentRecord.h:1031
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:45
float myWindDirection
Definition: DtEnvironmentRecord.h:240
DtCloudCoverType myCloudCoverType
Definition: DtEnvironmentRecord.h:1038
float myAmbientWaterTemperature
Definition: DtEnvironmentRecord.h:1072
int myPrecipitation
Definition: DtEnvironmentRecord.h:1035
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: DtEnvironmentRecord.h:166
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: DtEnvironmentRecord.h:854
void serialize(Archive &ar, const unsigned int version)
When the class Archive corresponds to an output archive, the & operator is defined similar to <<...
Definition: DtEnvironmentRecord.h:347
bool myIsLocalOnly
Definition: DtEnvironmentRecord.h:1032
CloudLayerRecordList myCloudLayers
Definition: DtEnvironmentRecord.h:1037
bool myLightningPresent
Definition: DtEnvironmentRecord.h:1039
float myFogHeight
Definition: DtEnvironmentRecord.h:1078
float myDepth
Definition: DtEnvironmentRecord.h:173
float myGroundSnowAccumulation
Definition: DtEnvironmentRecord.h:1093
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
float myWindDirection
Definition: DtEnvironmentRecord.h:1045
std::vector< DtElevationalConfigurationRecord > ElevationalConfigurationRecordList
Definition: DtEnvironmentRecord.h:379
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:370
int mySwellState
Definition: DtEnvironmentRecord.h:1063
float mySeaLevelWaterConcentration
Definition: DtEnvironmentRecord.h:1105
float mySwellStateDirection
Definition: DtEnvironmentRecord.h:1064
#define DT_DLL_MAKARCHIVES
Definition: makArchives.h:31
Record for an elevational wind configuration.
Definition: DtEnvironmentRecord.h:180
float myWindDirection
Definition: DtEnvironmentRecord.h:368
BlowingParticulateMatterType myBlowingParticulateMatter
Definition: DtEnvironmentRecord.h:1041
float myWindFetch
Definition: DtEnvironmentRecord.h:1065