9 #ifndef _atm_VMieModel_h_
10 #define _atm_VMieModel_h_
13 #include <atm/VModel.h>
24 class ScatteringResult;
25 class AttenuationResult;
47 const double distance,
48 const std::vector<double>& xLength)
const = 0;
56 const double distance,
61 const std::vector<double>& wLength)
const = 0;
66 const double distance,
67 const double xLength)
const = 0;
72 const double distance,
74 const double mieAttenuation)
const = 0;
78 const double wLength)
const = 0;
81 const double altitude)
const = 0;
84 const double wLength)
const = 0;
88 const double wLength)
const = 0;
91 const double wLength)
const;
virtual const utl::VRandomSampler & EvaluateScatteringAngleDistribution(const utl::Point &p, const double wLength) const
Base class for a Mie Model.
virtual double GetAttenuationLength(const utl::Point &p, const double wLength) const =0
virtual double EvaluateScatteringAngle(const utl::Point &p, const double angle, const double wLength) const =0
Class holding the output of the ScatteringResult function.
Base class of atmospheric functions.
virtual AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const =0
utl::VRandomSampler * fAngularDistribution
virtual double GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const =0
Template for object factory.
utl::ObjectFactory< VMieModel *, std::string > VMieModelFactory
Class to shoot random numbers given by a user-defined distribution function.
Class describing the Atmospheric attenuation.
virtual ScatteringResult EvaluateMieScattering(const utl::Point &xA, const utl::Point &xB, const double angle, const double distance, const std::vector< double > &xLength) const =0