Skip to content

axiolid-curve ​

Exact, format-neutral curve values: lines, conics, B-splines, natural-equation and elevated curves.

Latest release0.3.12 (2026-11-07)
crates.ioaxiolid-curve
Facadeaxiolid feature curves
Layerrepresentations (representation.atomic)
API documentationrustdoc · docs.rs
Sourcecrates/representations/analytic/curve/

Overview ​

Exact, format-neutral curve values: lines and polylines (from axiolid-linear), conics, rational and polynomial B-splines, natural-equation (intrinsic) curves, arc-length chains of pieces placed end to end, elevated alignment curves, banked centrelines carrying a cant law under a named convention, and the curves where surfaces meet. Knots, multiplicities, weights and domains are kept as authored. It declares the CurveEvaluator seam but evaluates nothing; axiolid-evaluate does that. Composite, trimmed, offset and surface-bound curves are relations in axiolid-model, which keeps curves and surfaces free of a dependency cycle; CurvePath carries the pieces of atomic curves such a relation runs along, reversed or placed, or offset beside one (PathOffset), as a neutral value an evaluator measures; a piece may leave its end open (PathPiece::whole) for the evaluator to resolve with its own length.

The optional serde feature (off by default) derives Serialize and Deserialize for the curve values the geometry graph's wire format carries (ADR 0085). The format, its version and its refusal rules belong to axiolid-model; this crate only supplies the derives.

Features ​

Default: none.

FeatureEnables
serdeserde, axiolid-core/serde, axiolid-linear/serde

Depends on ​

Changes ​

Latest release, 0.3.12 (2026-11-07):

Fixed ​

  • QuadraticGraph2::height is exact to rounding for either sign of b (#414). It took the root as 2c / (-b - sign sqrt(D)), which cancels for one sign of b, losing about 1e-11 relative height near a vanishing a; it now takes c / q or q / a with q = -(b + sign(b) sqrt(D)) / 2, which adds terms of one sign. AngleGraph2::angle is unchanged: near a^2 + b^2 = c^2 its loss is the problem's own sensitivity (the root moves with the square root of the discriminant), not a cancellation a different formula avoids.

Added ​

  • The package now ships LICENSE and LICENSE-COMMERCIAL (symlinks to the repository root), so the licence texts travel with the archive (#358).

Full history: crates/representations/analytic/curve/CHANGELOG.md

Released under the Mozilla Public License 2.0.