45 DtColorRecord(
float r=1.0f,
float g=1.0f,
float b=1.0f,
float a=1.0f);
67 void setGreen(
float g);
73 void setBlue(
float b);
79 void setAlpha(
float a);
85 friend class boost::serialization::access;
91 template<
class Archive>
92 void serialize(Archive & ar,
const unsigned int version)
94 ar & BOOST_SERIALIZATION_NVP(myRed);
95 ar & BOOST_SERIALIZATION_NVP(myGreen);
96 ar & BOOST_SERIALIZATION_NVP(myBlue);
97 ar & BOOST_SERIALIZATION_NVP(myAlpha);
101 static float clamp(
float component);
132 void setDepth(
float meters);
138 void setPermeability(
float normalizedValue);
139 float permeability()
const;
144 friend class boost::serialization::access;
150 template<
class Archive>
151 void serialize(Archive & ar,
const unsigned int version)
153 ar & BOOST_SERIALIZATION_NVP(myDepth);
154 ar & BOOST_SERIALIZATION_NVP(myPermeability);
170 float speedInMetersPerSecond = 0.0,
171 float offsetInRadiansFromTrueNorth = 0.0);
188 void setWindSpeed(
float speedInMetersPerSecond);
189 float windSpeed()
const;
195 void setWindDirection(
float offsetInRadiansFromTrueNorth);
196 float windDirection()
const;
202 void setBaseMSLAltitude(
float mslAltitudeInMeters);
203 float baseMSLAltitude()
const;
208 friend class boost::serialization::access;
214 template<
class Archive>
215 void serialize(Archive & ar,
const unsigned int version)
217 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
218 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
219 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
241 float speedInMetersPerSecond = 0.0,
242 float offsetInRadiansFromTrueNorth = 0.0,
243 float visibilityDistanceInMeters = 20000,
245 const std::string& cloudTypeName =
"None",
246 float cloudDensity = 0.0,
247 float skyCoverageInOktas = 0.0);
264 void setBaseMSLAltitude(
float mslAltitudeInMeters);
265 float baseMSLAltitude()
const;
271 void setWindSpeed(
float speedInMetersPerSecond);
272 float windSpeed()
const;
278 void setWindDirection(
float offsetInRadiansFromTrueNorth);
279 float windDirection()
const;
285 void setVisibilityDistance(
float visibilityInMeters);
286 float visibilityDistance()
const;
297 void setCloudType(
const std::string& cloudTypeEnumerationValue);
298 std::string cloudType()
const;
304 void setCloudDensity(
float cloudDensity);
305 float cloudDensity()
const;
311 void setSkyCoverage(
float skyCoverage);
312 float skyCoverage()
const;
325 friend class boost::serialization::access;
331 template<
class Archive>
332 void serialize(Archive & ar,
const unsigned int version)
334 ar & BOOST_SERIALIZATION_NVP(myBaseMSLAltitude);
335 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
336 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
337 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
338 ar & BOOST_SERIALIZATION_NVP(myObscurant);
342 ar & BOOST_SERIALIZATION_NVP(myCloudLayer);
346 myCloudLayer.setPosition(0.0, 0.0, myBaseMSLAltitude);
384 void setEnvironmentName(
const std::string& name);
385 const std::string& environmentName()
const;
396 void setIsLocalOnly(
bool isLocalOnly);
397 bool isLocalOnly()
const;
402 void setAirTurbidity(
float turbidity);
403 float airTurbidity()
const;
410 void setVisibleDistance(
float distance);
411 float visibleDistance()
const;
416 void setPrecipitation(
int type);
417 int precipitation()
const;
422 void setPrecipitationIntensity(
float intensity);
423 float precipitationIntensity()
const;
443 virtual void setLightningPresent(
bool lightningPresent);
444 virtual bool lightningPresent()
const;
460 virtual bool removeElevationalConfigurationRecord(
unsigned int index);
465 bool setElevationalConfigurationRecord(
481 bool setElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float baseMSLAltitude);
487 bool getElevationalConfigurationBaseMSLAltitude(
unsigned int index,
float& baseMSLAltitude)
const;
493 bool setElevationalWindSpeed(
unsigned int index,
float metersPerSecond);
499 bool getElevationalWindSpeed(
unsigned int index,
float& windSpeed)
const;
505 bool setElevationalWindDirection(
unsigned int index,
float radiansFromNorth);
511 bool getElevationalWindDirection(
unsigned int index,
float& windDirection)
const;
517 bool setElevationalVisibilityDistance(
unsigned int index,
float meters);
523 bool getElevationalVisibilityDistance(
unsigned int index,
float& visibilityDistance)
const;
535 bool getElevationalVisibilityObscurant(
unsigned int index,
VisibilityObscurant& obscurant)
const;
541 bool setElevationalCloudType(
unsigned int index, std::string cloudTypeName);
548 bool getElevationalCloudType(
unsigned int index, std::string& cloudTypeName)
const;
555 bool setElevationalCloudDensity(
unsigned int index,
float cloudDensity);
562 bool getElevationalCloudDensity(
unsigned int index,
float& cloudDensity)
const;
568 bool setElevationalSkyCoverage(
unsigned int index,
float cloudCoverage);
575 bool getElevationalSkyCoverage(
unsigned int index,
float& cloudCoverage)
const;
581 void setWindSpeed(
float metersPerSecond);
582 float windSpeed()
const;
589 void setWindDirection(
float radiansFromNorth);
590 float windDirection()
const;
595 void setAmbientAirTemperature(
float kelvins);
596 float ambientAirTemperature()
const;
601 void setSeaState(
int douglasScale);
602 int seaState()
const;
607 void setSeaStateDirection(
float radiansFromNorth);
608 float seaStateDirection()
const;
613 void setWindDrivenSeaStateEnabled(
bool enabled);
614 bool windDrivenSeaStateEnabled()
const;
619 void setSwellState(
int douglasScale);
620 int swellState()
const;
625 void setSwellStateDirection(
float radiansFromNorth);
626 float swellStateDirection()
const;
631 void setWindFetch(
float meters);
632 float windFetch()
const;
637 void setSeaChoppiness(
float chop);
638 float seaChoppiness()
const;
643 void setUnderwaterVisibilityEnabled(
bool enabled);
644 bool underwaterVisibilityEnabled()
const;
649 void setUnderwaterVisibility(
float meters);
650 float underwaterVisibility()
const;
655 void setSurfaceTransparency(
float normalizedValue);
656 float surfaceTransparency()
const;
661 void setSurgeDepth(
float meters);
662 float surgeDepth()
const;
667 void setDepthOffset(
float meters);
668 float depthOffset()
const;
673 void setAmbientWaterTemperature(
float kelvins);
674 float ambientWaterTemperature()
const;
679 void setWaterCurrentSpeed(
float metersPerSecond);
680 float waterCurrentSpeed()
const;
685 void setWaterCurrentDirection(
float radiansFromNorth);
686 float waterCurrentDirection()
const;
691 void setTidalOffset(
float meters);
692 float tidalOffset()
const;
697 void setTidalDirection(
bool inOut);
698 bool tidalDirection()
const;
703 void setFogHeight(
float meters);
704 float fogHeight()
const;
715 void setThermoclineRecord(
718 void setThermoclineDepth(
unsigned int index,
float depth);
719 float thermoclineDepth(
unsigned int index)
const;
720 void setThermoclinePermeability(
unsigned int index,
float permeability);
721 float thermoclinePermeability(
unsigned int index)
const;
726 void setGroundSnowAccumulation(
float depth);
727 float groundSnowAccumulation()
const;
732 void setRoadSnowAccumulation(
float depth);
733 float roadSnowAccumulation()
const;
738 void setSnowMinimumElevation(
float elevation);
739 float snowMinimumElevation()
const;
745 void setSnowElevationTransition(
float elevation);
746 float snowElevationTransition()
const;
751 void setGroundRainAccumulation(
float depth);
752 float groundRainAccumulation()
const;
757 void setAmbientAirPressure(
float pressure);
758 float ambientAirPressure()
const;
763 void setAirPressureAltitude(
float altitude);
764 float airPressureAltitude()
const;
769 void setAirTemperatureAltitude(
float altitude);
770 float airTemperatureAltitude()
const;
775 void setAirPressureAltitudeIsSeaLevel(
bool seaLevel);
776 bool airPressureAltitudeIsSeaLevel()
const;
781 void setAirTemperatureAltitudeIsSeaLevel(
bool seaLevel);
782 bool airTemperatureAltitudeIsSeaLevel()
const;
787 void setSeaLevelWaterConcentration(
float water);
788 float seaLevelWaterConcentration()
const;
793 virtual const std::string*
794 findOptionalParameter(
const std::string& name)
const;
797 virtual void setOptionalParameter(
798 const std::string& name,
const std::string& value);
805 virtual void removeOptionalParameter(
const std::string& name);
816 virtual void sortElevationalWindRecordsByBaseMSLAltitude();
822 virtual void sortElevationalConfigurationRecordsByBaseMSLAltitude();
825 virtual void copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
827 friend class boost::serialization::access;
832 template<
class Archive>
833 void serialize(Archive & ar,
const unsigned int version)
835 ar & BOOST_SERIALIZATION_NVP(myAirTurbidity);
839 ar & BOOST_SERIALIZATION_NVP(myVisibilityDistance);
841 bool foundConfig =
false;
842 for (
auto& config : elevationalConfigurations())
845 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
848 config.setVisibilityDistance(myVisibilityDistance);
857 addElevationalConfigurationRecord(newRec);
862 ar & BOOST_SERIALIZATION_NVP(myElevationalConfigurations);
864 for (
auto& config : elevationalConfigurations())
867 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
870 myVisibilityDistance = config.visibilityDistance();
877 ar & BOOST_SERIALIZATION_NVP(myPrecipitationEnabledFlag);
878 ar & BOOST_SERIALIZATION_NVP(myPrecipitationType);
879 if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Rain")
883 else if (myPrecipitationEnabledFlag && myPrecipitationType ==
"Snow")
889 myPrecipitationType =
"None";
893 ar & BOOST_SERIALIZATION_NVP(myPrecipitationIntensity);
894 ar & BOOST_SERIALIZATION_NVP(myCloudLayers);
897 ar & BOOST_SERIALIZATION_NVP(myWindSpeed);
898 ar & BOOST_SERIALIZATION_NVP(myWindDirection);
900 bool foundConfig =
false;
901 for (
auto& config : elevationalConfigurations())
904 if (config.baseMSLAltitude() < 0.0001f && config.baseMSLAltitude() > -0.0001f)
907 config.setWindSpeed(myWindSpeed);
908 config.setWindDirection(myWindDirection);
917 addElevationalConfigurationRecord(newRec);
920 else if (version == 11)
922 ar & BOOST_SERIALIZATION_NVP(myWindConfigurations);
923 copyOldWindSpecificElevationalConfigurationsToNewElevationalConfigurations();
927 ar & BOOST_SERIALIZATION_NVP(myAmbientAirTemperature);
928 ar & BOOST_SERIALIZATION_NVP(mySeaState);
929 ar & BOOST_SERIALIZATION_NVP(mySeaChoppiness);
930 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibility);
931 ar & BOOST_SERIALIZATION_NVP(myAmbientWaterTemperature);
932 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentSpeed);
933 ar & BOOST_SERIALIZATION_NVP(myWaterCurrentDirection);
934 ar & BOOST_SERIALIZATION_NVP(myTidalOffset);
935 ar & BOOST_SERIALIZATION_NVP(myTidalDirection);
939 ar & BOOST_SERIALIZATION_NVP(myEnvironmentName);
942 ar & BOOST_SERIALIZATION_NVP(myIsLocalOnly);
944 ar & BOOST_SERIALIZATION_NVP(myOptionalParameters);
948 ar & BOOST_SERIALIZATION_NVP(mySeaStateDirection);
949 ar & BOOST_SERIALIZATION_NVP(myWindDrivenSeaStateEnabled);
950 ar & BOOST_SERIALIZATION_NVP(mySwellState);
951 ar & BOOST_SERIALIZATION_NVP(mySwellStateDirection);
952 ar & BOOST_SERIALIZATION_NVP(myWindFetch);
953 ar & BOOST_SERIALIZATION_NVP(mySurfaceTransparency);
954 ar & BOOST_SERIALIZATION_NVP(mySurgeDepth);
955 ar & BOOST_SERIALIZATION_NVP(myDepthOffset);
959 ar & BOOST_SERIALIZATION_NVP(myFogHeight);
960 ar & BOOST_SERIALIZATION_NVP(myFogColor);
961 ar & BOOST_SERIALIZATION_NVP(myPrecipitation);
962 ar & BOOST_SERIALIZATION_NVP(myThermoclineRecordList);
966 ar & BOOST_SERIALIZATION_NVP(myCloudCoverType);
969 ar & BOOST_SERIALIZATION_NVP(myUseCustomCloudCover);
974 ar & BOOST_SERIALIZATION_NVP(myUnderwaterVisibilityEnabled);
978 ar & BOOST_SERIALIZATION_NVP(myGroundSnowAccumulation);
979 ar & BOOST_SERIALIZATION_NVP(myRoadSnowAccumulation);
980 ar & BOOST_SERIALIZATION_NVP(mySnowMinimumElevation);
981 ar & BOOST_SERIALIZATION_NVP(mySnowElevationTransition);
985 ar & BOOST_SERIALIZATION_NVP(myGroundRainAccumulation);
989 ar & BOOST_SERIALIZATION_NVP(myAirPressure);
993 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitude);
994 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitude);
995 ar & BOOST_SERIALIZATION_NVP(myAirPressureAltitudeIsSeaLevel);
996 ar & BOOST_SERIALIZATION_NVP(myAirTemperatureAltitudeIsSeaLevel);
997 ar & BOOST_SERIALIZATION_NVP(mySeaLevelWaterConcentration);
1001 ar & BOOST_SERIALIZATION_NVP(myLightningPresent);
1085 BOOST_CLASS_VERSION(makArchives::DtEnvironmentRecord::DtElevationalConfigurationRecord, 1)
bool myAirPressureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1075
ElevationalWindRecordList myWindConfigurations
Definition: DtEnvironmentRecord.h:1023
VisibilityObscurant myObscurant
Definition: DtEnvironmentRecord.h:356
float myAirTurbidity
Definition: DtEnvironmentRecord.h:1008
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:92
BOOST_CLASS_VERSION(makArchives::DtDiGuySettingsRecord, 3)
float myDepthOffset
Definition: DtEnvironmentRecord.h:1042
bool myUnderwaterVisibilityEnabled
Definition: DtEnvironmentRecord.h:1063
float myWaterCurrentDirection
Definition: DtEnvironmentRecord.h:1046
DtColorRecord myFogColor
Definition: DtEnvironmentRecord.h:1051
bool myWindDrivenSeaStateEnabled
Definition: DtEnvironmentRecord.h:1034
std::vector< DtElevationalWindRecord > ElevationalWindRecordList
Definition: DtEnvironmentRecord.h:363
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:351
float mySurfaceTransparency
Definition: DtEnvironmentRecord.h:1040
float myRoadSnowAccumulation
Definition: DtEnvironmentRecord.h:1066
bool myTidalDirection
Definition: DtEnvironmentRecord.h:1048
std::map< std::string, std::string > OptionalParameterMap
Definition: DtEnvironmentRecord.h:365
float myAirPressureAltitude
Definition: DtEnvironmentRecord.h:1073
float mySeaStateDirection
Definition: DtEnvironmentRecord.h:1033
float mySnowMinimumElevation
Definition: DtEnvironmentRecord.h:1067
float myGroundRainAccumulation
Definition: DtEnvironmentRecord.h:1069
float myPermeability
Definition: DtEnvironmentRecord.h:159
float myBaseMSLAltitude
Definition: DtEnvironmentRecord.h:223
DtCloudLayerRecord myCloudLayer
Definition: DtEnvironmentRecord.h:358
float mySnowElevationTransition
Definition: DtEnvironmentRecord.h:1068
float myWaterCurrentSpeed
Definition: DtEnvironmentRecord.h:1045
std::vector< DtThermoclineRecord > ThermoclineRecordList
Definition: DtEnvironmentRecord.h:362
std::string myPrecipitationType
Definition: DtEnvironmentRecord.h:1061
float myWindSpeed
Definition: DtEnvironmentRecord.h:352
float myGreen
Definition: DtEnvironmentRecord.h:105
Contains DLL export macros.
float myBlue
Definition: DtEnvironmentRecord.h:106
VisibilityObscurant
Definition: DtEnvironmentRecord.h:21
float myAirTemperatureAltitude
Definition: DtEnvironmentRecord.h:1074
float myAirPressure
Definition: DtEnvironmentRecord.h:1071
float myWindSpeed
Definition: DtEnvironmentRecord.h:1016
float myWindSpeed
Definition: DtEnvironmentRecord.h:224
int mySeaState
Definition: DtEnvironmentRecord.h:1032
ThermoclineRecordList myThermoclineRecordList
Definition: DtEnvironmentRecord.h:1053
float myAlpha
Definition: DtEnvironmentRecord.h:107
float myUnderwaterVisibility
Definition: DtEnvironmentRecord.h:1039
Record for an elevational configuration A record of this type consists of 1) a base MSL altitude...
Definition: DtEnvironmentRecord.h:236
float mySeaChoppiness
Definition: DtEnvironmentRecord.h:1038
bool myAirTemperatureAltitudeIsSeaLevel
Definition: DtEnvironmentRecord.h:1076
Record of thermocline settings.
Definition: DtEnvironmentRecord.h:112
bool myUseCustomCloudCover
Definition: DtEnvironmentRecord.h:1055
Contains makArchives::DtCloudLayerRecord class.
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:1020
bool myPrecipitationEnabledFlag
Definition: DtEnvironmentRecord.h:1060
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:215
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:361
Record of a single cloud layer's settings.
Definition: DtCloudLayerRecord.h:17
float mySurgeDepth
Definition: DtEnvironmentRecord.h:1041
DtCloudCoverType
Definition: DtCloudCoverType.h:14
Record of color settings.
Definition: DtEnvironmentRecord.h:41
OptionalParameterMap myOptionalParameters
Definition: DtEnvironmentRecord.h:1057
float myTidalOffset
Definition: DtEnvironmentRecord.h:1047
float myPrecipitationIntensity
Definition: DtEnvironmentRecord.h:1010
float myRed
Definition: DtEnvironmentRecord.h:104
float myAmbientAirTemperature
Definition: DtEnvironmentRecord.h:1030
ElevationalConfigurationRecordList myElevationalConfigurations
Definition: DtEnvironmentRecord.h:1028
std::string myEnvironmentName
Definition: DtEnvironmentRecord.h:1005
Record of environment/weather settings Includes precipitation, air, and clouds.
Definition: DtEnvironmentRecord.h:36
float myWindDirection
Definition: DtEnvironmentRecord.h:225
DtCloudCoverType myCloudCoverType
Definition: DtEnvironmentRecord.h:1012
float myAmbientWaterTemperature
Definition: DtEnvironmentRecord.h:1044
int myPrecipitation
Definition: DtEnvironmentRecord.h:1009
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:151
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:833
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:332
bool myIsLocalOnly
Definition: DtEnvironmentRecord.h:1006
CloudLayerRecordList myCloudLayers
Definition: DtEnvironmentRecord.h:1011
bool myLightningPresent
Definition: DtEnvironmentRecord.h:1013
float myFogHeight
Definition: DtEnvironmentRecord.h:1050
float myDepth
Definition: DtEnvironmentRecord.h:158
float myGroundSnowAccumulation
Definition: DtEnvironmentRecord.h:1065
float myWindDirection
Definition: DtEnvironmentRecord.h:1017
std::vector< DtElevationalConfigurationRecord > ElevationalConfigurationRecordList
Definition: DtEnvironmentRecord.h:364
float myVisibilityDistance
Definition: DtEnvironmentRecord.h:355
int mySwellState
Definition: DtEnvironmentRecord.h:1035
float mySeaLevelWaterConcentration
Definition: DtEnvironmentRecord.h:1077
float mySwellStateDirection
Definition: DtEnvironmentRecord.h:1036
#define DT_DLL_MAKARCHIVES
Definition: makArchives.h:31
Record for an elevational wind configuration.
Definition: DtEnvironmentRecord.h:165
float myWindDirection
Definition: DtEnvironmentRecord.h:353
float myWindFetch
Definition: DtEnvironmentRecord.h:1037