Skip to main content

Crate axiolid_curve_evaluate_contract

Crate axiolid_curve_evaluate_contract 

Source
Expand description

Portable curve-evaluation contract and conformance suite.

Curve evaluation was the only kernel capability without a contract, so a consumer that wanted to ask for a point at a distance had to depend on a specific engine. This crate lets the capability be NAMED without binding an implementation to it.

See docs/adr/0063-curve-evaluation-contract.md.

Modules§

conformance
Conformance suite every curve-evaluation provider must pass.

Structs§

BackendDescriptor
Provider identity only. It deliberately contains no operation booleans.
BackendId
Stable provider identifier for logs and explicit selection.
CurvePath
Pieces of curves laid end to end, in the order the path runs; see the module documentation.
DistanceInterval
A distance certified to lie in [lower, upper]: what CurveEvaluator::path_joint_distances returns for each joint of a curve path.
PathOffset
An offset of a base piece (#289); see the module documentation.
PathOffsets
The displacement of an offset at one place, in its base’s frame: lateral to the left, vertical along up, longitudinal along the tangent (ADR 0082’s station offsets).
PathPiece
One piece of a CurvePath: the span [start, end] of a curve in its station measure, traversed forwards or backwards, optionally carried by a rigid placement; see the module documentation.

Enums§

CurveMeasure
Where along a curve to evaluate, and by WHICH method of measurement.
Determinism
Reproducibility requirement.
DistanceConvention
Which distance a CurveEvaluator measures.
ExecutionTarget
Broad execution target. Specific ISA/device features stay in provider crates.
GeomError
Why a backend-neutral geometry operation failed.
OffsetFrame
Which frame of the base an OffsetLaw::Linear displacement is read in: ADR 0082’s station frames.
OffsetLaw
How far, and which way, an offset lies from its base piece.
Operation
Operation name used for diagnostics only. Implementing an operation trait is the capability proof; this enum never drives capability discovery.
PathBound
Where a PathPiece starts or ends when its distance is not stated (#304): the evaluator resolves it to a distance in the curve’s station measure; see the module documentation.
PathCurve
The curve under a PathPiece.
SeamSide
The piece a position exactly on a seam is read from.

Constants§

CAPABILITY_ID
Capability this contract names.
CURVE_PATH_UNSUPPORTED
The input a provider that does not implement curve paths refuses, in the GeomError::UnsupportedInput its default path_* queries return.
OPEN_PATH_END_UNSUPPORTED
The input a provider that reads curve paths but not open piece ends (#298) refuses a path with one for.
PATH_JOINT_DISTANCES_UNSUPPORTED
The input a provider that does not certify joint distances refuses, in the GeomError::UnsupportedInput its default path_joint_distances returns.
PATH_PIECE_BOUND_UNSUPPORTED
The input a provider that reads curve paths but not piece bounds given as a native parameter or a point (#304) refuses a path with one for.
PATH_POINT_AMBIGUOUS
The input a point bound of a curve path piece (#304) is refused for when several parameters of the curve name it: a curve that passes through it more than once, or the seam of a closed curve other than a circle or an ellipse (whose angle runs round).
PATH_POINT_OFF_CURVE
The input a point bound of a curve path piece (#304) is refused for when it does not lie on the piece’s curve within the joint tolerance 1e-9 * max(1, |p|): a provider never projects it onto the curve.
SEAM_SIDE_UNSUPPORTED
The input a provider that does not implement seam sides refuses, in the GeomError::UnsupportedInput its default sided methods return.

Traits§

Backend
Runtime geometry backend metadata.
CurveEvaluator
Curve evaluation provider.

Functions§

window_span
The window [around - window, around + window] of path_joint_distances_within, checked: around finite, window finite and not negative.

Type Aliases§

GeomResult
Result alias for geometry operations.