Expand description
General NURBS algorithms over Axiolid’s format-neutral B-spline values.
This crate builds on the portable scalar oracle: evaluation comes from
axiolid-evaluate and is not reimplemented here. It owns differential
geometry and exact shape-preserving transformations; importers and
tessellators are consumers, not the capability boundary.
Every tolerance-sensitive solver takes explicit, bounded options (work ceilings, resolutions, tolerances) and reports an unresolved outcome or refuses when they run out. A shape-preserving transform is tested against independent evaluation samples of the original, not its own recurrence.
Modules§
- extrema
- Extrema between points, curves and surfaces (#119, B7): the smallest distance between two pieces of geometry, certified.
Structs§
- Bounded
Result - Outcome of a lossy operation: the curve, and the error it introduced.
- Bounded
Surface - A surface changed within a stated bound.
- Certified
Curve Intersection Options - Accuracy and work policy for certified planar root isolation.
- Certified
Curve Surface Intersection Options - Bounded policy for certified curve/surface root isolation.
- Certified
Projection Options - Explicit work and accuracy policy for globally certified projection.
- Certified
Region - One classified leaf of the certified subdivision.
- Certified
Surface Arcs3 - Result of certified curved surface/surface analysis.
- Certified
Surface Arcs Options - Explicit policy for certified curved analysis.
- Certified
Surface Projection Options - Explicit accuracy and work policy for globally certified surface projection.
- Certified
Surface Surface Intersection Options - Bounded policy for certified surface/surface intersection and affine tracing.
- Classified
Curve Contact2 - One classified non-transverse contact, owned by exactly one parameter box.
- Constructed
Curve Surface Point3 - A certified curve/surface crossing, reported as a point rather than a curve.
- Constructed
Intersection Curve3 - An intersection curve constructed from a certified trace.
- Curve
Curve Hit - One point where two curves meet, with its parameter on each.
- Curve
Differential2 - Parameter-invariant differential properties of a planar curve.
- Curve
Differential3 - Parameter-invariant differential properties of a spatial curve.
- Curve
Distance Certificate2 - Globally bounded minimum-distance result for two planar curves.
- Curve
Distance Certificate3 - Globally bounded minimum-distance result for two spatial curves.
- Curve
Pair Parameter Box - Product-domain box that may contain a globally closest curve pair.
- Curve
Projection2 - Best planar-curve projection candidate found within the supplied budget.
- Curve
Projection3 - Best spatial-curve projection candidate found within the supplied budget.
- Curve
Projection Certificate2 - Globally bounded closest-point result for a planar curve.
- Curve
Projection Certificate3 - Globally bounded closest-point result for a spatial curve.
- Curve
Surface Parameter Box - Native parameter box for a curve and a tensor-product surface patch.
- Exact
Curve Hit - One intersection point.
- Exact
Intersection Curve - The exact intersection curve of two elementary surfaces, when one exists in closed form.
- Fundamental
Form - Coefficients
(e, f, g)of a quadratic fundamental form. - Isolated
- A parameter isolated by certified subdivision, held as the exact double it was refined to (so parameters compare exactly, bit for bit).
- Parameter
Interval - Closed native-parameter interval that may contain a global minimizer.
- PeriodicB
Spline Surface - An owned tensor-product B-spline surface with validated cyclic axes.
- Periodic
Curve2 - Verified closed-seam extension of a planar B-spline curve.
- Periodic
Curve3 - Verified closed-seam extension of a spatial B-spline curve.
- Projection
Options - Explicit work and convergence policy for bounded projection.
- Surface
Differential - First/second-order differential properties of an oriented surface.
- Surface
Inversion Certificate3 - Unique native parameters proven to name a point on the surface.
- Surface
Knot Removal - The outcome of removing one knot value from a surface up to some number of times.
- Surface
Parameter Box - Closed native
(u, v)box that may contain a global minimizer. - Surface
Projection - Best surface projection candidate found within the supplied budget.
- Surface
Projection Certificate3 - Globally bounded closest-point certificate for a spatial surface.
- Surface
Surface Parameter Box - Native four-parameter box for a pair of tensor-product surfaces.
- Surface
Surface Trace Endpoint3 - Certified endpoint enclosure for an affine surface/surface trace.
- Transverse
Curve Intersection2 - One isolated transverse planar intersection.
- Transverse
Curve Surface Intersection3 - Existence-and-uniqueness certificate for one transverse intersection.
- Transverse
Surface Surface Trace3 - Certificate for one complete regular affine intersection segment.
Enums§
- Certified
Curve Intersection2 - Planar curve/curve classification under the implemented proof paths.
- Certified
Curve Surface Intersection3 - Certified curve/surface query outcome.
- Certified
Surface Projection3 - Exhaustive bounded outcome for spatial surface projection.
- Certified
Surface Surface Intersection3 - Certified surface/surface query outcome.
- Coverage
Fault - Why a set of regions failed to account for the whole domain.
- Curve
Intersection Degeneracy - Singular or not-yet-isolated curve relationship.
- Derivation
- The closed-form identity behind an exact intersection curve.
- Exact
Curve Intersection - The exact intersection of a curve with another operand.
- Exact
Curve Parameter - Where on the first curve an intersection lies, exactly.
- Exact
Curve Refusal - Why an exact curve intersection was not computed.
- Exact
Intersection Refusal - Why an elementary pair has no exact closed-form intersection curve here.
- Intersection
Curve Refusal - Why a certified query produced no constructed intersection curve.
- Projection
Status - Outcome of the selected bounded local solve.
- Region
Kind - What was certified about one leaf region of the parameter domain.
- Seam
Continuity - Highest endpoint continuity verified in the curve’s native parameter.
- Surface
Inversion Refusal - Why a sound inversion query did not yield unique parameters.
- Surface
Projection Unresolved Reason - Why a valid surface projection remains unresolved without exhausting work.
Constants§
- MAX_
AUDIT_ DEPTH - Largest subdivision depth the coverage audit can represent exactly.
- MAX_
CERTIFIED_ SURFACE_ PROJECTION_ DEPTH - Maximum accepted binary subdivision depth for certified surface projection.
- MAX_
CERTIFIED_ SURFACE_ PROJECTION_ WORK - Maximum accepted shared work budget for certified surface projection.
Functions§
- analyze_
curve2 - Analyze a regular planar curve at
t. - analyze_
curve3 - Analyze a regular spatial curve at
t. - analyze_
surface - Analyze a regular oriented surface at
(u, v). - audit_
coverage - Verify that the regions tile the root parameter box exactly.
- bezier_
segments2 - Decompose a planar B-spline into exact rational/polynomial Bézier segments.
- bezier_
segments3 - Decompose a spatial B-spline into exact rational/polynomial Bézier segments.
- certify_
surface_ arcs - Certify the transversality structure of a curved surface pair.
- construct_
curve_ surface_ points - Construct curve/surface intersection points for a clamped NURBS pair.
- construct_
surface_ surface_ curves - Construct intersection curves for two clamped NURBS surfaces.
- curve2_
seam_ continuity - Verify native-parameter endpoint continuity of a planar B-spline curve.
- curve3_
seam_ continuity - Verify native-parameter endpoint continuity of a spatial B-spline curve.
- distance_
curve2_ certified - Certify the global minimum distance between two planar B-spline curves.
- distance_
curve3_ certified - Certify the global minimum distance between two spatial B-spline curves.
- elevate_
degree2 - Raise a planar curve’s degree by one without changing its image.
- elevate_
degree3 - Raise a spatial curve’s degree by one without changing its image.
- elevate_
surface_ degree_ u - Raise the surface’s
udegree by one without changing it. - elevate_
surface_ degree_ v - Raise the surface’s
vdegree by one; aselevate_surface_degree_u. - exact_
curve_ curve_ intersection2 - The exact intersection of two analytic plane curves.
- exact_
curve_ curve_ intersection3 - The exact intersection of two analytic space curves.
- exact_
curve_ surface_ intersection - The exact intersection of an analytic curve with an elementary surface.
- exact_
surface_ intersection - Derive the exact intersection curve of two elementary surfaces.
- extract_
stretch - The stretch of one of
curvesthat runs fromstartthroughfirstand thensecondtoend(all in parameters, each possibly a whole period off), as a curve of its own running fromstarttoend.closedasks for a whole loop fromstartback to itself, in the direction that meetsfirstbeforesecond. - implicit_
surface_ intersection - Every component of the section of
carrierbyotherin a window ofcarrier’s parameters, as implicit curves oncarrier. - implicit_
view - A section-family curve over
spanas anImplicitSection3, with the same point set and direction;Nonefor other families or where the trace is refused. - insert_
knot2 - Insert one interior knot into a planar curve in homogeneous coordinates.
- insert_
knot3 - Insert one interior knot into a spatial curve in homogeneous coordinates.
- insert_
surface_ knot_ u - Insert one U-axis knot into every homogeneous control-net column.
- insert_
surface_ knot_ v - Insert one V-axis knot into every homogeneous control-net row.
- interpolate_
curve3 - Interpolate a cubic B-spline through
pointsin order. - intersect_
curve2_ certified - Classify intersections of two clamped planar B-spline curves.
- intersect_
curve_ surface_ certified - Certify all isolated transverse roots of
curve(t) = surface(u, v). - intersect_
surface_ surface_ certified - Certify bounded intersections of two clamped, internally continuous NURBS surfaces.
- invert_
periodic_ surface_ certified - Globally invert a point against one canonical period of a cyclic surface.
- invert_
surface_ certified - Globally invert a point against a clamped B-spline surface.
- iso_
curve_ at_ u - The iso-curve
u = parameter, parametrised byv. - iso_
curve_ at_ v - The iso-curve
v = parameter, parametrised byu; asiso_curve_at_u. - loft_
surface - Loft a surface through ordered section curves.
- project_
curve2 - Find the best planar-curve projection candidate within explicit budgets.
- project_
curve3 - Find the best spatial-curve projection candidate within explicit budgets.
- project_
curve2_ certified - Globally bound the closest point on a clamped planar B-spline curve.
- project_
curve3_ certified - Globally bound the closest point on a clamped spatial B-spline curve.
- project_
periodic_ surface_ certified - Exhaustively bound the global point-to-surface minimum over one canonical period of an explicitly validated cyclic B-spline surface.
- project_
surface - Find the best tensor-product surface projection candidate within budgets.
- project_
surface_ certified - Exhaustively bound the global point-to-surface minimum over the closed native domain of a finite clamped NURBS surface.
- reduce_
degree2 - Lower a planar curve’s degree by one, or refuse.
- reduce_
degree3 - Lower a spatial curve’s degree by one, or refuse.
- reduce_
surface_ degree_ u - Lower the surface’s
udegree by one, withintolerance, or refuse. - reduce_
surface_ degree_ v - Lower the surface’s
vdegree by one; asreduce_surface_degree_u. - remove_
knot2 - Remove one interior knot from a planar curve, or refuse.
- remove_
knot3 - Remove one interior knot from a spatial curve, or refuse.
- remove_
surface_ knot_ u - Remove the
uknotparameterup totimestimes, keeping the surface withintoleranceof the input. - remove_
surface_ knot_ v - Remove the
vknotparameterup totimestimes; asremove_surface_knot_u. - reverse2
- Reverse a planar B-spline curve without changing its image.
- reverse3
- Reverse a spatial B-spline curve without changing its image.
- reverse_
surface_ u - Reverse the surface’s U parameter without changing its image.
- reverse_
surface_ v - Reverse the surface’s V parameter without changing its image.
- section_
curve_ curve_ intersection2 - Where two plane curves meet, each over its span.
- section_
curve_ curve_ intersection3 - Where two space curves meet, each over its span, within
tolerance. - section_
curve_ surface_ intersection - Where a section-family curve meets a surface, with parameters on the curve itself.
- section_
field_ of other’s implicit equation read incarrier’s parameters, where both are analytic: zero exactly wherecarrier’s point lies onother(for a cone, on either nappe).- spline_
pair_ intersection - Every component of the section of two B-spline surfaces within windows
of their parameters (their whole domains when
None), each aPairSection3whose first surface isfirst(ADR 0077). - split2
- Split a planar curve exactly at an interior parameter.
- split3
- Split a spatial curve exactly at an interior parameter.
- trace_
section_ pcurves - Every component of the section of
surfacebyotherin a window ofsurface’s parameters, as curves in those parameters. - wrap_
curve2_ parameter - Wrap a finite planar-curve parameter into its active domain.
- wrap_
curve3_ parameter - Wrap a finite spatial-curve parameter into its active domain.