|
Isis 3.0 Developer's Reference (API) |
Home |
00001 #ifndef NormModel_h 00002 #define NormModel_h 00003 00026 #include <string> 00027 #include <vector> 00028 #include "Pvl.h" 00029 #include "PhotoModel.h" 00030 #include "AtmosModel.h" 00031 00032 namespace Isis { 00033 00052 class NormModel { 00053 public: 00054 NormModel(Pvl &pvl, PhotoModel &pmodel); 00055 NormModel(Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel); 00056 virtual ~NormModel() {}; 00057 00059 std::string AlgorithmName() const { 00060 return p_normAlgorithmName; 00061 }; 00062 00064 void CalcNrmAlbedo(double pha, double inc, double ema, double dn, 00065 double &albedo, double &mult, double &base); 00066 void CalcNrmAlbedo(double pha, double inc, double ema, double deminc, 00067 double demema, double dn, double &albedo, 00068 double &mult, double &base); 00069 virtual void SetNormWavelength(double wavelength); 00070 00071 protected: 00072 virtual void NormModelAlgorithm(double pha, double inc, double ema, 00073 double dn, double &albedo, double &mult, double &base) = 0; 00074 virtual void NormModelAlgorithm(double pha, double inc, double ema, 00075 double deminc, double demema, double dn, double &albedo, 00076 double &mult, double &base) = 0; 00077 00078 void SetAlgorithmName(std::string name) { 00079 p_normAlgorithmName = name; 00080 } 00081 PhotoModel *GetPhotoModel() { 00082 return p_normPM; 00083 } 00084 AtmosModel *GetAtmosModel() { 00085 return p_normAM; 00086 } 00087 00088 double p_normWavelength; 00089 00090 private: 00091 std::string p_normAlgorithmName; 00092 PhotoModel *p_normPM; 00093 AtmosModel *p_normAM; 00094 }; 00095 }; 00096 00097 #endif