|
Isis 3 Programmer Reference
|
1 #ifndef PhotometricFunction_h
2 #define PhotometricFunction_h
14 #include "DbProfile.h"
15 #include "SpecialPixel.h"
34 template<
typename T>
inline T
MIN(
const T &A,
const T &B ) {
54 template<
typename T>
inline T
MAX(
const T &A,
const T &B ) {
86 virtual double compute(
const double &line,
const double &sample,
int band = 1,
bool useDem =
false);
87 virtual double photometry(
double i,
double e,
double g,
int band = 1 )
const = 0;
109 double m_minimumIncidenceAngle;
110 double m_maximumIncidenceAngle;
111 double m_minimumEmissionAngle;
112 double m_maximumEmissionAngle;
113 double m_minimumPhaseAngle;
114 double m_maximumPhaseAngle;
133 T
ConfKey(
const DbProfile &conf,
const QString &keyname,
const T &defval,
int index = 0 )
const {
134 if (!conf.
exists(keyname)) {
137 if (conf.
count(keyname) < index) {
140 return conf.
value(keyname, index);
T MAX(const T &A, const T &B)
Implement templatized MAX fumnction.
virtual double compute(const double &line, const double &sample, int band=1, bool useDem=false)
Computes Photometric function from cube attributes.
Contains Pvl Groups and Pvl Objects.
bool exists(const QString &key) const
Checks for the existance of a keyword.
virtual void setMinimumIncidenceAngle(double angle)
Mutator function to set minimum incidence angle.
int count(const QString &key) const
Report number of values in keyword.
virtual void setMaximumIncidenceAngle(double angle)
Mutator function to set maximum incidence angle.
static QString algorithmName(const PvlObject &pvl)
Finds the name of the algorithm defined in a PVL object.
T ConfKey(const DbProfile &conf, const QString &keyname, const T &defval, int index=0) const
Helper template to initialize parameters.
virtual ~PhotometricFunction()
Destructor.
An abstract implementation of the photometric function.
virtual void setMaximumEmissionAngle(double angle)
Mutator function to set maximum emission angle.
virtual void setMinimumPhaseAngle(double angle)
Mutator function to set minimum phase angle.
virtual void setMaximumPhaseAngle(double angle)
Mutator function to set maximum phase angle.
T MIN(const T &A, const T &B)
Implement templatized MIN fumnction.
A DbProfile is a container for access parameters to a database.
IO Handler for Isis Cubes.
virtual double minimumEmissionAngle()
Accessor method to access minimum emission angle.
virtual double maximumPhaseAngle()
Accessor method to access maximum phase angle.
void setCamera(Camera *cam)
Set the camera used to compute photometric angles.
virtual double maximumIncidenceAngle()
Accessor method to access maximum incidence angle.
virtual double minimumIncidenceAngle()
Accessor method to access minimum incidence angle.
PhotometricFunction(PvlObject &pvl, Cube &cube, bool useCamera)
Construct Photometric function from Pvl and Cube file.
virtual double maximumEmissionAngle()
Accessor method to access maximum emission angle.
Contains more than one keyword-value pair.
QString value(const QString &key, int nth=0) const
Returns the specified value for the given keyword.
This is free and unencumbered software released into the public domain.
virtual double minimumPhaseAngle()
Accessor method to access minimum phase angle.
virtual void setMinimumEmissionAngle(double angle)
Mutator function to set minimum emission angle.