pub struct QueryFilter<'a> {
pub flags: QueryFilterFlags,
pub groups: Option<CollisionGroups>,
pub exclude_collider: Option<Entity>,
pub exclude_rigid_body: Option<Entity>,
pub predicate: Option<&'a dyn Fn(Entity, &Collider) -> bool>,
}Expand description
A filter that describes what collider should be included or excluded from a scene query.
Fields§
§flags: QueryFilterFlagsFlags indicating what particular type of colliders should be excluded.
groups: Option<CollisionGroups>If set, only colliders with collision groups compatible with this one will be included in the scene query.
The CollisionGroups::test_mode of both groups is taken into account.
exclude_collider: Option<Entity>If set, the collider attached to that entity will be excluded from the query.
exclude_rigid_body: Option<Entity>If set, any collider attached to the rigid-body attached to that entity will be excluded from the query.
predicate: Option<&'a dyn Fn(Entity, &Collider) -> bool>If set, any collider for which this closure returns false will be excluded from the query.
The closure is given the collider’s entity and its Rapier collider, which gives access to its shape, position, parent, etc.
Implementations§
Source§impl<'a> QueryFilter<'a>
impl<'a> QueryFilter<'a>
Sourcepub fn exclude_fixed() -> Self
pub fn exclude_fixed() -> Self
Exclude from the query any collider attached to a fixed rigid-body and colliders with no rigid-body attached.
Sourcepub fn exclude_kinematic() -> Self
pub fn exclude_kinematic() -> Self
Exclude from the query any collider attached to a kinematic rigid-body.
Sourcepub fn exclude_dynamic() -> Self
pub fn exclude_dynamic() -> Self
Exclude from the query any collider attached to a dynamic rigid-body.
Sourcepub fn only_dynamic() -> Self
pub fn only_dynamic() -> Self
Excludes all colliders not attached to a dynamic rigid-body.
Sourcepub fn only_kinematic() -> Self
pub fn only_kinematic() -> Self
Excludes all colliders not attached to a kinematic rigid-body.
Sourcepub fn only_fixed() -> Self
pub fn only_fixed() -> Self
Exclude all colliders attached to a non-fixed rigid-body (this will not exclude colliders not attached to any rigid-body).
Sourcepub fn exclude_sensors(self) -> Self
pub fn exclude_sensors(self) -> Self
Exclude from the query any collider that is a sensor.
Sourcepub fn exclude_solids(self) -> Self
pub fn exclude_solids(self) -> Self
Exclude from the query any collider that is not a sensor.
Sourcepub fn groups(self, groups: CollisionGroups) -> Self
pub fn groups(self, groups: CollisionGroups) -> Self
Only colliders with collision groups compatible with this one will be included in the scene query.
The CollisionGroups::test_mode of both groups is taken into account.
Sourcepub fn exclude_collider(self, collider: Entity) -> Self
pub fn exclude_collider(self, collider: Entity) -> Self
Set the collider that will be excluded from the scene query.
Sourcepub fn exclude_rigid_body(self, rigid_body: Entity) -> Self
pub fn exclude_rigid_body(self, rigid_body: Entity) -> Self
Set the rigid-body that will be excluded from the scene query.
Trait Implementations§
Source§impl<'a> Clone for QueryFilter<'a>
impl<'a> Clone for QueryFilter<'a>
Source§fn clone(&self) -> QueryFilter<'a>
fn clone(&self) -> QueryFilter<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl<'a> Copy for QueryFilter<'a>
Source§impl<'a> Default for QueryFilter<'a>
impl<'a> Default for QueryFilter<'a>
Source§fn default() -> QueryFilter<'a>
fn default() -> QueryFilter<'a>
Source§impl From<CollisionGroups> for QueryFilter<'_>
impl From<CollisionGroups> for QueryFilter<'_>
Source§fn from(groups: CollisionGroups) -> Self
fn from(groups: CollisionGroups) -> Self
Source§impl From<QueryFilterFlags> for QueryFilter<'_>
impl From<QueryFilterFlags> for QueryFilter<'_>
Source§fn from(flags: QueryFilterFlags) -> Self
fn from(flags: QueryFilterFlags) -> Self
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for QueryFilter<'a>
impl<'a> !Send for QueryFilter<'a>
impl<'a> !Sync for QueryFilter<'a>
impl<'a> !UnwindSafe for QueryFilter<'a>
impl<'a> Freeze for QueryFilter<'a>
impl<'a> Unpin for QueryFilter<'a>
impl<'a> UnsafeUnpin for QueryFilter<'a>
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> FromTemplate for T
impl<T> FromTemplate for T
Source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
Source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Creates Self using default().
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.Source§impl<T> Template for T
impl<T> Template for T
Source§fn build_template(
&self,
_context: &mut TemplateContext<'_, '_>,
) -> Result<<T as Template>::Output, BevyError>
fn build_template( &self, _context: &mut TemplateContext<'_, '_>, ) -> Result<<T as Template>::Output, BevyError>
entity context to produce a Template::Output.Source§fn clone_template(&self) -> T
fn clone_template(&self) -> T
Clone.