1#ifndef PhotometricFunction_h
2#define PhotometricFunction_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);
IO Handler for Isis Cubes.
A DbProfile is a container for access parameters to a database.
An abstract implementation of the photometric function.
PhotometricFunction(PvlObject &pvl, Cube &cube, bool useCamera)
Construct Photometric function from Pvl and Cube file.
virtual void setMaximumIncidenceAngle(double angle)
Mutator function to set maximum incidence angle.
virtual void setMaximumEmissionAngle(double angle)
Mutator function to set maximum emission angle.
virtual double compute(const double &line, const double &sample, int band=1, bool useDem=false)
Computes Photometric function from cube attributes.
virtual ~PhotometricFunction()
Destructor.
virtual void setMinimumPhaseAngle(double angle)
Mutator function to set minimum phase angle.
virtual double maximumEmissionAngle()
Accessor method to access maximum emission angle.
static QString algorithmName(const PvlObject &pvl)
Finds the name of the algorithm defined in a PVL object.
virtual double maximumPhaseAngle()
Accessor method to access maximum phase angle.
virtual double minimumIncidenceAngle()
Accessor method to access minimum incidence angle.
virtual double minimumEmissionAngle()
Accessor method to access minimum emission angle.
T ConfKey(const DbProfile &conf, const QString &keyname, const T &defval, int index=0) const
Helper template to initialize parameters.
virtual void setMaximumPhaseAngle(double angle)
Mutator function to set maximum phase angle.
virtual void setMinimumEmissionAngle(double angle)
Mutator function to set minimum emission angle.
virtual void setMinimumIncidenceAngle(double angle)
Mutator function to set minimum incidence angle.
virtual double minimumPhaseAngle()
Accessor method to access minimum phase angle.
virtual double maximumIncidenceAngle()
Accessor method to access maximum incidence angle.
void setCamera(Camera *cam)
Set the camera used to compute photometric angles.
Contains more than one keyword-value pair.
Contains Pvl Groups and Pvl Objects.
This is free and unencumbered software released into the public domain.