Skip to main content

AABB

Struct AABB 

Source
pub struct AABB {
    pub min: Vec3,
    pub max: Vec3,
}
Expand description

Axis-aligned bounding box.

Fields§

§min: Vec3

Lower corner (componentwise minimum).

§max: Vec3

Upper corner (componentwise maximum).

Implementations§

Source§

impl AABB

Source

pub fn new(min: Vec3, max: Vec3) -> Self

Create AABB from min/max corners.

Source

pub fn expanded(&self, pad: f64) -> Self

Grow the box by pad in every direction.

A broad phase that culls on the un-padded boxes decides which pairs the narrow phase is even allowed to see, so a margin applied only in the narrow phase is silently capped by it: an AABB gap never exceeds the true surface gap, so any pair inside the margin has AABBs at most margin apart, and padding each by half of that is exactly enough to keep them. Without it the margin band is unreachable for most pairs.

Source

pub fn from_geometry(geom: &Geometry, pos: &Vec3, rot: &Mat3) -> Self

Compute AABB for a geometry at given position and rotation.

Source

pub fn overlaps(&self, other: &AABB) -> bool

Check if two AABBs overlap.

Trait Implementations§

Source§

impl Clone for AABB

Source§

fn clone(&self) -> AABB

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 Copy for AABB

Source§

impl Debug for AABB

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for AABB

§

impl RefUnwindSafe for AABB

§

impl Send for AABB

§

impl Sync for AABB

§

impl Unpin for AABB

§

impl UnsafeUnpin for AABB

§

impl UnwindSafe for AABB

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.