Skip to main content

ProximityEvidence

Struct ProximityEvidence 

Source
pub struct ProximityEvidence { /* private fields */ }
Expand description

How close two bodies come and how far they overlap.

Implementations§

Source§

impl ProximityEvidence

Source

pub fn try_new( request: ProximityRequest, separation_metres: f64, penetration_metres: Option<f64>, plan_overlap_square_metres: f64, containment: Option<BodyContainment>, fidelity: GeometryFidelity, evidence: Evidence, ) -> Result<Self, ProximityError>

Rejects incoherent measurements and evidence whose exactness does not match the geometry it was measured on.

  • separation_metres: shortest distance between the two surfaces.
  • penetration_metres: depth of the deepest witnessed point of either body inside the other; None when neither body is a closed solid.
  • plan_overlap_square_metres: area of the two footprints’ overlap.
Source

pub fn with_overlap_extents( self, extents: OverlapExtents, ) -> Result<Self, ProximityError>

Adds the extents of the bodies’ intersection along each axis.

Refused when no penetration was measured (two open surfaces share no volume), and when bodies apart at the surface and not contained in one another claim a non-empty intersection.

Source

pub fn with_hausdorff( self, interval: LengthInterval, ) -> Result<Self, ProximityError>

Adds the Hausdorff distance between the two surfaces: the farthest any point of either surface lies from the other surface.

It is never smaller than the separation, so an interval lying wholly below the separation’s own interval is refused.

Source

pub fn with_intersection_volume( self, volume: IntersectionVolume, ) -> Result<Self, ProximityError>

Adds the certified volume the two bodies share, with their own volumes.

Refused when no penetration was measured (open surfaces enclose no volume), when bodies apart at the surface and not contained in one another claim a shared volume, and when a body said to lie inside the other cannot share its whole volume with it.

Source

pub fn request(&self) -> &ProximityRequest

Source

pub fn separation_metres(&self) -> f64

Shortest distance between the measured surfaces.

Source

pub fn separation_interval_metres(&self) -> (f64, f64)

The separation the true surfaces may have, given the fidelity.

(lower, upper); both equal the measured separation for exact geometry.

Source

pub fn penetration_metres(&self) -> Option<f64>

Witnessed interpenetration depth, a lower bound on the true depth.

Source

pub fn plan_overlap_square_metres(&self) -> f64

Source

pub fn containment(&self) -> Option<BodyContainment>

Source

pub fn overlap_extents(&self) -> Option<OverlapExtents>

Extents of the intersection along each axis; None when the service did not measure them or neither body is a closed solid.

Source

pub fn hausdorff_interval_metres(&self) -> Option<LengthInterval>

Hausdorff distance between the two surfaces; None when the service did not measure it. Zero exactly when the surfaces coincide, so it is what tells a duplicate from a mere overlap.

Source

pub fn intersection_volume(&self) -> Option<IntersectionVolume>

The certified volume the bodies share and their own volumes; None when the service did not measure it or a body is not a closed solid.

Source

pub fn fidelity(&self) -> GeometryFidelity

Source

pub fn evidence(&self) -> &Evidence

Trait Implementations§

Source§

impl Clone for ProximityEvidence

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ProximityEvidence

Source§

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

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

impl PartialEq for ProximityEvidence

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ProximityEvidence

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.