Compose sliced geometries of planes with matching normal
The normal of the plane geometries should point in the same direction as the z axis
vector of the sliced geometry. Otherwise, you can make left-handed sliced geometry
out of right-handed planes or the other way around. The mixed up handedness also
has other weird consequences, e.g. having the first or last plane centre outside
of the volume and so on.
In the past it was not possible to create plane geometries with left-handed
coordinate system, because the 'EnsurePerpendicularNormal' function turned
the normal always to the same side. Since it is now possible to create either
left- or right-handed planes, it is no longer needed to stack up planes in the
opposite direction than their normals ('flipped' parameter of 'InitializePlanes').
You can create left-handed sliced geometries from left-handed plane geometries,
and right-handed sliced geometries from left handed planes.
Note that this change needs to pass over the 'top' property to some PlaneGeometry
functions that got only 'frontside' and 'rotated' so far. These arguments have
default values. So that I do not break the API accidentally, I added the 'top'
argument to the end of the argument list, not before 'frontside' as in other
functions. This is to ensure that if someone calls these functions without the
new, additional argument ('top'), the actual arguments are passed to their
corresponding formal arguments, and not 'frontside' to 'top', 'rotated' to
'frontside' and leaving 'rotated' on its default value.
Signed-off-by: Miklos Espak <firstname.lastname@example.org>