USGS

Isis 3.0 Developer's Reference (API)

Home

NormModel.h

Go to the documentation of this file.
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