axiolid-curve
Exact, format-neutral curve values: lines, conics, B-splines, natural-equation and elevated curves.
| Latest release | 0.3.12 (2026-11-07) |
| crates.io | axiolid-curve |
| Facade | axiolid feature curves |
| Layer | representations (representation.atomic) |
| API documentation | rustdoc · docs.rs |
| Source | crates/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.
| Feature | Enables |
|---|---|
serde | serde, axiolid-core/serde, axiolid-linear/serde |
Depends on
Changes
Latest release, 0.3.12 (2026-11-07):
Fixed
QuadraticGraph2::heightis exact to rounding for either sign ofb(#414). It took the root as2c / (-b - sign sqrt(D)), which cancels for one sign ofb, losing about1e-11relative height near a vanishinga; it now takesc / qorq / awithq = -(b + sign(b) sqrt(D)) / 2, which adds terms of one sign.AngleGraph2::angleis unchanged: neara^2 + b^2 = c^2its 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
LICENSEandLICENSE-COMMERCIAL(symlinks to the repository root), so the licence texts travel with the archive (#358).
Full history: crates/representations/analytic/curve/CHANGELOG.md