Struct de_pathing::ExclusionArea 
source · pub struct ExclusionArea {
    polygon: ConvexPolygon,
    aabb: AABB<[f32; 2]>,
}Expand description
Non accessible area on the map.
An area is considered inaccessible if a centroid of a moving object cannot move inside. A padding / offset around static objects is included in the area to accommodate for non-zero moving object sizes and moving object trajectory smoothing.
Fields§
§polygon: ConvexPolygon§aabb: AABB<[f32; 2]>Implementations§
source§impl ExclusionArea
 
impl ExclusionArea
sourcepub(crate) fn build(exclusions: Vec<Self>) -> Vec<Self>
 
pub(crate) fn build(exclusions: Vec<Self>) -> Vec<Self>
Collectively process exclusion areas and recursively merge overlapping areas.
sourcepub fn from_ichnography(
    transform: &Transform,
    ichnography: &Ichnography
) -> Self
 
pub fn from_ichnography( transform: &Transform, ichnography: &Ichnography ) -> Self
Creates a new exclusion area from a static object ichnography and its world-to-object transform.
pub(crate) fn new(polygon: ConvexPolygon) -> Self
sourcefn merged(primary: &ExclusionArea, exclusions: &[ExclusionArea]) -> Self
 
fn merged(primary: &ExclusionArea, exclusions: &[ExclusionArea]) -> Self
Returns a new exclusion area corresponding to the convex hull of 1 or more other exclusion areas.
Trait Implementations§
source§impl Clone for ExclusionArea
 
impl Clone for ExclusionArea
source§fn clone(&self) -> ExclusionArea
 
fn clone(&self) -> ExclusionArea
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moresource§impl Debug for ExclusionArea
 
impl Debug for ExclusionArea
source§impl PointDistance for ExclusionArea
 
impl PointDistance for ExclusionArea
source§fn distance_2(&self, point: &[f32; 2]) -> f32
 
fn distance_2(&self, point: &[f32; 2]) -> f32
Returns the squared euclidean distance between an object to a point.
source§fn contains_point(&self, point: &[f32; 2]) -> bool
 
fn contains_point(&self, point: &[f32; 2]) -> bool
Returns 
true if a point is contained within this object. Read more§fn distance_2_if_less_or_equal(
    &self,
    point: &<Self::Envelope as Envelope>::Point,
    max_distance_2: <<Self::Envelope as Envelope>::Point as Point>::Scalar
) -> Option<<<Self::Envelope as Envelope>::Point as Point>::Scalar>
 
fn distance_2_if_less_or_equal( &self, point: &<Self::Envelope as Envelope>::Point, max_distance_2: <<Self::Envelope as Envelope>::Point as Point>::Scalar ) -> Option<<<Self::Envelope as Envelope>::Point as Point>::Scalar>
Returns the squared distance to this object, or 
None if the distance
is larger than a given maximum value. Read moresource§impl RTreeObject for ExclusionArea
 
impl RTreeObject for ExclusionArea
source§impl SelectionFunction<ExclusionArea> for &ExclusionArea
 
impl SelectionFunction<ExclusionArea> for &ExclusionArea
source§fn should_unpack_parent(&self, envelope: &RstarAABB<[f32; 2]>) -> bool
 
fn should_unpack_parent(&self, envelope: &RstarAABB<[f32; 2]>) -> bool
Return 
true if a parent node should be unpacked during a search. Read moresource§fn should_unpack_leaf(&self, other: &ExclusionArea) -> bool
 
fn should_unpack_leaf(&self, other: &ExclusionArea) -> bool
Returns 
true if a given child node should be returned during a search.
The default implementation will always return true.Auto Trait Implementations§
impl Freeze for ExclusionArea
impl RefUnwindSafe for ExclusionArea
impl Send for ExclusionArea
impl Sync for ExclusionArea
impl Unpin for ExclusionArea
impl UnwindSafe for ExclusionArea
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
 
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
 
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
Return the 
T [ShaderType] for self. When used in [AsBindGroup]
derives, it is safe to assume that all images in self exist.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
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert 
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert 
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
Convert 
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
§impl<S> FromSample<S> for S
 
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
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>
Converts 
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>
Converts 
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§impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
 
impl<SS, SP> SupersetOf<SS> for SPwhere
    SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
 
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct 
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
 
fn is_in_subset(&self) -> bool
Checks if 
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
 
fn to_subset_unchecked(&self) -> SS
Use with care! Same as 
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
 
fn from_subset(element: &SS) -> SP
The inclusion map: converts 
self to the equivalent element of its superset.