45 DtColorRecord(
float r=1.0f,
float g=1.0f,
float b=1.0f,
float a=1.0f);
73 void setGreen(
float g);
79 void setBlue(
float b);
85 void setAlpha(
float a);
91 friend class boost::serialization::access;
97 template<
class Archive>
98 void serialize(Archive & ar,
const unsigned int version)
100 ar & BOOST_SERIALIZATION_NVP(myRed);
101 ar & BOOST_SERIALIZATION_NVP(myGreen);
102 ar & BOOST_SERIALIZATION_NVP(myBlue);
103 ar & BOOST_SERIALIZATION_NVP(myAlpha);
107 static float clamp(
float component);
138 void setDepth(
float meters);
144 void setPermeability(
float normalizedValue);
145 float permeability()
const;
150 friend class boost::serialization::access;
156 template<
class Archive>
157 void serialize(Archive & ar,
const unsigned int version)
159 ar & BOOST_SERIALIZATION_NVP(myDepth);
160 ar & BOOST_SERIALIZATION_NVP(myPermeability);
176 float speedInMetersPerSecond = 0.0,
177 float offsetInRadiansFromTrueNorth = 0.0);
194 void setWindSpeed(
float speedInMetersPerSecond);
195 float windSpeed()
const;
201 void setWindDirection(
float offsetInRadiansFromTrueNorth);
202 float windDirection()
const;
208 void setBaseMSLAltitude(
float mslAltitudeInMeters);
209 float baseMSLAltitude()
const;
214 friend class boost::serialization::access;
220 template<
class Archive>
221 void serialize(Archive & ar,
const unsigned int version)
223 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
224 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
225 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
247 float speedInMetersPerSecond = 0.0,
248 float offsetInRadiansFromTrueNorth = 0.0,
249 float visibilityDistanceInMeters = 20000,
251 const std::string& cloudTypeName =
"None",
252 float cloudDensity = 0.0,
253 float skyCoverageInOktas = 0.0);
270 void setBaseMSLAltitude(
float mslAltitudeInMeters);
271 float baseMSLAltitude()
const;
277 void setWindSpeed(
float speedInMetersPerSecond);
278 float windSpeed()
const;
284 void setWindDirection(
float offsetInRadiansFromTrueNorth);
285 float windDirection()
const;
291 void setVisibilityDistance(
float visibilityInMeters);
292 float visibilityDistance()
const;
303 void setCloudType(
const std::string& cloudTypeEnumerationValue);
304 std::string cloudType()
const;
310 void setCloudDensity(
float cloudDensity);
311 float cloudDensity()
const;
317 void setSkyCoverage(
float skyCoverage);
318 float skyCoverage()
const;
331 friend class boost::serialization::access;
337 template<
class Archive>
338 void serialize(Archive & ar,
const unsigned int version)
340 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
341 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
342 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
343 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
344 ar & BOOST_SERIALIZATION_NVP(myObscurant);
348 ar & BOOST_SERIALIZATION_NVP(myCloudLayer);
352 myCloudLayer.setPosition(0.0, 0.0, myBaseMSLAltitude);
390 void setEnvironmentName(
const std::string& name);
391 const std::string& environmentName()
const;
402 void setIsLocalOnly(
bool isLocalOnly);
403 bool isLocalOnly()
const;
408 void setAirTurbidity(
float turbidity);
409 float airTurbidity()
const;
416 void setVisibleDistance(
float distance);
417 float visibleDistance()
const;
422 void setPrecipitation(
int type);
423 int precipitation()
const;
428 void setPrecipitationIntensity(
float intensity);
429 float precipitationIntensity()
const;
449 virtual void setLightningPresent(
bool lightningPresent);
450 virtual bool lightningPresent()
const;
466 virtual bool removeElevationalConfigurationRecord(
unsigned int index);
471 bool setElevationalConfigurationRecord(
487 bool setElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float baseMSLAltitude);
493 bool getElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float& baseMSLAltitude)
const;
499 bool setElevationalWindSpeed(
unsigned int index,
float metersPerSecond);
505 bool getElevationalWindSpeed(
unsigned int index,
float& windSpeed)
const;
511 bool setElevationalWindDirection(
unsigned int index,
float radiansFromNorth);
517 bool getElevationalWindDirection(
unsigned int index,
float& windDirection)
const;
523 bool setElevationalVisibilityDistance(
unsigned int index,
float meters);
529 bool getElevationalVisibilityDistance(
unsigned int index,
float& visibilityDistance)
const;
541 bool getElevationalVisibilityObscurant(
unsigned int index,
VisibilityObscurant& obscurant)
const;
547 bool setElevationalCloudType(
unsigned int index, std::string cloudTypeName);
554 bool getElevationalCloudType(
unsigned int index, std::string& cloudTypeName)
const;
561 bool setElevationalCloudDensity(
unsigned int index,
float cloudDensity);
568 bool getElevationalCloudDensity(
unsigned int index,
float& cloudDensity)
const;
574 bool setElevationalSkyCoverage(
unsigned int index,
float cloudCoverage);
581 bool getElevationalSkyCoverage(
unsigned int index,
float& cloudCoverage)
const;
587 void setWindSpeed(
float metersPerSecond);
588 float windSpeed()
const;
595 void setWindDirection(
float radiansFromNorth);
596 float windDirection()
const;
601 void setAmbientAirTemperature(
float kelvins);
602 float ambientAirTemperature()
const;
607 void setSeaState(
int douglasScale);
608 int seaState()
const;
613 void setSeaStateDirection(
float radiansFromNorth);
614 float seaStateDirection()
const;
619 void setWindDrivenSeaStateEnabled(
bool enabled);
620 bool windDrivenSeaStateEnabled()
const;
625 void setSwellState(
int douglasScale);
626 int swellState()
const;
631 void setSwellStateDirection(
float radiansFromNorth);
632 float swellStateDirection()
const;
637 void setWindFetch(
float meters);
638 float windFetch()
const;
643 void setSeaChoppiness(
float chop);
644 float seaChoppiness()
const;
649 void setUnderwaterVisibilityEnabled(
bool enabled);
650 bool underwaterVisibilityEnabled()
const;
655 void setUnderwaterVisibility(
float meters);
656 float underwaterVisibility()
const;
661 void setSurfaceTransparency(
float normalizedValue);
662 float surfaceTransparency()
const;
667 void setSurgeDepth(
float meters);
668 float surgeDepth()
const;
673 void setDepthOffset(
float meters);
674 float depthOffset()
const;
679 void setAmbientWaterTemperature(
float kelvins);
680 float ambientWaterTemperature()
const;
685 void setWaterCurrentSpeed(
float metersPerSecond);
686 float waterCurrentSpeed()
const;
691 void setWaterCurrentDirection(
float radiansFromNorth);
692 float waterCurrentDirection()
const;
697 void setTidalOffset(
float meters);
698 float tidalOffset()
const;
703 void setTidalDirection(
bool inOut);
704 bool tidalDirection()
const;
709 void setFogHeight(
float meters);
710 float fogHeight()
const;
721 void setThermoclineRecord(
724 void setThermoclineDepth(
unsigned int index,
float depth);
725 float thermoclineDepth(
unsigned int index)
const;
726 void setThermoclinePermeability(
unsigned int index,
float permeability);
727 float thermoclinePermeability(
unsigned int index)
const;
732 void setGroundSnowAccumulation(
float depth);
733 float groundSnowAccumulation()
const;
738 void setRoadSnowAccumulation(
float depth);
739 float roadSnowAccumulation()
const;
744 void setSnowMinimumElevation(
float elevation);
745 float snowMinimumElevation()
const;
751 void setSnowElevationTransition(
float elevation);
752 float snowElevationTransition()
const;
757 void setGroundRainAccumulation(
float depth);
758 float groundRainAccumulation()
const;
763 void setAmbientAirPressure(
float pressure);
764 float ambientAirPressure()
const;
769 void setAirPressureAltitude(
float altitude);
770 float airPressureAltitude()
const;
775 void setAirTemperatureAltitude(
float altitude);
776 float airTemperatureAltitude()
const;
781 void setAirPressureAltitudeIsSeaLevel(
bool seaLevel);
782 bool airPressureAltitudeIsSeaLevel()
const;
787 void setAirTemperatureAltitudeIsSeaLevel(
bool seaLevel);
788 bool airTemperatureAltitudeIsSeaLevel()
const;
793 void setSeaLevelWaterConcentration(
float water);
794 float seaLevelWaterConcentration()
const;
799 virtual const std::string*
800 findOptionalParameter(
const std::string& name)
const;
803 virtual void setOptionalParameter(
804 const std::string& name,
const std::string& value);
811 virtual void removeOptionalParameter(
const std::string& name);
822 virtual void sortElevationalWindRecordsByBaseMSLAltitude();
828 virtual void sortElevationalConfigurationRecordsByBaseMSLAltitude();
831 virtual void copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
833 friend class boost::serialization::access;
838 template<
class Archive>
839 void serialize(Archive & ar,
const unsigned int version)
841 ar & BOOST_SERIALIZATION_NVP(myAirTurbidity);
845 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
847 bool foundConfig =
false;
848 for (
auto& config : elevationalConfigurations())
851 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
854 config.setVisibilityDistance(myVisibilityDistance);
863 addElevationalConfigurationRecord(newRec);
868 ar & BOOST_SERIALIZATION_NVP(myElevationalConfigurations);
870 for (
auto& config : elevationalConfigurations())
873 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
876 myVisibilityDistance = config.visibilityDistance();
883 ar & BOOST_SERIALIZATION_NVP(myPrecipitationEnabledFlag);
884 ar & BOOST_SERIALIZATION_NVP(myPrecipitationType);
885 if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Rain")
889 else if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Snow")
895 myPrecipitationType =
"None";
899 ar & BOOST_SERIALIZATION_NVP(myPrecipitationIntensity);
900 ar & BOOST_SERIALIZATION_NVP(myCloudLayers);
903 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
904 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
906 bool foundConfig =
false;
907 for (
auto& config : elevationalConfigurations())
910 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
913 config.setWindSpeed(myWindSpeed);
914 config.setWindDirection(myWindDirection);
923 addElevationalConfigurationRecord(newRec);
926 else if (version == 11)
928 ar & BOOST_SERIALIZATION_NVP(myWindConfigurations);
929 copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
933 ar & BOOST_SERIALIZATION_NVP(myAmbientAirTemperature);
934 ar & BOOST_SERIALIZATION_NVP(mySeaState);
935 ar & BOOST_SERIALIZATION_NVP(mySeaChoppiness);
936 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibility);
937 ar & BOOST_SERIALIZATION_NVP(myAmbientWaterTemperature);
938 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentSpeed);
939 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentDirection);
940 ar & BOOST_SERIALIZATION_NVP(myTidalOffset);
941 ar & BOOST_SERIALIZATION_NVP(myTidalDirection);
945 ar & BOOST_SERIALIZATION_NVP(myEnvironmentName);
948 ar & BOOST_SERIALIZATION_NVP(myIsLocalOnly);
950 ar & BOOST_SERIALIZATION_NVP(myOptionalParameters);
954 ar & BOOST_SERIALIZATION_NVP(mySeaStateDirection);
955 ar & BOOST_SERIALIZATION_NVP(myWindDrivenSeaStateEnabled);
956 ar & BOOST_SERIALIZATION_NVP(mySwellState);
957 ar & BOOST_SERIALIZATION_NVP(mySwellStateDirection);
958 ar & BOOST_SERIALIZATION_NVP(myWindFetch);
959 ar & BOOST_SERIALIZATION_NVP(mySurfaceTransparency);
960 ar & BOOST_SERIALIZATION_NVP(mySurgeDepth);
961 ar & BOOST_SERIALIZATION_NVP(myDepthOffset);
965 ar & BOOST_SERIALIZATION_NVP(myFogHeight);
966 ar & BOOST_SERIALIZATION_NVP(myFogColor);
967 ar & BOOST_SERIALIZATION_NVP(myPrecipitation);
968 ar & BOOST_SERIALIZATION_NVP(myThermoclineRecordList);
972 ar & BOOST_SERIALIZATION_NVP(myCloudCoverType);
975 ar & BOOST_SERIALIZATION_NVP(myUseCustomCloudCover);
980 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibilityEnabled);
984 ar & BOOST_SERIALIZATION_NVP(myGroundSnowAccumulation);
985 ar & BOOST_SERIALIZATION_NVP(myRoadSnowAccumulation);
986 ar & BOOST_SERIALIZATION_NVP(mySnowMinimumElevation);
987 ar & BOOST_SERIALIZATION_NVP(mySnowElevationTransition);
991 ar & BOOST_SERIALIZATION_NVP(myGroundRainAccumulation);
995 ar & BOOST_SERIALIZATION_NVP(myAirPressure);
999 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitude);
1000 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitude);
1001 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitudeIsSeaLevel);
1002 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitudeIsSeaLevel);
1003 ar & BOOST_SERIALIZATION_NVP(mySeaLevelWaterConcentration);
1007 ar & BOOST_SERIALIZATION_NVP(myLightningPresent);
1091 BOOST_CLASS_VERSION(makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord, 1)
bool myAirPressureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1081
ElevationalWindRecordList myWindConfigurations
Definition: DtEnvironmentRecord.h:1029
VisibilityObscurant myObscurant
Definition: DtEnvironmentRecord.h:362
float myAirTurbidity
Definition: DtEnvironmentRecord.h:1014
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:98
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
float myDepthOffset
Definition: DtEnvironmentRecord.h:1048
bool myUnderwaterVisibilityEnabled
Definition: DtEnvironmentRecord.h:1069
float myWaterCurrentDirection
Definition: DtEnvironmentRecord.h:1052
DtColorRecord myFogColor
Definition: DtEnvironmentRecord.h:1057
bool myWindDrivenSeaStateEnabled
Definition: DtEnvironmentRecord.h:1040
std::vector< DtElevationalWindRecord > ElevationalWindRecordList
Definition: DtEnvironmentRecord.h:369
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:357
float mySurfaceTransparency
Definition: DtEnvironmentRecord.h:1046
float myRoadSnowAccumulation
Definition: DtEnvironmentRecord.h:1072
bool myTidalDirection
Definition: DtEnvironmentRecord.h:1054
std::map< std::string, std::string > OptionalParameterMap
Definition: DtEnvironmentRecord.h:371
float myAirPressureAltitude
Definition: DtEnvironmentRecord.h:1079
float mySeaStateDirection
Definition: DtEnvironmentRecord.h:1039
float mySnowMinimumElevation
Definition: DtEnvironmentRecord.h:1073
float myGroundRainAccumulation
Definition: DtEnvironmentRecord.h:1075
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
float myPermeability
Definition: DtEnvironmentRecord.h:165
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:229
DtCloudLayerRecord myCloudLayer
Definition: DtEnvironmentRecord.h:364
float mySnowElevationTransition
Definition: DtEnvironmentRecord.h:1074
float myWaterCurrentSpeed
Definition: DtEnvironmentRecord.h:1051
std::vector< DtThermoclineRecord > ThermoclineRecordList
Definition: DtEnvironmentRecord.h:368
std::string myPrecipitationType
Definition: DtEnvironmentRecord.h:1067
float myWindSpeed
Definition: DtEnvironmentRecord.h:358
float myGreen
Definition: DtEnvironmentRecord.h:111
Contains DLL export macros.
float myBlue
Definition: DtEnvironmentRecord.h:112
VisibilityObscurant
Definition: DtEnvironmentRecord.h:21
float myAirTemperatureAltitude
Definition: DtEnvironmentRecord.h:1080
float myAirPressure
Definition: DtEnvironmentRecord.h:1077
float myWindSpeed
Definition: DtEnvironmentRecord.h:1022
float myWindSpeed
Definition: DtEnvironmentRecord.h:230
int mySeaState
Definition: DtEnvironmentRecord.h:1038
ThermoclineRecordList myThermoclineRecordList
Definition: DtEnvironmentRecord.h:1059
float myAlpha
Definition: DtEnvironmentRecord.h:113
float myUnderwaterVisibility
Definition: DtEnvironmentRecord.h:1045
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:242
float mySeaChoppiness
Definition: DtEnvironmentRecord.h:1044
bool myAirTemperatureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1082
Record of thermocline settings.
Definition: DtEnvironmentRecord.h:118
bool myUseCustomCloudCover
Definition: DtEnvironmentRecord.h:1061
Contains makArchives::DtCloudLayerRecord class.
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:1026
bool myPrecipitationEnabledFlag
Definition: DtEnvironmentRecord.h:1066
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:221
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:367
Record of a single cloud layer's settings.
Definition: DtCloudLayerRecord.h:17
float mySurgeDepth
Definition: DtEnvironmentRecord.h:1047
DtCloudCoverType
Definition: DtCloudCoverType.h:14
Record of color settings.
Definition: DtEnvironmentRecord.h:41
OptionalParameterMap myOptionalParameters
Definition: DtEnvironmentRecord.h:1063
float myTidalOffset
Definition: DtEnvironmentRecord.h:1053
float myPrecipitationIntensity
Definition: DtEnvironmentRecord.h:1016
float myRed
Definition: DtEnvironmentRecord.h:110
float myAmbientAirTemperature
Definition: DtEnvironmentRecord.h:1036
ElevationalConfigurationRecordList myElevationalConfigurations
Definition: DtEnvironmentRecord.h:1034
std::string myEnvironmentName
Definition: DtEnvironmentRecord.h:1011
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
float myWindDirection
Definition: DtEnvironmentRecord.h:231
DtCloudCoverType myCloudCoverType
Definition: DtEnvironmentRecord.h:1018
float myAmbientWaterTemperature
Definition: DtEnvironmentRecord.h:1050
int myPrecipitation
Definition: DtEnvironmentRecord.h:1015
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:157
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:839
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:338
bool myIsLocalOnly
Definition: DtEnvironmentRecord.h:1012
CloudLayerRecordList myCloudLayers
Definition: DtEnvironmentRecord.h:1017
bool myLightningPresent
Definition: DtEnvironmentRecord.h:1019
float myFogHeight
Definition: DtEnvironmentRecord.h:1056
float myDepth
Definition: DtEnvironmentRecord.h:164
float myGroundSnowAccumulation
Definition: DtEnvironmentRecord.h:1071
DT_DLL_terrainCS bool operator!=(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
float myWindDirection
Definition: DtEnvironmentRecord.h:1023
std::vector< DtElevationalConfigurationRecord > ElevationalConfigurationRecordList
Definition: DtEnvironmentRecord.h:370
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:361
int mySwellState
Definition: DtEnvironmentRecord.h:1041
float mySeaLevelWaterConcentration
Definition: DtEnvironmentRecord.h:1083
float mySwellStateDirection
Definition: DtEnvironmentRecord.h:1042
#define DT_DLL_MAKARCHIVES
Definition: makArchives.h:31
Record for an elevational wind configuration.
Definition: DtEnvironmentRecord.h:171
float myWindDirection
Definition: DtEnvironmentRecord.h:359
float myWindFetch
Definition: DtEnvironmentRecord.h:1043