Module diagnose

Source
Expand description

Producing a Diagnosis from a mesh (#73).

§Why this exists

Diagnosis and DefectKind were vocabulary: complete, well-named, and produced by nothing. audit_mesh counts defects but returns only counts, so a caller learned how many boundary edges a mesh had and never which. A repair cannot act on a count, and a report that cannot name what it found is not auditable.

§Counts versus locations

Where the audit knows a location it is recorded in Defect::element; where it knows only a count, the defect carries the count in detail and leaves element empty rather than inventing an index. Self-intersection is the one class that always has a location, because it is computed here rather than counted by the audit.

Functions§

diagnose
Diagnose a triangle mesh, reporting every defect class it exhibits.