Skip to main content

Module chain

Module chain 

Source
Expand description

Arc-length chains: plane curves parameterised by cumulative arc length, built from pieces placed rigidly end to end.

A horizontal alignment is authored as a run of segments, each written in its own frame and each starting where the previous one ends, in the direction it ends in. Most segment kinds have a natural equation (line, arc, clothoid) and fit a CurvatureLaw piece. Some do not: a cubic parabola y = x^3 / (6 R L) is an exact polynomial graph, but its curvature is not elementary in arc length, and its length along the curve inverts an elliptic integral. A Chain2 holds both kinds at once: ChainPiece2::Intrinsic carries a curvature law, and ChainPiece2::Parametric carries any Curve2 in its own local frame, read from a start parameter over a stated arc length.

§The parameter is arc length

The chain’s parameter is distance along it, from 0 at its start to the sum of the piece lengths at its end. That is what makes a chain usable as the plan of an Elevated3, whose elevation law is written against plan distance (ADR 0060): a parametric piece is read by arc length, never by its own parameter.

§Rigid placement

Each piece starts at the end point of the previous one with the previous end tangent as its local +x axis, so a chain is tangent-continuous at every join by construction. A parametric piece’s curve must itself start at its local origin with tangent +x at start; an evaluator refuses one that does not rather than move it there. The first piece is placed by Chain2::start, read like Intrinsic2::start.

§Exact data, evaluated to tolerance

Like Intrinsic2, a chain is exact stored data and this module computes no points. Where a piece ends depends on the arc length of its curve, which is a quadrature, and a parametric piece is read at a distance by inverting that quadrature; both belong to an evaluator that can state its tolerance (axiolid-evaluate). Whether a parametric piece’s curve is long enough for its length is therefore an evaluator’s refusal, not a structural one.

Structs§

Chain2
A plane curve parameterised by cumulative arc length, its pieces placed rigidly end to end. See the module documentation.

Enums§

ChainPiece2
One piece of a Chain2, written in its own local frame: origin at the piece start, +x along the start tangent.