VRayleighModel.h
Go to the documentation of this file.
1 #ifndef _atm_VRayleighModel_h_
2 #define _atm_VRayleighModel_h_
3 
4 #include <atm/VModel.h>
5 #include <vector>
6 
7 
8 namespace utl {
9  class VRandomSampler;
10  class Point;
11 }
12 
13 namespace atm {
14 
15  class ScatteringResult;
16  class AttenuationResult;
17 
18 
29  class VRayleighModel : public VModel {
30 
31  public:
33 
34  virtual ~VRayleighModel();
35 
36  virtual
39  const utl::Point& xFinal,
40  const std::vector<double>& wLength) const = 0;
41 
42  virtual
45  const utl::Point& x2,
46  const double angle,
47  const double distance,
48  const std::vector<double>& wLength) const = 0;
49 
52  virtual
55  const utl::Point& x2,
56  const double angle,
57  const double distance,
58  const AttenuationResult& raylAtten) const = 0;
59 
62  virtual
63  double
65  const utl::Point& xB,
66  const double angle,
67  const double distance,
68  const double wLength,
69  const double raylAtten) const = 0;
70 
71  virtual
72  double
74  const utl::Point& xB,
75  const double angle,
76  const double distance,
77  const double wLength) const = 0;
78 
79  virtual
80  double
82  const utl::Point& xFinal,
83  const double wLength) const = 0;
84 
85  virtual
86  double
88  const double wLength) const = 0;
89 
90  virtual
91  double
93  const double angle,
94  const double wLength) const = 0;
95 
96  virtual
97  const utl::VRandomSampler&
99  const double wLength) const;
100 
101  private:
103 
104  };
105 
106 
108 
109 }
110 
111 
112 #endif
Point object.
Definition: Point.h:32
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.
Definition: VModel.h:35
virtual const utl::VRandomSampler & EvaluateScatteringAngleDistribution(const utl::Point &p, const double wLength) const
Template for object factory.
Definition: ObjectFactory.h:71
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.

, generated on Tue Sep 26 2023.