Detect cases where Newell's Method returns a zero-length vector and make no attempt to normalize it in order to prevent an exception. In this case the face will be flagged as invalid down the road, because its perimeter doesn't span any area.

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@247 68180887-8925-40e4-aed3-789c086970ef
Apply the same precision value when merging a compound of faces into a solid just-in-time for subtraction

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@248 68180887-8925-40e4-aed3-789c086970ef
Increase precision for writing floats

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@249 68180887-8925-40e4-aed3-789c086970ef
- Check the validity of solids created from sewed shells and potentially revert to a shell or compound of faces
- Flag shape representations, for which no item succeeds, as failed

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@252 68180887-8925-40e4-aed3-789c086970ef
Fix typo

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@253 68180887-8925-40e4-aed3-789c086970ef
Remove a duplicated cartesian point from the closed polyline created by the addBox() function as seen in IfcOpenHouse. Thanks Bernd.

git-svn-id: https://svn.code.sf.net/p/ifcopenshell/svn/trunk@254 68180887-8925-40e4-aed3-789c086970ef