Struct bevy_rapier2d::geometry::InteractionGroups
source · [−]Expand description
Pairwise filtering using bit masks.
This filtering method is based on two 32-bit values:
- The interaction groups memberships.
- The interaction groups filter.
An interaction is allowed between two filters a
and b
when two conditions
are met simultaneously:
- The groups membership of
a
has at least one bit set to1
in common with the groups filter ofb
. - The groups membership of
b
has at least one bit set to1
in common with the groups filter ofa
.
In other words, interactions are allowed between two filter iff. the following condition is met:
(self.memberships & rhs.filter) != 0 && (rhs.memberships & self.filter) != 0
Fields
memberships: u32
Groups memberships.
filter: u32
Groups filter.
Implementations
sourceimpl InteractionGroups
impl InteractionGroups
sourcepub const fn new(memberships: u32, filter: u32) -> InteractionGroups
pub const fn new(memberships: u32, filter: u32) -> InteractionGroups
Initializes with the given interaction groups and interaction mask.
sourcepub const fn all() -> InteractionGroups
pub const fn all() -> InteractionGroups
Allow interaction with everything.
sourcepub const fn none() -> InteractionGroups
pub const fn none() -> InteractionGroups
Prevent all interactions.
sourcepub const fn with_memberships(self, memberships: u32) -> InteractionGroups
pub const fn with_memberships(self, memberships: u32) -> InteractionGroups
Sets the group this filter is part of.
sourcepub const fn with_filter(self, filter: u32) -> InteractionGroups
pub const fn with_filter(self, filter: u32) -> InteractionGroups
Sets the interaction mask of this filter.
sourcepub const fn test(self, rhs: InteractionGroups) -> bool
pub const fn test(self, rhs: InteractionGroups) -> bool
Check if interactions should be allowed based on the interaction memberships and filter.
An interaction is allowed iff. the memberships of self
contain at least one bit set to 1 in common
with the filter of rhs
, and vice-versa.
Trait Implementations
sourceimpl Clone for InteractionGroups
impl Clone for InteractionGroups
sourcefn clone(&self) -> InteractionGroups
fn clone(&self) -> InteractionGroups
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for InteractionGroups
impl Debug for InteractionGroups
sourceimpl Default for InteractionGroups
impl Default for InteractionGroups
sourcefn default() -> InteractionGroups
fn default() -> InteractionGroups
Returns the “default value” for a type. Read more
sourceimpl<'de> Deserialize<'de> for InteractionGroups
impl<'de> Deserialize<'de> for InteractionGroups
sourcefn deserialize<__D>(
__deserializer: __D
) -> Result<InteractionGroups, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<InteractionGroups, <__D as Deserializer<'de>>::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl From<CollisionGroups> for InteractionGroups
impl From<CollisionGroups> for InteractionGroups
sourcefn from(collision_groups: CollisionGroups) -> InteractionGroups
fn from(collision_groups: CollisionGroups) -> InteractionGroups
Converts to this type from the input type.
sourceimpl<'a> From<InteractionGroups> for QueryFilter<'a>
impl<'a> From<InteractionGroups> for QueryFilter<'a>
sourcefn from(groups: InteractionGroups) -> Self
fn from(groups: InteractionGroups) -> Self
Converts to this type from the input type.
sourceimpl From<SolverGroups> for InteractionGroups
impl From<SolverGroups> for InteractionGroups
sourcefn from(solver_groups: SolverGroups) -> InteractionGroups
fn from(solver_groups: SolverGroups) -> InteractionGroups
Converts to this type from the input type.
sourceimpl Hash for InteractionGroups
impl Hash for InteractionGroups
sourceimpl PartialEq<InteractionGroups> for InteractionGroups
impl PartialEq<InteractionGroups> for InteractionGroups
sourcefn eq(&self, other: &InteractionGroups) -> bool
fn eq(&self, other: &InteractionGroups) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &InteractionGroups) -> bool
fn ne(&self, other: &InteractionGroups) -> bool
This method tests for !=
.
sourceimpl Serialize for InteractionGroups
impl Serialize for InteractionGroups
sourcefn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error> where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl Copy for InteractionGroups
impl Eq for InteractionGroups
impl StructuralEq for InteractionGroups
impl StructuralPartialEq for InteractionGroups
Auto Trait Implementations
impl RefUnwindSafe for InteractionGroups
impl Send for InteractionGroups
impl Sync for InteractionGroups
impl Unpin for InteractionGroups
impl UnwindSafe for InteractionGroups
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for T where
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
Return the T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn 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 T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
. Read more
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
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. Read more
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. Read more
impl<T> DynHash for T where
T: DynEq + Hash,
impl<T> DynHash for T where
T: DynEq + Hash,
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
impl<T> FromWorld for T where
T: Default,
impl<T> FromWorld for T where
T: Default,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self
using data from the given [World]
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> Serialize for T where
T: Serialize + ?Sized,
impl<T> Serialize for T where
T: Serialize + ?Sized,
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
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.
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more