15 #include "DbProfile.h"
16 #include "PhotometricFunction.h"
17 #include "PvlObject.h"
34 PhotometricFunction::PhotometricFunction(
PvlObject &pvl,
Cube &cube ,
bool useCamera ) {
44 PhotometricFunction::~PhotometricFunction() {}
52 void PhotometricFunction::setCamera(
Camera *cam) {
64 QString PhotometricFunction::algorithmName(
const PvlObject &pvl ) {
65 return pvl.
findObject(
"PhotometricModel").findGroup(
"Algorithm", Pvl::Traverse).findKeyword(
"Name")[0];
85 double PhotometricFunction::compute(
const double &line,
const double &sample,
int band,
bool useDem) {
87 if (m_camera->Band() != band) {
88 m_camera->SetBand(band);
91 if (!m_camera->SetImage(sample, line)) {
95 double i = m_camera->IncidenceAngle();
96 double e = m_camera->EmissionAngle();
97 double g = m_camera->PhaseAngle();
101 Angle phase, incidence, emission;
102 m_camera->LocalPhotometricAngles(phase, incidence, emission, success);
111 if ( !success || i < minimumIncidenceAngle() || i > maximumIncidenceAngle() || e < minimumEmissionAngle() || e
112 > maximumEmissionAngle() || g < minimumPhaseAngle() || g > maximumPhaseAngle()) {
116 return photometry(i, e, g, band);
131 void PhotometricFunction::setMinimumIncidenceAngle(
double angle) {
132 m_minimumIncidenceAngle = angle;
147 void PhotometricFunction::setMaximumIncidenceAngle(
double angle) {
148 m_maximumIncidenceAngle = angle;
163 void PhotometricFunction::setMinimumEmissionAngle(
double angle) {
164 m_minimumEmissionAngle = angle;
179 void PhotometricFunction::setMaximumEmissionAngle(
double angle) {
180 m_maximumEmissionAngle = angle;
195 void PhotometricFunction::setMinimumPhaseAngle(
double angle) {
196 m_minimumPhaseAngle = angle;
211 void PhotometricFunction::setMaximumPhaseAngle(
double angle) {
212 m_maximumPhaseAngle = angle;
227 double PhotometricFunction::minimumIncidenceAngle() {
228 return m_minimumIncidenceAngle;
243 double PhotometricFunction::maximumIncidenceAngle() {
244 return m_maximumIncidenceAngle;
259 double PhotometricFunction::minimumEmissionAngle() {
260 return m_minimumEmissionAngle;
275 double PhotometricFunction::maximumEmissionAngle() {
276 return m_maximumEmissionAngle;
291 double PhotometricFunction::minimumPhaseAngle() {
292 return m_minimumPhaseAngle;
307 double PhotometricFunction::maximumPhaseAngle() {
308 return m_maximumPhaseAngle;