12#ifndef WSFOPTICALPATH_HPP
13#define WSFOPTICALPATH_HPP
15#include "wsf_mil_export.h"
21#include "UtGenericMappedList.hpp"
22#include "UtIntegrand.hpp"
41 unsigned aAtmosphereModel = 2,
42 unsigned aHazeMode = 1);
58 unsigned aWavelength_nm,
59 unsigned aAtmosphereModel = 2,
60 unsigned aHazeModel = 1);
62 double GetAttenuation(
double aSlantRange,
double aTargetHeight,
double aShootHeight);
89 unsigned aAtmosphereModel = 2,
90 unsigned aHazeModel = 1);
95 const std::vector<double>&
GetAltitudes()
const {
return mAltitude; }
104 int mAtmosphereModel;
122 std::vector<double> mAltitude;
123 std::vector<double> mAbs;
124 std::vector<double> mScat;
133 : mSlantRange(aSlantRange)
134 , mTargetHeight(aTargetHeight)
135 , mPlatformHeight(aPlatformHeight)
141 double Function(
double aRange)
override;
144 double Height(
double aRangeFromPlatform,
double aTotalSlantRange,
double aTargetHeight,
double aPlatformHeight);
147 double mTargetHeight;
148 double mPlatformHeight;
155 unsigned aAtmosphereModel = 2,
156 unsigned aHazeMode = 1);
159 const Coefficients* mCoeffsPtr;
173 WSF_MIL_EXPORT
bool LoadType(UtInput& aInput);
176 unsigned aAtmosphereModel = 2,
177 unsigned aHazeModel = 1)
const;
180 unsigned aAtmosphereModel = 2,
181 unsigned aHazeModel = 1)
const;
184 UtStdMappedList<Coefficients, std::string> mCoeffs;
An abstract base class for sensor_plot function.
Definition Function.hpp:29
Definition WsfEM_Xmtr.hpp:55
Definition WsfOpticalPath.hpp:163
static WSF_MIL_EXPORT WsfOpticalPathCoefficientTypes & Get(WsfScenario &aScenario)
Return a modifiable reference to the type list associated with the specified scenario.
Definition WsfOpticalPath.cpp:201
WSF_MIL_EXPORT bool LoadType(UtInput &aInput)
Definition WsfOpticalPath.cpp:246
WSF_MIL_EXPORT const Coefficients & GetCoefficients(unsigned aWavelength_nm, unsigned aAtmosphereModel=2, unsigned aHazeModel=1) const
Convert parameters to a string in order to find the coefficient table.
Definition WsfOpticalPath.cpp:216
WsfOpticalPath::LaserCoefficients Coefficients
Definition WsfOpticalPath.hpp:171
Definition WsfOpticalPath.hpp:67
virtual ~Coefficients()=default
virtual double GetExtinction(double aAltitude, Type aType=cBOTH) const =0
Integrand(double aSlantRange, double aTargetHeight, double aPlatformHeight, const Coefficients &aCoeffs, Type aType)
Definition WsfOpticalPath.hpp:132
Definition WsfOpticalPath.hpp:82
friend class WsfOpticalPathCoefficientTypes
Definition WsfOpticalPath.hpp:84
double GetExtinction(double aAltitude, Type aType) const override
Definition WsfOpticalPath.cpp:117
const Coefficients & GetCoefficients(const std::string &aWavelength_nm, unsigned aAtmosphereModel=2, unsigned aHazeModel=1)
const std::vector< double > & GetAttenuationCoefficients() const
Definition WsfOpticalPath.hpp:96
LaserCoefficients()
Definition WsfOpticalPath.cpp:101
const std::vector< double > & GetScatteringCoefficients() const
Definition WsfOpticalPath.hpp:97
friend class WsfOpticalAttenuation
Definition WsfOpticalPath.hpp:101
~LaserCoefficients() override=default
const std::vector< double > & GetAltitudes() const
The following are necessary to copy into simple arrays with DynamicSpear.
Definition WsfOpticalPath.hpp:95
Definition WsfOpticalPath.hpp:35
friend class WsfOpticalPathCoefficientTypes
Definition WsfOpticalPath.hpp:37
WsfOpticalPath()
Definition WsfOpticalPath.cpp:26
Type
Definition WsfOpticalPath.hpp:51
@ cBOTH
scattering only
Definition WsfOpticalPath.hpp:54
@ cABS
Definition WsfOpticalPath.hpp:52
@ cSCAT
absorption only
Definition WsfOpticalPath.hpp:53
virtual ~WsfOpticalPath()=default
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111