Expand description
General NURBS analysis, inverse-query, and exact transformation algorithms. Scalar evaluation for parametric curves and surfaces.
Modules§
- arc_
length - Arc-length evaluation of intrinsic (natural-equation) curves and of the planar-plus-elevation composition.
- arc_
parameter - Arc length along any evaluable curve, and its inverse.
- banked
- Evaluation of banked curves: point, tangent and the rolled section frame.
- bound
- Certified derivative and chord bounds (#232).
- chain
- Evaluation of arc-length chains (
Chain2). - curve
- Scalar reference implementation of curve evaluation (ADR 0012).
- elevated
- Derivatives, certified bounds and seams of elevated and banked curves in plan distance (#252).
- elevation
- Heights, grades and chord bounds of elevation laws, including the profile given by its own curvature, which has no closed form (#238).
- frenet
- Frame and position of a space curve given by curvature and torsion.
- intrinsic_
relation - Relations over
Intrinsic3: trimming, offsetting, and joining. - polyline_
length - Exact distance-to-parameter conversion for polylines.
- provider
- The reference curve-evaluation provider.
- station
- Stations: a position at a distance along a curve, framed by the curve’s section (#241, ADR 0082).
- surface
- Scalar reference implementation of surface evaluation (ADR 0012).
Structs§
- Banked
Section - The section of a banked curve at one station.
- Composite
Basis - Pieces of curves laid end to end as one station basis; see the module documentation.
- Mitre
- The plane a section stands in where a run crosses a seam whose tangents differ; see the module documentation.
- Patch
- A finite parameter rectangle for tessellation.
- Reference
Curve Evaluator - Reference curve evaluator.
- Scalar
Curve - Portable scalar curve evaluator.
- Scalar
Surface - The
axiolid_surface::SurfaceEvaluatorimplementation, so a caller can dispatch through the trait rather than the free functions. - Section
Frame - A point on a curve and the section axes there: tangent, left lateral
and up, unit and right-handed (
up = tangent x lateral). - Station
Piece - One piece of a
CompositeBasis: the span[start, end]of an atomic curve, in that curve’s station measure, traversed forwards or backwards, optionally placed by a rigid motion; see the module documentation. - Station
Seam - A place inside a curve where two of its pieces meet; see the module documentation.
Enums§
- Station
Curve - The atomic curve under a
StationPiece.
Constants§
- ARC_
LENGTH_ TOLERANCE - Relative tolerance of every arc length and arc-length inverse this module
returns: the absolute tolerance for a length
lisARC_LENGTH_TOLERANCE * max(1, |l|), in the curve’s length unit.
Functions§
- arc_
length2 - Signed arc length of a 2D curve from parameter
fromtoto: negative whento < from. See the module documentation for the tolerance. - arc_
length3 - Signed arc length of a 3D curve from parameter
fromtoto; seearc_length2. - banked_
derivative - Derivative of
banked_pointin plan distance:(p, g + e'). Not unit: its length issqrt(1 + (g + e')^2). - banked_
point - Position on a banked curve at plan distance
d:base(d) + e(d) z. - banked_
second_ derivative - Second derivative of
banked_pointin plan distance (#252): the centreline’s(p'', z'')plus the pivot’se''vertically. - banked_
section - The section at plan distance
d: rotation point, rolled frame, cant, bank angle and roll. - banked_
tangent - Unit tangent of a banked curve at plan distance
d. - chain_
point - Point on a chain at arc length
sfrom its start. See the module documentation for the accuracy contract and refusals. - chain_
tangent - Unit tangent of a chain at arc length
s(unit when the start frame is orthonormal; a skewed frame maps it as it maps an intrinsic curve’s). - derivative2
- First derivative of a 2D curve.
- derivative3
- First derivative of a 3D curve.
- elevated_
chord_ bound - Certified 3D chord bound of an elevated curve over plan distances
[a, b]:sqrt(P^2 + Z^2),P = h^2 / 8 sup |k|the plan’s andZthe profile’s chord bound at equal plan distance (see the module documentation for the derivation). - elevated_
derivative - Derivative of an elevated curve in plan distance:
(p', z'). Not unit: its length issqrt(1 + g^2)on an orthonormal plan frame. - elevated_
derivative_ bounds - Certified suprema of
|c'|,|c''|,|c'''|of an elevated curve in plan distance over[a, b]:sqrt(P_j^2 + Z_j^2)(module documentation).Nonewhere the curve may not beC^2strictly inside the span, or where either half is not bounded. - elevated_
point - Position on an elevated curve at plan distance
d. - elevated_
second_ derivative - Second derivative of an elevated curve in plan distance:
(k n, z''), the plan’s curvature vector and the profile’sz''. - elevated_
tangent - Unit tangent of an elevated curve at plan distance
d. - elevation_
chord_ bound - Certified bound on how far an elevation law strays from the chord of
its heights over the plan-distance span
[a, b]:sup |z(d) - L(d)|,Lthe straight line through(a, z(a))and(b, z(b)). - elevation_
grade - Grade
dz/ddat plan distancedistance, for every law in the family. - elevation_
height - Height at plan distance
distance, for every law in the family. - evaluate2
- Position on a 2D curve.
- evaluate3
- Position on a 3D curve.
- exact_
station_ seams2 station_seams2, refusing a curve with a seam whose distance is not read from stored data alone.- exact_
station_ seams3 station_seams3, refusing a curve with a seam whose distance is not read from stored data alone.- flatten2
- Flatten a 2D curve over
domainso the chord never deviates from the true curve by more thanchord_tolerance. - frenet_
frame - Frame of a space curve at arc length
sfrom its start. - frenet_
point - Position on a space curve at arc length
sfrom its start. - frenet_
tangent - Unit tangent of a space curve at arc length
sfrom its start. - grade_
corners3 - Where an elevated or banked curve turns a corner: the seams (of its
profile, and of a banked curve’s pivot) across which the grade of its
point path jumps by more than
angleradians, ascending. - intrinsic_
point - Position on an intrinsic curve at arc length
sfrom its start. - intrinsic_
tangent - Unit tangent of an intrinsic curve at arc length
s. - join_
intrinsic3 - Join two space curves into one, when the second continues the first.
- offset_
intrinsic3 - Offset a space curve by
distancealong its principal normal. - parameter_
at_ arc_ length2 - The parameter at signed arc length
lengthfrom parameterfromalong a 2D curve: in increasing parameter for a positive length, decreasing for a negative one. - parameter_
at_ arc_ length3 parameter_at_arc_length2for a 3D curve.- partials
- Analytic first partial derivatives
(∂S/∂u, ∂S/∂v)at(u, v). - station_
frame_ is_ exact2 - Whether a station frame on this 2D curve is exact (#264): its point and axes at the station’s distance itself, in closed form, rounding aside, with no quadrature or root find behind them.
- station_
frame_ is_ exact3 station_frame_is_exact2for a 3D curve: only a line.- station_
length2 - The length a station on a 2D curve is measured against:
Nonefor a line (unbounded), one turn for a circle or an ellipse, the arc length of its domain for a polyline or a B-spline, the stated length of an intrinsic curve or a chain. - station_
length3 - The length a station on a 3D curve is measured against, as
station_length2; an elevated curve’s is its plan’s, a banked curve’s the span of its cant law. - station_
seams2 - The seams of a 2D curve, every one located (see the module documentation); a B-spline’s corner knots by quadrature, flagged not exact.
- station_
seams3 - The seams of a 3D curve, every one located; see
station_seams2. - station_
section2 - The section of a 2D curve at arc length
distancefrom its start; see the module documentation for the conventions. - station_
section3 - The section of a 3D curve at
distancefrom its start: plan distance on an elevated or banked curve, arc length on any other; see the module documentation. - station_
section2_ on station_section2readingsideof a seam the station lies on (see the module documentation); off a seam the side does not matter.- station_
section3_ on station_section3readingsideof a seam the station lies on (see the module documentation); off a seam the side does not matter.- trim_
intrinsic3 - Restrict a space curve to
[start, end]of its arc length.