pub struct CollisionFilter {
pub layer: u32,
pub mask: u32,
pub group: u32,
}Expand description
Collision filter using layer/mask bitmasks.
Two bodies can collide iff:
(a.layer & b.mask) != 0 && (b.layer & a.mask) != 0
This provides fine-grained bidirectional control.
Fields§
§layer: u32Which layer(s) this body belongs to (bitmask)
mask: u32Which layers this body can collide with (bitmask)
group: u32Collision group ID (bodies in the same non-zero group never collide)
Implementations§
Source§impl CollisionFilter
impl CollisionFilter
Sourcepub const fn with_group(self, group: u32) -> Self
pub const fn with_group(self, group: u32) -> Self
Create filter with a collision group
Sourcepub const fn can_collide(a: &Self, b: &Self) -> bool
pub const fn can_collide(a: &Self, b: &Self) -> bool
Check if two filters allow collision
Trait Implementations§
Source§impl Clone for CollisionFilter
impl Clone for CollisionFilter
impl Copy for CollisionFilter
Source§impl Debug for CollisionFilter
impl Debug for CollisionFilter
Source§impl Default for CollisionFilter
impl Default for CollisionFilter
impl Eq for CollisionFilter
Source§impl Hash for CollisionFilter
impl Hash for CollisionFilter
Source§impl PartialEq for CollisionFilter
impl PartialEq for CollisionFilter
impl StructuralPartialEq for CollisionFilter
Auto Trait Implementations§
impl Freeze for CollisionFilter
impl RefUnwindSafe for CollisionFilter
impl Send for CollisionFilter
impl Sync for CollisionFilter
impl Unpin for CollisionFilter
impl UnsafeUnpin for CollisionFilter
impl UnwindSafe for CollisionFilter
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
Mutably borrows from an owned value. Read more
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> ⓘ
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