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§
- Chain
Piece2 - One piece of a
Chain2, written in its own local frame: origin at the piece start,+xalong the start tangent.