Skip to main content

curve_path

Function curve_path 

Source
pub fn curve_path(graph: &GeometryGraph, id: NodeId) -> GeomResult<CurvePath>
Expand description

The curve id a distance runs along, flattened into the neutral CurvePath (#290): the pieces a station on it is measured along, its curves copied, to be read through the curve-evaluation contract’s path_* queries.

A relation (a composite, a trim, a surface curve whose 3D curve governs, a curve placed at a station, nested in any combination) is flattened as a station basis is (see the module documentation); an atomic curve is one piece, whole, an untrimmed line its parameter domain [0, 1] as inside a composite (a station along the atomic curve itself reads a line unbounded, so query an atomic basis through the per-curve methods). Placements at stations are resolved here, each exact only on an exactly read frame. The path is not measured: the contract’s provider refuses one whose pieces do not meet or measure alike, by name.

Every piece is stated, its span ending where the kernel measures its curve to end (an offset’s own length, a B-spline’s arc length): a caller without the graph that builds the same pieces with their ends left open (PathPiece::whole, #298) reads the same path.

§Errors

A node that is not a curve, an instanced curve or a relation no distance runs along, and a trim or a placement that does not resolve, each by name.