Enum DistanceConvention

Source
#[non_exhaustive]
pub enum DistanceConvention { ArcLength3d, PlanDistance, Unsupported, }
Expand description

Which distance a CurveEvaluator measures.

Naming this is not bureaucracy. For a Curve3::Elevated the plan distance and the true 3D arc length differ by sqrt(1 + grade^2), so a caller that assumes the wrong one misplaces a structure by 0.125 m per 100 m at a 5% grade and 0.5 m per 100 m at 10%. A silent mismatch is exactly the failure this contract exists to prevent, so the convention is part of the contract rather than provider trivia.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ArcLength3d

True arc length along the 3D curve.

Distance d advances d metres along the curve as built.

§

PlanDistance

Distance along the horizontal projection.

This is how an alignment is authored: both the plan and the vertical profile are functions of plan distance, and a station written on a drawing is a plan distance. It is NOT the distance a wheel travels, which is longer by the grade factor.

§

Unsupported

This provider cannot recover a distance for this curve.

Reported rather than approximated: an ellipse needs elliptic integrals and a B-spline needs numeric inversion, and returning the native parameter as though it were a distance would be a lie a caller cannot detect.

Implementations§

Source§

impl DistanceConvention

Source

pub fn is_supported(self) -> bool

Whether a distance can be evaluated at all.

Trait Implementations§

Source§

impl Clone for DistanceConvention

Source§

fn clone(&self) -> DistanceConvention

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DistanceConvention

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for DistanceConvention

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for DistanceConvention

Source§

fn eq(&self, other: &DistanceConvention) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for DistanceConvention

Source§

impl Eq for DistanceConvention

Source§

impl StructuralPartialEq for DistanceConvention

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.