pub struct FrameLaw<'b, 'c> { /* private fields */ }Expand description
Certified bounds on the frame law along a station basis (#316): an
atomic curve or a CompositeBasis, over spans that cross no seam.
A piece read in closed form is bounded by piece_frame_bounds. A
piece read by quadrature – an ellipse, a B-spline, an offset beside a
line, a circle, an ellipse or a B-spline – is bounded against its
exact frame law, its own length measured once by chord panels to the
tolerance (see the module documentation):
the measure is how far a read’s true distance lies from the one asked
for, and the read point’s and axes’ distances from the exact frame at
that true distance are FrameLawBounds::point_error and
FrameLawBounds::axis_error. On a composite, a piece after one
measured by quadrature starts where the kernel sums the lengths before
it, which CompositeBasis::joint_intervals certifies: its distance
from the true joint is added to the measure.
Not bounded (None): every family piece_frame_bounds leaves
unbounded other than those above (an intrinsic curve, a chain, an
offset beside a curve parameterised by its plan length or beside a
banked curve, a skewed circle, a steep tangent), a curve read by
quadrature placed in a frame that tilts +Z, a placed offset piece,
and a piece after joints whose distances are not certified at the
tolerance.
Implementations§
Source§impl<'b, 'c> FrameLaw<'b, 'c>
impl<'b, 'c> FrameLaw<'b, 'c>
Sourcepub fn atomic(
curve: StationCurve<'c>,
placement: Option<DAffine3>,
tolerance: f64,
) -> Result<FrameLaw<'b, 'c>, GeomError>
pub fn atomic( curve: StationCurve<'c>, placement: Option<DAffine3>, tolerance: f64, ) -> Result<FrameLaw<'b, 'c>, GeomError>
The frame law along the atomic curve, placed by placement if
any, its quadratures certified to tolerance.
§Errors
A tolerance that is not finite and positive, and a curve read by quadrature whose length a station cannot be measured against, by name.
Sourcepub fn composite(
basis: &'b CompositeBasis<'c>,
tolerance: f64,
) -> Result<FrameLaw<'b, 'c>, GeomError>
pub fn composite( basis: &'b CompositeBasis<'c>, tolerance: f64, ) -> Result<FrameLaw<'b, 'c>, GeomError>
The frame law along basis, its quadratures certified to
tolerance.
§Errors
A tolerance that is not finite and positive, by name.
Sourcepub fn bounds(
&self,
a: f64,
b: f64,
reading: FrameReading,
) -> Option<FrameLawBounds>
pub fn bounds( &self, a: f64, b: f64, reading: FrameReading, ) -> Option<FrameLawBounds>
Certified bounds of the frame law over the distances [a, b] along
the basis, a span that crosses no seam, read as reading; None
where they are not certified (see the type documentation).