Isis Developer Reference
NormModel.h
Go to the documentation of this file.
1#ifndef NormModel_h
2#define NormModel_h
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
16namespace 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
Isotropic atmos scattering model.
Definition AtmosModel.h:60
Definition NormModel.h:36
virtual void NormModelAlgorithm(double pha, double inc, double ema, double deminc, double demema, double dn, double &albedo, double &mult, double &base)=0
void SetAlgorithmName(std::string name)
Definition NormModel.h:63
AtmosModel * GetAtmosModel()
Definition NormModel.h:69
NormModel(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object.
Definition NormModel.cpp:23
double p_normWavelength
Definition NormModel.h:73
virtual ~NormModel()
Definition NormModel.h:40
void CalcNrmAlbedo(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the albedo normalization.
Definition NormModel.cpp:64
virtual void SetNormWavelength(double wavelength)
Set the wavelength parameter.
Definition NormModel.cpp:51
std::string AlgorithmName() const
Return normalization algorithm name.
Definition NormModel.h:43
virtual void NormModelAlgorithm(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)=0
PhotoModel * GetPhotoModel()
Definition NormModel.h:66
Definition PhotoModel.h:41
Container for cube-like labels.
Definition Pvl.h:119
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16