Keep fine meshes whole at collapsed taper boundaries (#906)
The exact surface search could return an arbitrary parameter at a collapsed NURBS boundary, which corrupted the trimmed triangulation domain and lost volume on fine meshes of a fillet tapering to zero. Search results in the boundary projection are now validated, preferring a bounded parameter at a pole and snapping to a finite endpoint only when its transverse tangent has collapsed and the residual improves. Adds four regressions for decreasing chord tolerances, pole parameters, unbounded planar support and provisional preview. Fixes #796.
This commit is contained in:
1 parent
7da7bbb335
commit
3f1c023563
5 files changed
+235
-15
No files matched your search
Vendored
+7
@@ -52,6 +52,13 @@ Changes:
|
||||
It does not run adaptive subdivision or grid balancing. The kernel caller bounds
|
||||
projection complexity and total allocation before using it; ordinary modelling
|
||||
tessellation keeps its existing accuracy policy.
|
||||
- `tessellation/triangulation.rs`: exact, robust and provisional-preview projections prefer an
|
||||
equivalent in-domain parameter at collapsed surface edges, and snap to exact bounded
|
||||
endpoints only at collapsed edges when that improves the spatial fit within the existing
|
||||
search tolerance. Closed spline seams retain their distinct parameter endpoints.
|
||||
This prevents huge arbitrary pole parameters from corrupting trimmed meshes (#796),
|
||||
while retaining genuine extrapolation for unbounded planes. Work is bounded to four
|
||||
endpoint evaluations per projected point; no search or tessellation tolerance is relaxed.
|
||||
- `tessellation/triangulation.rs`: the inside test of a face's boundary skips loops whose
|
||||
parameter box is clear of the point (it tested every segment of every loop, so a face with
|
||||
hundreds of holes meshed in quadratic time).
|
||||
|
||||
Reference in new issue
Block a user