Plane normals calculation help

Hi @Pete_S, I think it is important to keep in mind the distinction between a Plane and a plane-shaped Entity.

A plane-shaped Entity is easy to visualize: it’s a flat surface at a given position and orientation. But the Plane is a mathematical object in Hessian Normal form. I find it pretty awkward to think about where a given Plane is located—the distance needs to be relative to the origin of your current working coordinate system. In the case of your set of points, that would be the center of the Earth. Changing the normal would then rotate the plane around the center of the Earth.

To slice your points based on a plane-shaped Entity, I can think of two options:

  1. Construct a mathematical Plane that lines up with your planar Entity, and re-construct it every time the Entity moves. This could be awkward to reason about, as mentioned.
  2. Inverse transform the points from the coordinates of the Entity back to the coordinates of the raw mathematical Plane from which the Entity was constructed. This is easier, since you can derive a current version of the required transform via Entity.computeModelMatrix.

I tried the second option in this Sandcastle example. You can try modifying the value of redPlaneEntityHeading to see how the slicing of the points changes as the planar Entity rotates.