return Math.max(b.getCosine(v), 0.0);
} else {
Point3 p = (Point3) a.getPosition();
Point3 q = (Point3) b.getPosition();
Vector3 v = p.vectorTo(q);
return Math.max(a.getCosine(v), 0.0) * Math.max(b.getCosine(v.opposite()), 0.0)
/ v.squaredLength();
}
}
public static boolean visibility(PathNode a, PathNode b) {