Crate axiolid_refine

Source
Expand description

Mesh refinement: more triangles, and optionally closer to the truth.

Splitting a triangle is easy. The question this module exists to answer is where the new vertex goes.

A mesh-only kernel has one option: the edge midpoint. That subdivides the approximation without improving it – refining a faceted cylinder forever leaves the same faceted cylinder, with more triangles.

When the mesh came from a tessellated B-rep and the source surface is still known, there is a better answer: invert the midpoint into the surface’s parameter domain and evaluate the surface there. The new vertex lands on the ACTUAL cylinder. Refinement then converges on the real geometry instead of preserving a facet forever.

Keeping the analytic surface alongside the mesh is what makes that possible, so it is the capability this module is really for.

Modules§

smooth
Laplacian smoothing with an explicitly fixed boundary.

Structs§

RefineReport
What a refinement actually did.
SmoothReport
What a smoothing pass actually did.

Enums§

RefineError
Why a refinement could not be performed.
RefineTarget
How much to refine.

Functions§

refine
Refine a mesh, optionally snapping new vertices onto a known surface.