1 #ifndef _atm_VRayleighModel_h_
2 #define _atm_VRayleighModel_h_
4 #include <atm/VModel.h>
15 class ScatteringResult;
16 class AttenuationResult;
40 const std::vector<double>& wLength)
const = 0;
47 const double distance,
48 const std::vector<double>& wLength)
const = 0;
57 const double distance,
67 const double distance,
69 const double raylAtten)
const = 0;
76 const double distance,
77 const double wLength)
const = 0;
83 const double wLength)
const = 0;
88 const double wLength)
const = 0;
94 const double wLength)
const = 0;
99 const double wLength)
const;
utl::VRandomSampler * fAngularDistribution
utl::ObjectFactory< VRayleighModel *, std::string > VRayleighModelFactory
Base class for an Rayleigh Model.
virtual AttenuationResult EvaluateRayleighAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const =0
Class holding the output of the ScatteringResult function.
Base class of atmospheric functions.
virtual const utl::VRandomSampler & EvaluateScatteringAngleDistribution(const utl::Point &p, const double wLength) const
Template for object factory.
virtual ~VRayleighModel()
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 to shoot random numbers given by a user-defined distribution function.
virtual ScatteringResult EvaluateRayleighScattering(const utl::Point &x1, const utl::Point &x2, const double angle, const double distance, const std::vector< double > &wLength) const =0
Class describing the Atmospheric attenuation.