14#include "NumericalApproximation.h"
58 double PhtTopder(
double phase,
double incidence,
double emission);
61 static double PhtAcos(
double cosang);
66 virtual void SetPhotoL(
const double l) {
75 virtual void SetPhotoK(
const double k) {
84 virtual void SetPhotoHg1(
const double hg1) {
93 virtual void SetPhotoHg2(
const double hg2) {
102 virtual void SetPhotoBh(
const double bh) {
111 virtual void SetPhotoCh(
const double ch) {
120 virtual void SetPhotoWh(
const double wh) {
129 virtual void SetPhotoHh(
const double hh) {
138 virtual void SetPhotoB0(
const double b0) {
147 virtual void SetPhotoTheta(
const double theta) {
148 p_photoTheta = theta;
158 virtual void SetPhoto0B0Standard(
const QString &b0standard) {
159 p_photo0B0Standard = b0standard;
164 return p_photo0B0Standard;
168 inline double Hfunc(
double u,
double gamma) {
169 return (1.0 + 2.0 * u) / (1.0 + 2.0 * u * gamma);
172 virtual void SetPhotoPhaseList(
const QString) {}
173 virtual void SetPhotoKList(
const QString) {}
174 virtual void SetPhotoLList(
const QString) {}
175 virtual void SetPhotoPhaseCurveList(
const QString) {}
179 return p_photoPhaseList;
194 return p_photoPhaseCurveList;
198 virtual double PhotoModelAlgorithm(
double phase,
199 double incidence,
double emission) = 0;
213 QString p_photo0B0Standard;
217 double p_photoB0save;
219 double p_photoThetaold;
221 std::vector<double> p_photoPhaseList;
222 std::vector<double> p_photoKList;
223 std::vector<double> p_photoLList;
224 std::vector<double> p_photoPhaseCurveList;
225 int p_photoPhaseAngleCount;
NumericalApproximation provides various numerical analysis methods of interpolation,...
double PhotoHg1() const
Return photometric Hg1 value.
double CalcSurfAlbedo(double pha, double inc, double ema)
Calculate the surface brightness using photometric angle information.
double PhotoL() const
Return photometric L value.
std::vector< double > PhotoPhaseCurveList() const
Return photometric phase curve value list.
double PhotoBh() const
Return photometric Bh value.
double PhotoHg2() const
Return photometric Hg2 value.
std::vector< double > PhotoLList() const
Return photometric l value list.
std::vector< double > PhotoKList() const
Return photometric k value list.
bool StandardConditions() const
Returns true if standard conditions are used, i.e., if SetStandardConditions(true) has been called....
double PhotoB0() const
Return photometric B0 value.
QString p_photoAlgorithmName
Unique name of the photometric model.
std::vector< double > PhotoPhaseList() const
Return photometric phase angle list.
double PhotoTheta() const
Return photometric Theta value.
double Hfunc(double u, double gamma)
Hapke's approximation to Chandra's H function.
double PhotoCh() const
Return photometric Ch value.
bool p_standardConditions
Indicates whether standard conditions are used.
double PhtTopder(double phase, double incidence, double emission)
Obtain topographic derivative of an arbitrary photometric function.
virtual void SetStandardConditions(bool standard)
Sets whether standard conditions will be used.
double PhotoK() const
Return photometric K value.
PhotoModel(Pvl &pvl)
Create a PhotoModel object.
QString AlgorithmName() const
Return algorithm name found in Pvl file from constructor.
QString Photo0B0Standard() const
Return photometric B0 standardization value.
double PhotoWh() const
Return photometric Wh value.
static double PhtAcos(double cosang)
Obtain arccosine of input value.
double PhotoHh() const
Return photometric Hh value.
Container for cube-like labels.
This is free and unencumbered software released into the public domain.