Skip to main content

Module curve

Module curve 

Source

Modules§

banked
A centreline carrying a roll about its tangent: cant, bank angle and the point the section rotates about.
chain
Arc-length chains: plane curves parameterised by cumulative arc length, built from pieces placed rigidly end to end.
conic
Exact conic curve data.
elevation
Elevation laws and the composition of a planar curve with one.
evaluate
Backend-open curve evaluation capability.
implicit
Curves given implicitly: where a field over a surface’s parameters is zero (ADR 0077).
linear
Linear curve values.
linear_vocabulary
The focused linear vocabulary, re-exported for consumers that want to name its origin explicitly. A line-only consumer should depend on axiolid-linear directly instead of paying for this aggregate.
pair_section
Where two parametric surfaces meet, carried by nodes on both (ADR 0077).
path
Pieces of curves laid end to end: the neutral form of a curve relation a distance runs along (#285, #290, ADR 0082).
quadric_section
Where a quadric cuts a cylinder or cone, read in the ruled surface’s own parameters (ADR 0076).
seam
Which side of a seam a position on it is read from (#263).
sinusoid
The height wave a plane cuts across a cylinder, in the cylinder’s own parameters.
spline
B-spline and rational B-spline curve data.
spline_surface
Polynomial and rational B-spline surfaces.
torus_section
Where a plane or sphere cuts a torus, read in the torus’s own parameters (ADR 0076).

Structs§

AngleGraph2
The solution u(t) of a(t) cos u + b(t) sin u = c(t) chosen by branch, as a graph over its second coordinate: the point at t is (u(t), t).
BSplineCurve
Exact B-spline data. Rational curves carry one weight per control point.
BSplineSurface
Tensor-product B-spline surface preserving exact knot and weight data.
Banked3
A centreline with a roll law: the composition a canted track is authored as. See the module docs.
CantLaw
A scalar law over plan distance: pieces laid end to end from zero.
CantPiece
One piece of a CantLaw: a form over a plan length.
Chain2
A plane curve parameterised by cumulative arc length, its pieces placed rigidly end to end. See the module documentation.
Circle2
Circle in a two-dimensional frame.
Circle3
Circle in a three-dimensional plane frame.
CurvePath
Pieces of curves laid end to end, in the order the path runs; see the module documentation.
Elevated3
A planar curve carrying an independent elevation law.
Ellipse2
Ellipse in a two-dimensional frame.
Ellipse3
Ellipse in a three-dimensional plane frame.
Harmonic
One sinusoidal term of a curvature law: amplitude * sin(angular_frequency * s + phase).
ImplicitCell
One stretch of an ImplicitCurve2: as the free parameter runs from from to to, the curve is the unique zero of the field for the other parameter in [low, high], where the field is strictly monotone in it.
ImplicitCurve2
A stretch of a field’s zero set, in the parameters of the surface the field lives on. The parameter t runs over [0, cells.len()]: cell i covers [i, i + 1], its free parameter moving linearly from from to to.
ImplicitSection3
An ImplicitCurve2 on its carrier, in space: the point at t is the carrier’s point at curve.point(t).
Intrinsic2
A plane curve given by its natural equation: a curvature law anchored to a start frame and run for a finite arc length.
Intrinsic3
A space curve given by its natural equations.
Jet2
A field’s value, gradient and Hessian at one point.
LiftedCurve2
A curve in space read in an analytic surface’s parameters: the pcurve at t is the carrier’s parameters of curve’s point at t, so it shares the edge’s parameter exactly. This is the pcurve, on the analytic face, of a section that only the other face’s surface can carry (a B-spline’s section, ADR 0077): the inverse is in closed form for planes, ruled surfaces, spheres and tori.
Line
Infinite parametric line origin + t * direction.
PairNode
A point on both surfaces, with its parameters on each.
PairSection3
A stretch of the curve where two surfaces meet. The parameter runs over [0, nodes.len() - 1], one unit per chord.
PatchField2
A piecewise polynomial field: on each cell of the grid of u_breaks by v_breaks, a tensor-product Bernstein polynomial of degree (u_degree, v_degree) in the cell’s local coordinates s, t in [0, 1]. Its coefficients bound it (the convex hull property), which is what makes a trace on it certified.
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.
Polyline
Piecewise-linear curve preserving source vertex order.
QuadraticGraph2
The graph of one root of a(t) v^2 + b(t) v + c(t) = 0, parameterised by its first coordinate: the point at t is (t, v(t)).
RuledCarrier
A ruled carrier surface, as the curve needs it: a cylinder (rx = ry, slope = 0), an elliptical cylinder (slope = 0) or a cone (rx = ry, slope = tan(semi-angle)), in the same parameterisation as the matching axiolid_surface family.
RuledSection3
A quadric’s section of a ruled carrier, in space: the point at t is the carrier’s point at (t, graph.height(t)).
SeriesField2
A field over the parameter plane: sum c[i][j] B_i(u) B_j(v), with the bases of Basis along each parameter. The form a plane’s, quadric’s or torus’s equation takes on an analytic surface.
Sinusoid2
The graph v = mean + cosine cos(t) + sine sin(t), parameterised by t.
SurfaceJet
A point’s partial derivatives on a Carrier, to second order.
TorusCarrier
A torus, as the curve needs it, in axiolid_surface::Torus’s parameterisation: O + (R + r cos v)(cos u X + sin u Y) + r sin v Z.
TorusSection3
A plane’s or sphere’s section of a torus, in space: the torus point at (graph.angle(t), t).
Trig2
constant + cos cos(t) + sin sin(t) + cos2 cos(2t) + sin2 sin(2t).

Enums§

Axis
Which parameter a cell runs along; the other is solved for.
BankConvention
Which height difference a cant D states on a grade (ADR 0081).
BankError
Why a banked curve has no section at a station.
Basis
How a SeriesField2 varies along one parameter.
Branch
Which root of the quadratic a graph follows.
CantForm
The shape of one cant piece over its own xi = s / length in [0, 1].
CantValue
What a cant law gives at a station: a cant height or a bank angle.
Carrier
The surface a traced curve lies on, as the curve needs it, in the same parameterisation as the matching axiolid_surface family.
ChainPiece2
One piece of a Chain2, written in its own local frame: origin at the piece start, +x along the start tangent.
CurvatureLaw
Curvature as a closed-form function of arc length.
Curve2
Atomic two-dimensional curve values.
Curve3
Atomic three-dimensional curve values.
ElevationLaw
Height as a function of distance along the plan.
Field2
A field over a surface’s parameters whose zero set is a section curve: another surface’s equation read in this surface’s parameters.
KnotSpec
How the knot vector was specified by the source representation.
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.
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.
RailSide
A rail head of a canted track, left or right of the direction of travel along the plan.
SeamSide
The piece a position exactly on a seam is read from.

Traits§

CurveEvaluator
Evaluate and differentiate one curve representation.

Functions§

bank_angle
The nominal bank angle psi = asin(D / b).

Type Aliases§

BSplineCurve2
Two-dimensional B-spline curve.
BSplineCurve3
Three-dimensional B-spline curve.
Line2
Two-dimensional line.
Line3
Three-dimensional line.
Polyline2
Two-dimensional polyline.
Polyline3
Three-dimensional polyline.