73 double inc1, inc2, inc3, inc4;
75 double ema1, ema2, ema3, ema4;
83 xi = sin((Isis::PI / 180.0) * incidence);
84 zi = cos((Isis::PI / 180.0) * incidence);
89 if((incidence == 0.0) || (emission == 0.0)) {
93 cphi = (cos((Isis::PI / 180.0) * phase) -
94 cos((Isis::PI / 180.0) * incidence) *
95 cos((Isis::PI / 180.0) * emission)) /
96 (sin((Isis::PI / 180.0) * incidence) *
97 sin((Isis::PI / 180.0) * emission));
101 phi =
PhtAcos(cphi) * (180.0 / Isis::PI);
102 xe = cphi * sin((Isis::PI / 180.0) * emission);
103 ye = sin((Isis::PI / 180.0) * phi) * sin((Isis::PI / 180.0) * emission);
104 ze = cos((Isis::PI / 180.0) * emission);
108 xy = sin((Isis::PI / 180.0) * epsh);
109 z = cos((Isis::PI / 180.0) * epsh);
111 cinc = max(-1.0, min(xy * xi + z * zi, 1.0));
112 inc1 =
PhtAcos(cinc) * (180.0 / Isis::PI);
113 cema = max(-1.0, min(xy * xe + z * ze, 1.0));
114 ema1 =
PhtAcos(cema) * (180.0 / Isis::PI);
116 cinc = max(-1.0, min(-xy * xi + z * zi, 1.0));
117 inc2 =
PhtAcos(cinc) * (180.0 / Isis::PI);
118 cema = max(-1.0, min(-xy * xe + z * ze, 1.0));
119 ema2 =
PhtAcos(cema) * (180.0 / Isis::PI);
121 cinc = max(-1.0, min(z * zi, 1.0));
122 inc3 =
PhtAcos(cinc) * (180.0 / Isis::PI);
123 cema = max(-1.0, min(xy * ye + z * ze, 1.0));
124 ema3 =
PhtAcos(cema) * (180.0 / Isis::PI);
126 cinc = max(-1.0, min(z * zi, 1.0));
127 inc4 =
PhtAcos(cinc) * (180.0 / Isis::PI);
128 cema = max(-1.0, min(-xy * ye + z * ze, 1.0));
129 ema4 =
PhtAcos(cema) * (180.0 / Isis::PI);
135 result = sqrt(max(1.0e-30, d1 * d1 + d2 * d2));