Expand description
Scalar reference tessellation of surfaces (ADR 0012).
§What this closes
axiolid-tessellation-contract declares a Tessellator trait that nothing
implemented, so no curved face could ever become triangles. A B-rep with a
cylindrical or spline face was unreachable, which is most curved
geometry in a real building model.
§Method
Uniform parameter sampling with the step chosen from a measured sagitta,
not a guessed segment count. For each parameter direction the maximum
deviation of the chord from the surface is probed at the midpoint, and the
step is halved until the deviation is within the chord budget or a caller
budget is exhausted. That is the same contract flatten2 uses for curves,
so a cylinder tessellated here and its silhouette circle flattened there
agree on what a tolerance means.
Adaptive quad-tree refinement would use fewer triangles on surfaces with localised curvature. It is deliberately not done here: this is the reference implementation, and a uniform grid is the version whose output a human can predict and check by hand. An optimised backend may refine locally and be validated against this one.
Structs§
- Tessellation
Budget - Sampling budget for one surface.
- Tessellation
Outcome - A tessellated patch plus the evidence needed to judge it.
Functions§
- tessellate_
patch - Tessellate one bounded surface patch.