pub struct ElevatedPositionTable { /* private fields */ }Expand description
Certified positions of an elevated or banked curve over an intrinsic or
a chain plan, in plan distance, read in any order: the plan from an
IntrinsicPositionTable or a ChainPositionTable, the height and
the pivot in closed form.
Implementations§
Source§impl ElevatedPositionTable
impl ElevatedPositionTable
Sourcepub fn new(
curve: &Curve3,
error: f64,
end: f64,
) -> Option<ElevatedPositionTable>
pub fn new( curve: &Curve3, error: f64, end: f64, ) -> Option<ElevatedPositionTable>
The table of curve over [0, end], its plan points within about
error (IntrinsicPositionTable::new2,
ChainPositionTable::new). Some only for an elevated or banked
curve whose plan is an intrinsic curve or a chain a
ChainPositionTable covers, whose profile is closed form (no
intrinsic profile), and for a banked curve whose cant and pivot laws
are well formed with no held-rail piece in the cant; None
otherwise, for an error or an end that is not finite and positive,
or an end past the plan’s length.
Sourcepub fn point3(&self, d: f64) -> Option<(DVec3, f64)>
pub fn point3(&self, d: f64) -> Option<(DVec3, f64)>
The point at plan distance d and a certified bound on its
distance from the exact point: the plan table’s error at d, with
the closed-form height (and pivot) exact. None outside [0, end]
or where the profile or the pivot has no value.
Sourcepub fn point3_on(&self, d: f64, side: SeamSide) -> Option<(DVec3, f64)>
pub fn point3_on(&self, d: f64, side: SeamSide) -> Option<(DVec3, f64)>
Self::point3 on side of a join of a chain plan (the side makes
no difference over an intrinsic plan, or off a join).
Sourcepub fn jet3_on(&self, d: f64, side: SeamSide) -> Option<(DVec3, DVec3, DVec3)>
pub fn jet3_on(&self, d: f64, side: SeamSide) -> Option<(DVec3, DVec3, DVec3)>
The point, the derivative and the second derivative at plan distance
d on side of a join, (c, c', c''): over a chain plan the plan
parts (p', p'') from the chain table and the profile’s and the
pivot’s in closed form; over an intrinsic plan the curve’s own
closed-form derivatives, bit for bit. Self::jet_errors bounds
their distances from the exact ones.
Sourcepub fn jet_errors(&self) -> [f64; 3]
pub fn jet_errors(&self) -> [f64; 3]
Certified bounds, uniform over the table, on how far a point, a
derivative and a second derivative it returns are from the exact
ones: [e0, e1, e2]. The plan’s max_error, max_tangent_error and
max_curvature_error over a chain plan (the closed-form profile adds
none); [max_error, 0, 0] over an intrinsic plan, whose derivatives
are exact closed forms of the heading.
Trait Implementations§
Source§impl Clone for ElevatedPositionTable
impl Clone for ElevatedPositionTable
Source§fn clone(&self) -> ElevatedPositionTable
fn clone(&self) -> ElevatedPositionTable
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for ElevatedPositionTable
impl RefUnwindSafe for ElevatedPositionTable
impl Send for ElevatedPositionTable
impl Sync for ElevatedPositionTable
impl Unpin for ElevatedPositionTable
impl UnsafeUnpin for ElevatedPositionTable
impl UnwindSafe for ElevatedPositionTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more