pub struct Elevated3 {
pub plan: Box<Curve2>,
pub elevation: ElevationLaw,
}Expand description
A planar curve carrying an independent elevation law.
This is the composition an alignment centreline actually is: the plan is
exact – including the transition spirals a Curve2::Intrinsic holds –
and the vertical profile is exact, and neither is approximated to pair
them. Evaluation is parameterised by PLAN DISTANCE, which is the parameter
both halves are authored against.
Composition rather than re-encoding: a Curve3::BSpline fitted through the
pair would lose both. Storing the two laws keeps each one’s own exactness
and lets a consumer recover either half unchanged.
Only a plan whose parameter is arc length (line, circle, intrinsic) can carry a law. A B-spline’s parameter is not a distance, so evaluators refuse an elevated B-spline plan rather than reinterpret the law (ADR 0060).
Fields§
§plan: Box<Curve2>Horizontal layout. Boxed to keep Curve3 small.
elevation: ElevationLawHeight as a function of distance along plan.
Implementations§
Trait Implementations§
impl StructuralPartialEq for Elevated3
Auto Trait Implementations§
impl Freeze for Elevated3
impl RefUnwindSafe for Elevated3
impl Send for Elevated3
impl Sync for Elevated3
impl Unpin for Elevated3
impl UnwindSafe for Elevated3
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
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