rewrote cutPolygon to handle edge cases. truncation not functional yet.
added tolerance parameter in cutPolygon for near zero cases
truncation works, new face added to polyhedron