pub fn widened_to_hold(
surface: &SurfaceGeometry,
points: &[Point],
tol: Tolerances,
) -> OgeomResult<SurfaceGeometry>Expand description
A surface’s parameterization window widened until it holds every one of
points.
A surface’s extent is a window, not a trim. Anything built on the surface (a face, a pcurve, a projection) has to evaluate inside it, and a window clamped tight around whatever was measured last will refuse the boundary of the very region it was measured from. That failure is unhelpfully quiet: it arrives as a domain error from an evaluation deep inside triangulation, having overshot by a part in ten million.
Widening is therefore a step to take before building on a surface whose window came from samples, and it changes nothing about the geometry: the carrier is untouched and only the window moves. The margin is proportional to the span measured, plus a floor in confusion tolerances, so widening is not itself a tolerance question.
Only the bounded directions can be widened, and only they need to be: a periodic direction already covers its whole turn. A surface with no bounded direction (a sphere, a torus) comes back as it went in, and so does one given no points.
§Errors
OgeomError::Domain if a point cannot be
projected onto the surface, or the widened window is not a valid range.