if (Maths.innerProduct(n, c) < 0) {
n.x = -n.x;
n.y = -n.y;
final double nsInnerProduct = Maths.innerProduct(n, s);
localIncidenceAngles[0] = FastMath.acos(nsInnerProduct) * Constants.RTOD;
final PosVector m = new PosVector(s.y * c.z - s.z * c.y, s.z * c.x - s.x * c.z, s.x * c.y - s.y * c.x);
Maths.normalizeVector(m);
final double mnInnerProduct = Maths.innerProduct(m, n);
final PosVector n1 = new PosVector(n.x - m.x * mnInnerProduct, n.y - m.y * mnInnerProduct, n.z - m.z * mnInnerProduct);
Maths.normalizeVector(n1);
localIncidenceAngles[1] = FastMath.acos(Maths.innerProduct(n1, s)) * Constants.RTOD;
if (Maths.innerProduct(n, c) < 0) {
n.x = -n.x;
n.y = -n.y;
final double nsInnerProduct = Maths.innerProduct(n, s);
localIncidenceAngles[0] = FastMath.acos(nsInnerProduct) * Constants.RTOD;
final PosVector m = new PosVector(s.y * c.z - s.z * c.y, s.z * c.x - s.x * c.z, s.x * c.y - s.y * c.x);
Maths.normalizeVector(m);
final double mnInnerProduct = Maths.innerProduct(m, n);
final PosVector n1 = new PosVector(n.x - m.x * mnInnerProduct, n.y - m.y * mnInnerProduct, n.z - m.z * mnInnerProduct);
Maths.normalizeVector(n1);
localIncidenceAngles[1] = FastMath.acos(Maths.innerProduct(n1, s)) * Constants.RTOD;