1 #ifndef PhotometricFunction_h 2 #define PhotometricFunction_h 26 template<
typename T>
inline T
MIN(
const T &A,
const T &B ) {
46 template<
typename T>
inline T
MAX(
const T &A,
const T &B ) {
78 virtual double compute(
const double &line,
const double &sample,
int band = 1,
bool useDem =
false);
79 virtual double photometry(
double i,
double e,
double g,
int band = 1 )
const = 0;
101 double m_minimumIncidenceAngle;
102 double m_maximumIncidenceAngle;
103 double m_minimumEmissionAngle;
104 double m_maximumEmissionAngle;
105 double m_minimumPhaseAngle;
106 double m_maximumPhaseAngle;
125 T
ConfKey(
const DbProfile &conf,
const QString &keyname,
const T &defval,
int index = 0 )
const {
126 if (!conf.
exists(keyname)) {
129 if (conf.
count(keyname) < index) {
132 return conf.
value(keyname, index);
T ConfKey(const DbProfile &conf, const QString &keyname, const T &defval, int index=0) const
Helper template to initialize parameters.
Contains more than one keyword-value pair.
virtual double maximumIncidenceAngle()
Accessor method to access maximum incidence angle.
int count(const QString &key) const
Report number of values in keyword.
virtual double minimumPhaseAngle()
Accessor method to access minimum phase angle.
bool exists(const QString &key) const
Checks for the existance of a keyword.
A DbProfile is a container for access parameters to a database.
virtual ~PhotometricFunction()
Destructor.
virtual double compute(const double &line, const double &sample, int band=1, bool useDem=false)
Computes Photometric function from cube attributes.
virtual void setMinimumIncidenceAngle(double angle)
Mutator function to set minimum incidence angle.
An abstract implementation of the photometric function.
QString value(const QString &key, int nth=0) const
Returns the specified value for the given keyword.
virtual void setMaximumIncidenceAngle(double angle)
Mutator function to set maximum incidence angle.
virtual void setMaximumEmissionAngle(double angle)
Mutator function to set maximum emission angle.
static QString algorithmName(const PvlObject &pvl)
Finds the name of the algorithm defined in a PVL object.
virtual double minimumIncidenceAngle()
Accessor method to access minimum incidence angle.
virtual void setMinimumEmissionAngle(double angle)
Mutator function to set minimum emission angle.
virtual double maximumEmissionAngle()
Accessor method to access maximum emission angle.
virtual double maximumPhaseAngle()
Accessor method to access maximum phase angle.
Namespace for ISIS/Bullet specific routines.
void setCamera(Camera *cam)
Set the camera used to compute photometric angles.
virtual void setMinimumPhaseAngle(double angle)
Mutator function to set minimum phase angle.
PhotometricFunction(PvlObject &pvl, Cube &cube, bool useCamera)
Construct Photometric function from Pvl and Cube file.
virtual void setMaximumPhaseAngle(double angle)
Mutator function to set maximum phase angle.
Contains Pvl Groups and Pvl Objects.
virtual double minimumEmissionAngle()
Accessor method to access minimum emission angle.
T MIN(const T &A, const T &B)
Implement templatized MIN fumnction.
IO Handler for Isis Cubes.
T MAX(const T &A, const T &B)
Implement templatized MAX fumnction.