5 LunarLambert::LunarLambert(Pvl &pvl) : PhotoModel(pvl) {
6 PvlGroup &algo = pvl.findObject(
"PhotometricModel")
12 if(algo.hasKeyword(
"L")) SetPhotoL(algo[
"L"]);
31 static double pht_lunlam;
37 static double old_phase = -9999;
38 static double old_incidence = -9999;
39 static double old_emission= -9999;
41 if (old_phase == phase && old_incidence == incidence && old_emission == emission) {
46 old_incidence = incidence;
47 old_emission = emission;
49 incrad = incidence *
Isis::PI / 180.0;
50 emarad = emission *
Isis::PI / 180.0;
54 if(munot <= 0.0 || mu <= 0.0 || incidence == 90.0 ||
59 else if(p_photoL == 0.0) {
63 else if(p_photoL == 1.0) {
64 pht_lunlam = 2.0 * munot / (munot + mu);
69 pht_lunlam = munot * ((1.0 - p_photoL) + 2.0 *
70 p_photoL / (munot + mu));
const double PI
The mathematical constant PI.
void SetPhotoL(const double l)
Set the Lunar-Lambert function weight.
Container for cube-like labels.
Namespace for ISIS/Bullet specific routines.
Lunar (Lommel-Seeliger)-Lambert law photometric model Derive model albedo for Lunar (Lommel-Seeliger)...
virtual double PhotoModelAlgorithm(double phase, double incidence, double emission)
Return photometric L value.