Isis 3 Developer Reference
NormModel.h
Go to the documentation of this file.
1 #ifndef NormModel_h
2 #define NormModel_h
3 
26 #include <string>
27 #include <vector>
28 #include "Pvl.h"
29 #include "PhotoModel.h"
30 #include "AtmosModel.h"
31 
32 namespace Isis {
33 
52  class NormModel {
53  public:
54  NormModel(Pvl &pvl, PhotoModel &pmodel);
55  NormModel(Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel);
56  virtual ~NormModel() {};
57 
59  std::string AlgorithmName() const {
60  return p_normAlgorithmName;
61  };
62 
64  void CalcNrmAlbedo(double pha, double inc, double ema, double dn,
65  double &albedo, double &mult, double &base);
66  void CalcNrmAlbedo(double pha, double inc, double ema, double deminc,
67  double demema, double dn, double &albedo,
68  double &mult, double &base);
69  virtual void SetNormWavelength(double wavelength);
70 
71  protected:
72  virtual void NormModelAlgorithm(double pha, double inc, double ema,
73  double dn, double &albedo, double &mult, double &base) = 0;
74 
75  virtual void NormModelAlgorithm(double pha, double inc, double ema,
76  double deminc, double demema, double dn, double &albedo,
77  double &mult, double &base) = 0;
78 
79  void SetAlgorithmName(std::string name) {
80  p_normAlgorithmName = name;
81  }
83  return p_normPM;
84  }
86  return p_normAM;
87  }
88 
90 
91  private:
92  std::string p_normAlgorithmName;
93  PhotoModel *p_normPM;
94  AtmosModel *p_normAM;
95  };
96 };
97 
98 #endif
virtual void SetNormWavelength(double wavelength)
Set the wavelength parameter.
Definition: NormModel.cpp:45
virtual void NormModelAlgorithm(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)=0
std::string AlgorithmName() const
Return normalization algorithm name.
Definition: NormModel.h:59
Definition: NormModel.h:52
double p_normWavelength
Definition: NormModel.h:89
Definition: PhotoModel.h:57
PhotoModel * GetPhotoModel()
Definition: NormModel.h:82
AtmosModel * GetAtmosModel()
Definition: NormModel.h:85
Isotropic atmos scattering model.
Definition: AtmosModel.h:76
Container for cube-like labels.
Definition: Pvl.h:135
void SetAlgorithmName(std::string name)
Definition: NormModel.h:79
NormModel(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object.
Definition: NormModel.cpp:17
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
void CalcNrmAlbedo(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the albedo normalization.
Definition: NormModel.cpp:58
virtual ~NormModel()
Definition: NormModel.h:56