VMieModel.h
Go to the documentation of this file.
1 
9 #ifndef _atm_VMieModel_h_
10 #define _atm_VMieModel_h_
11 
12 
13 #include <atm/VModel.h>
14 #include <vector>
15 
16 
17 namespace utl {
18  class VRandomSampler;
19  class Point;
20 }
21 
22 namespace atm {
23 
24  class ScatteringResult;
25  class AttenuationResult;
26 
27 
38  class VMieModel : public VModel {
39 
40  public:
41  VMieModel();
42  virtual ~VMieModel();
43 
45  const utl::Point& xB,
46  const double angle,
47  const double distance,
48  const std::vector<double>& xLength) const = 0;
49 
54  const utl::Point& xB,
55  const double angle,
56  const double distance,
57  const AttenuationResult& mieAttenuation) const = 0;
58 
60  const utl::Point& xFinal,
61  const std::vector<double>& wLength) const = 0;
62 
63  virtual double EvaluateMieScattering(const utl::Point& xA,
64  const utl::Point& xB,
65  const double angle,
66  const double distance,
67  const double xLength) const = 0;
68 
69  virtual double EvaluateMieScattering(const utl::Point& xA,
70  const utl::Point& xB,
71  const double angle,
72  const double distance,
73  const double xLength,
74  const double mieAttenuation) const = 0;
75 
76  virtual double EvaluateMieAttenuation(const utl::Point& xInit,
77  const utl::Point& xFinal,
78  const double wLength) const = 0;
79 
80  virtual double GetVerticalAerosolOpticalDepth(const unsigned int eyeId,
81  const double altitude) const = 0;
82 
83  virtual double GetAttenuationLength(const utl::Point& p,
84  const double wLength) const = 0;
85 
86  virtual double EvaluateScatteringAngle(const utl::Point& p,
87  const double angle,
88  const double wLength) const = 0;
89 
91  const double wLength) const;
92 
93  private:
95  };
96 
98 
99 }
100 
101 
102 #endif
103 
104 // Configure (x)emacs for this file ...
105 // Local Variables:
106 // mode: c++
107 // compile-command: "make -C .. -k"
108 // End:
virtual const utl::VRandomSampler & EvaluateScatteringAngleDistribution(const utl::Point &p, const double wLength) const
Definition: VMieModel.cc:35
Base class for a Mie Model.
Definition: VMieModel.h:38
Point object.
Definition: Point.h:32
virtual ~VMieModel()
Definition: VMieModel.cc:28
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.
Definition: VModel.h:35
virtual AttenuationResult EvaluateMieAttenuation(const utl::Point &xInit, const utl::Point &xFinal, const std::vector< double > &wLength) const =0
utl::VRandomSampler * fAngularDistribution
Definition: VMieModel.h:94
virtual double GetVerticalAerosolOpticalDepth(const unsigned int eyeId, const double altitude) const =0
Template for object factory.
Definition: ObjectFactory.h:71
utl::ObjectFactory< VMieModel *, std::string > VMieModelFactory
Definition: VMieModel.h:97
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

, generated on Tue Sep 26 2023.