nicklockwood / Euclid

A Swift library for creating and manipulating 3D geometry
MIT License
639 stars 53 forks source link

Refine vertex normal optimisation checks #127

Closed zilmarinen closed 2 months ago

zilmarinen commented 2 months ago

Description

Proposal to remove the polygon face normal inequality check when calling hasVertexNormals as suggested in Issue 125

This aims to solve use cases where face normals are not included when creating SCNGeometry instances from a Mesh in instances where the vertex normals are equal to the polygons plane normal.

Discussion

I have removed the offending clause from the hasVertexNormals and updated the failing unit tests accordingly.

The following unit tests have been removed as these are no longer necessary;

I had considered extending these by replacing calls to smoothingNormals(:) with a withoutNormals() equivalent but these would only flag up the assertions for non-zero normal values when initialising a polygon so these tests have instead been removed in favour of brevity.