Isis Developer Reference
NormModel.h
Go to the documentation of this file.
1 #ifndef NormModel_h
2 #define NormModel_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include <string>
11 #include <vector>
12 #include "Pvl.h"
13 #include "PhotoModel.h"
14 #include "AtmosModel.h"
15 
16 namespace Isis {
17 
36  class NormModel {
37  public:
38  NormModel(Pvl &pvl, PhotoModel &pmodel);
39  NormModel(Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel);
40  virtual ~NormModel() {};
41 
43  std::string AlgorithmName() const {
44  return p_normAlgorithmName;
45  };
46 
48  void CalcNrmAlbedo(double pha, double inc, double ema, double dn,
49  double &albedo, double &mult, double &base);
50  void CalcNrmAlbedo(double pha, double inc, double ema, double deminc,
51  double demema, double dn, double &albedo,
52  double &mult, double &base);
53  virtual void SetNormWavelength(double wavelength);
54 
55  protected:
56  virtual void NormModelAlgorithm(double pha, double inc, double ema,
57  double dn, double &albedo, double &mult, double &base) = 0;
58 
59  virtual void NormModelAlgorithm(double pha, double inc, double ema,
60  double deminc, double demema, double dn, double &albedo,
61  double &mult, double &base) = 0;
62 
63  void SetAlgorithmName(std::string name) {
64  p_normAlgorithmName = name;
65  }
67  return p_normPM;
68  }
70  return p_normAM;
71  }
72 
74 
75  private:
76  std::string p_normAlgorithmName;
77  PhotoModel *p_normPM;
78  AtmosModel *p_normAM;
79  };
80 };
81 
82 #endif
Isis::PhotoModel
Definition: PhotoModel.h:41
AtmosModel.h
PhotoModel.h
Isis::AtmosModel
Isotropic atmos scattering model.
Definition: AtmosModel.h:60
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::NormModel
Definition: NormModel.h:36
Isis::NormModel::AlgorithmName
std::string AlgorithmName() const
Return normalization algorithm name.
Definition: NormModel.h:43
Pvl.h
Isis::NormModel::SetAlgorithmName
void SetAlgorithmName(std::string name)
Definition: NormModel.h:63
NormModel.h
Isis::NormModel::NormModel
NormModel(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object.
Definition: NormModel.cpp:23
IException.h
Isis::NormModel::GetAtmosModel
AtmosModel * GetAtmosModel()
Definition: NormModel.h:69
Isis::NormModel::p_normWavelength
double p_normWavelength
Definition: NormModel.h:73
Isis::NormModel::NormModelAlgorithm
virtual void NormModelAlgorithm(double pha, double inc, double ema, double deminc, double demema, double dn, double &albedo, double &mult, double &base)=0
Isis::NormModel::GetPhotoModel
PhotoModel * GetPhotoModel()
Definition: NormModel.h:66
Isis::NormModel::NormModelAlgorithm
virtual void NormModelAlgorithm(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)=0
Isis::NormModel::CalcNrmAlbedo
void CalcNrmAlbedo(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the albedo normalization.
Definition: NormModel.cpp:64
Isis::NormModel::~NormModel
virtual ~NormModel()
Definition: NormModel.h:40
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::NormModel::SetNormWavelength
virtual void SetNormWavelength(double wavelength)
Set the wavelength parameter.
Definition: NormModel.cpp:51