pub struct RapierContext<'a> {
pub simulation: &'a RapierContextSimulation,
pub colliders: &'a RapierContextColliders,
pub joints: &'a RapierContextJoints,
pub rigidbody_set: &'a RapierRigidBodySet,
}Expand description
A helper struct to avoid passing too many parameters to most rapier functions. This helps with reducing boilerplate, at the (small) price of maybe getting too much information from the ECS.
Note: This is not a component, refer to ReadRapierContext, WriteRapierContext, or RapierContextSimulation
Fields§
§simulation: &'a RapierContextSimulationThe Rapier context, containing all the state of the physics engine.
colliders: &'a RapierContextCollidersThe set of colliders part of the simulation.
joints: &'a RapierContextJointsThe sets of joints part of the simulation.
rigidbody_set: &'a RapierRigidBodySetThe set of rigid-bodies part of the simulation.
Implementations§
Source§impl RapierContext<'_>
RapierContextSimulation functions for immutable accesses
impl RapierContext<'_>
RapierContextSimulation functions for immutable accesses
Sourcepub fn contact_pair(
&self,
collider1: Entity,
collider2: Entity,
) -> Option<ContactPairView<'_>>
pub fn contact_pair( &self, collider1: Entity, collider2: Entity, ) -> Option<ContactPairView<'_>>
Shortcut to RapierContextSimulation::contact_pair.
Sourcepub fn contact_pairs_with(
&self,
collider: Entity,
) -> impl Iterator<Item = ContactPairView<'_>>
pub fn contact_pairs_with( &self, collider: Entity, ) -> impl Iterator<Item = ContactPairView<'_>>
Shortcut to RapierContextSimulation::contact_pairs_with.
Sourcepub fn intersection_pair(
&self,
collider1: Entity,
collider2: Entity,
) -> Option<bool>
pub fn intersection_pair( &self, collider1: Entity, collider2: Entity, ) -> Option<bool>
Shortcut to RapierContextSimulation::intersection_pair.
Sourcepub fn intersection_pairs_with(
&self,
collider: Entity,
) -> impl Iterator<Item = (Entity, Entity, bool)> + '_
pub fn intersection_pairs_with( &self, collider: Entity, ) -> impl Iterator<Item = (Entity, Entity, bool)> + '_
Shortcut to RapierContextSimulation::intersection_pairs_with.
Source§impl RapierContext<'_>
impl RapierContext<'_>
Sourcepub fn with_query_pipeline<'a, T>(
&'a self,
filter: QueryFilter<'a>,
scoped_fn: impl FnOnce(RapierQueryPipeline<'_>) -> T,
) -> T
pub fn with_query_pipeline<'a, T>( &'a self, filter: QueryFilter<'a>, scoped_fn: impl FnOnce(RapierQueryPipeline<'_>) -> T, ) -> T
Shortcut to RapierQueryPipeline::new_scoped.
Sourcepub fn cast_ray(
&self,
ray_origin: Vect,
ray_dir: Vect,
max_toi: f32,
solid: bool,
filter: QueryFilter<'_>,
) -> Option<(Entity, f32)>
pub fn cast_ray( &self, ray_origin: Vect, ray_dir: Vect, max_toi: f32, solid: bool, filter: QueryFilter<'_>, ) -> Option<(Entity, f32)>
Shortcut to RapierQueryPipeline::cast_ray.
Sourcepub fn cast_ray_and_get_normal(
&self,
ray_origin: Vect,
ray_dir: Vect,
max_toi: f32,
solid: bool,
filter: QueryFilter<'_>,
) -> Option<(Entity, RayIntersection)>
pub fn cast_ray_and_get_normal( &self, ray_origin: Vect, ray_dir: Vect, max_toi: f32, solid: bool, filter: QueryFilter<'_>, ) -> Option<(Entity, RayIntersection)>
Shortcut to RapierQueryPipeline::cast_ray_and_get_normal.
Sourcepub fn intersect_point(
&self,
point: Vect,
filter: QueryFilter<'_>,
callback: impl FnMut(Entity, &RapierCollider) -> bool,
)
pub fn intersect_point( &self, point: Vect, filter: QueryFilter<'_>, callback: impl FnMut(Entity, &RapierCollider) -> bool, )
Shortcut to RapierQueryPipeline::intersect_point.
Stops the query if callback returns false.
Sourcepub fn intersect_ray(
&self,
ray_origin: Vect,
ray_dir: Vect,
max_toi: f32,
solid: bool,
filter: QueryFilter<'_>,
callback: impl FnMut(Entity, &RapierCollider, RayIntersection) -> bool,
)
pub fn intersect_ray( &self, ray_origin: Vect, ray_dir: Vect, max_toi: f32, solid: bool, filter: QueryFilter<'_>, callback: impl FnMut(Entity, &RapierCollider, RayIntersection) -> bool, )
Shortcut to RapierQueryPipeline::intersect_ray.
Stops the query if callback returns false.
Sourcepub fn intersect_shape(
&self,
shape_pos: Vect,
shape_rot: Rot,
shape: &(impl AsShape + ?Sized),
filter: QueryFilter<'_>,
callback: impl FnMut(Entity, &RapierCollider) -> bool,
)
pub fn intersect_shape( &self, shape_pos: Vect, shape_rot: Rot, shape: &(impl AsShape + ?Sized), filter: QueryFilter<'_>, callback: impl FnMut(Entity, &RapierCollider) -> bool, )
Shortcut to RapierQueryPipeline::intersect_shape.
Sourcepub fn intersect_aabb_conservative(
&self,
aabb: Aabb3d,
filter: QueryFilter<'_>,
callback: impl FnMut(Entity, &RapierCollider) -> bool,
)
pub fn intersect_aabb_conservative( &self, aabb: Aabb3d, filter: QueryFilter<'_>, callback: impl FnMut(Entity, &RapierCollider) -> bool, )
Shortcut to RapierQueryPipeline::intersect_aabb_conservative.
Sourcepub fn cast_shape(
&self,
shape_pos: Vect,
shape_rot: Rot,
shape_vel: Vect,
shape: &(impl AsShape + ?Sized),
options: ShapeCastOptions,
filter: QueryFilter<'_>,
) -> Option<(Entity, ShapeCastHit)>
pub fn cast_shape( &self, shape_pos: Vect, shape_rot: Rot, shape_vel: Vect, shape: &(impl AsShape + ?Sized), options: ShapeCastOptions, filter: QueryFilter<'_>, ) -> Option<(Entity, ShapeCastHit)>
Shortcut to RapierQueryPipeline::cast_shape.
Sourcepub fn project_point(
&self,
point: Vect,
max_dist: f32,
solid: bool,
filter: QueryFilter<'_>,
) -> Option<(Entity, PointProjection)>
pub fn project_point( &self, point: Vect, max_dist: f32, solid: bool, filter: QueryFilter<'_>, ) -> Option<(Entity, PointProjection)>
Shortcut to RapierQueryPipeline::project_point.
Source§impl RapierContext<'_>
impl RapierContext<'_>
Sourcepub fn project_point_and_get_feature(
&self,
point: Vect,
max_dist: f32,
filter: QueryFilter<'_>,
) -> Option<(Entity, PointProjection, FeatureId)>
pub fn project_point_and_get_feature( &self, point: Vect, max_dist: f32, filter: QueryFilter<'_>, ) -> Option<(Entity, PointProjection, FeatureId)>
Shortcut to RapierQueryPipeline::project_point_and_get_feature.
Sourcepub fn cast_shape_nonlinear(
&self,
shape_motion: &NonlinearMotion,
shape: &(impl AsShape + ?Sized),
start_time: f32,
end_time: f32,
stop_at_penetration: bool,
filter: QueryFilter<'_>,
) -> Option<(Entity, ShapeCastHit)>
pub fn cast_shape_nonlinear( &self, shape_motion: &NonlinearMotion, shape: &(impl AsShape + ?Sized), start_time: f32, end_time: f32, stop_at_penetration: bool, filter: QueryFilter<'_>, ) -> Option<(Entity, ShapeCastHit)>
Shortcut to RapierQueryPipeline::cast_shape_nonlinear.
Sourcepub fn distance_to_shape(
&self,
shape_pos: Vect,
shape_rot: Rot,
shape: &(impl AsShape + ?Sized),
filter: QueryFilter<'_>,
) -> Option<(Entity, f32)>
pub fn distance_to_shape( &self, shape_pos: Vect, shape_rot: Rot, shape: &(impl AsShape + ?Sized), filter: QueryFilter<'_>, ) -> Option<(Entity, f32)>
Shortcut to RapierQueryPipeline::distance_to_shape.
Sourcepub fn closest_points_to_shape(
&self,
shape_pos: Vect,
shape_rot: Rot,
shape: &(impl AsShape + ?Sized),
max_dist: f32,
filter: QueryFilter<'_>,
) -> Option<(Entity, ShapeClosestPoints)>
pub fn closest_points_to_shape( &self, shape_pos: Vect, shape_rot: Rot, shape: &(impl AsShape + ?Sized), max_dist: f32, filter: QueryFilter<'_>, ) -> Option<(Entity, ShapeClosestPoints)>
Shortcut to RapierQueryPipeline::closest_points_to_shape.
Sourcepub fn contact_with_shape(
&self,
shape_pos: Vect,
shape_rot: Rot,
shape: &(impl AsShape + ?Sized),
prediction: f32,
filter: QueryFilter<'_>,
) -> Option<(Entity, ShapeContact)>
pub fn contact_with_shape( &self, shape_pos: Vect, shape_rot: Rot, shape: &(impl AsShape + ?Sized), prediction: f32, filter: QueryFilter<'_>, ) -> Option<(Entity, ShapeContact)>
Shortcut to RapierQueryPipeline::contact_with_shape.
Sourcepub fn bvh(&self) -> &Bvh
pub fn bvh(&self) -> &Bvh
Shortcut to RapierQueryPipeline::bvh.
Source§impl RapierContext<'_>
impl RapierContext<'_>
Sourcepub fn entity2body(&self) -> &HashMap<Entity, RigidBodyHandle>
pub fn entity2body(&self) -> &HashMap<Entity, RigidBodyHandle>
Shortcut to RapierRigidBodySet::entity2body.
Sourcepub fn rigid_body_entity(&self, handle: RigidBodyHandle) -> Option<Entity>
pub fn rigid_body_entity(&self, handle: RigidBodyHandle) -> Option<Entity>
Shortcut to RapierRigidBodySet::rigid_body_entity.
Sourcepub fn impulse_revolute_joint_angle(&self, entity: Entity) -> Option<f32>
pub fn impulse_revolute_joint_angle(&self, entity: Entity) -> Option<f32>
Shortcut to RapierRigidBodySet::impulse_revolute_joint_angle.
Source§impl RapierContext<'_>
impl RapierContext<'_>
Sourcepub fn entity2soft_body(&self) -> &HashMap<Entity, SoftBodyHandle>
pub fn entity2soft_body(&self) -> &HashMap<Entity, SoftBodyHandle>
Shortcut to RapierRigidBodySet::entity2soft_body.
Sourcepub fn soft_body_entity(&self, handle: SoftBodyHandle) -> Option<Entity>
pub fn soft_body_entity(&self, handle: SoftBodyHandle) -> Option<Entity>
Shortcut to RapierRigidBodySet::soft_body_entity.
Sourcepub fn soft_body(&self, entity: Entity) -> Option<&RapierSoftBody>
pub fn soft_body(&self, entity: Entity) -> Option<&RapierSoftBody>
Shortcut to RapierRigidBodySet::soft_body.
Sourcepub fn soft_body_particle_positions(
&self,
entity: Entity,
) -> Option<impl ExactSizeIterator<Item = Vect> + '_>
pub fn soft_body_particle_positions( &self, entity: Entity, ) -> Option<impl ExactSizeIterator<Item = Vect> + '_>
Shortcut to RapierRigidBodySet::soft_body_particle_positions.
Sourcepub fn soft_body_particle_velocities(
&self,
entity: Entity,
) -> Option<impl ExactSizeIterator<Item = Vect> + '_>
pub fn soft_body_particle_velocities( &self, entity: Entity, ) -> Option<impl ExactSizeIterator<Item = Vect> + '_>
Shortcut to RapierRigidBodySet::soft_body_particle_velocities.
Sourcepub fn soft_body_volume(&self, entity: Entity) -> Option<f32>
pub fn soft_body_volume(&self, entity: Entity) -> Option<f32>
Shortcut to RapierRigidBodySet::soft_body_volume.
Sourcepub fn soft_body_mass(&self, entity: Entity) -> Option<f32>
pub fn soft_body_mass(&self, entity: Entity) -> Option<f32>
Shortcut to RapierRigidBodySet::soft_body_mass.
Sourcepub fn soft_body_center_of_mass(&self, entity: Entity) -> Option<Vect>
pub fn soft_body_center_of_mass(&self, entity: Entity) -> Option<Vect>
Shortcut to RapierRigidBodySet::soft_body_center_of_mass.
Sourcepub fn is_soft_body_sleeping(&self, entity: Entity) -> Option<bool>
pub fn is_soft_body_sleeping(&self, entity: Entity) -> Option<bool>
Shortcut to RapierRigidBodySet::is_soft_body_sleeping.
Sourcepub fn soft_body_whole_proxy(&self, entity: Entity) -> Option<RigidBodyHandle>
pub fn soft_body_whole_proxy(&self, entity: Entity) -> Option<RigidBodyHandle>
Shortcut to RapierRigidBodySet::soft_body_whole_proxy.
Sourcepub fn soft_body_cluster_index(
&self,
entity: Entity,
) -> Option<(SoftBodyHandle, u32)>
pub fn soft_body_cluster_index( &self, entity: Entity, ) -> Option<(SoftBodyHandle, u32)>
Shortcut to RapierRigidBodySet::soft_body_cluster_index.
Source§impl RapierContext<'_>
impl RapierContext<'_>
Sourcepub fn impulse_joint_impulses(
&self,
entity: Entity,
) -> Option<ImpulseJointImpulses>
pub fn impulse_joint_impulses( &self, entity: Entity, ) -> Option<ImpulseJointImpulses>
Shortcut to RapierContextJoints::impulse_joint_impulses.
Sourcepub fn impulse_joints_between(
&self,
body1: Entity,
body2: Entity,
) -> impl Iterator<Item = Entity> + '_
pub fn impulse_joints_between( &self, body1: Entity, body2: Entity, ) -> impl Iterator<Item = Entity> + '_
Shortcut to RapierContextJoints::impulse_joints_between.
Sourcepub fn attached_impulse_joints(
&self,
body: Entity,
) -> impl Iterator<Item = Entity> + '_
pub fn attached_impulse_joints( &self, body: Entity, ) -> impl Iterator<Item = Entity> + '_
Shortcut to RapierContextJoints::attached_impulse_joints.
Sourcepub fn attached_enabled_impulse_joints(
&self,
body: Entity,
) -> impl Iterator<Item = Entity> + '_
pub fn attached_enabled_impulse_joints( &self, body: Entity, ) -> impl Iterator<Item = Entity> + '_
Shortcut to RapierContextJoints::attached_enabled_impulse_joints.
Sourcepub fn multibody(&self, entity: Entity) -> Option<(&Multibody, usize)>
pub fn multibody(&self, entity: Entity) -> Option<(&Multibody, usize)>
Shortcut to RapierContextJoints::multibody.
Sourcepub fn multibody_root(&self, entity: Entity) -> Option<Entity>
pub fn multibody_root(&self, entity: Entity) -> Option<Entity>
Shortcut to RapierContextJoints::multibody_root.
Sourcepub fn multibody_links(
&self,
entity: Entity,
) -> impl Iterator<Item = Entity> + '_
pub fn multibody_links( &self, entity: Entity, ) -> impl Iterator<Item = Entity> + '_
Shortcut to RapierContextJoints::multibody_links.
Sourcepub fn multibody_parent_link(&self, entity: Entity) -> Option<Entity>
pub fn multibody_parent_link(&self, entity: Entity) -> Option<Entity>
Shortcut to RapierContextJoints::multibody_parent_link.
Sourcepub fn multibody_joint_between(
&self,
body1: Entity,
body2: Entity,
) -> Option<Entity>
pub fn multibody_joint_between( &self, body1: Entity, body2: Entity, ) -> Option<Entity>
Shortcut to RapierContextJoints::multibody_joint_between.
Sourcepub fn attached_multibody_joints(
&self,
body: Entity,
) -> impl Iterator<Item = Entity> + '_
pub fn attached_multibody_joints( &self, body: Entity, ) -> impl Iterator<Item = Entity> + '_
Shortcut to RapierContextJoints::attached_multibody_joints.
Sourcepub fn multibody_link_dofs(&self, entity: Entity) -> Option<Range<usize>>
pub fn multibody_link_dofs(&self, entity: Entity) -> Option<Range<usize>>
Shortcut to RapierContextJoints::multibody_link_dofs.
Sourcepub fn multibody_generalized_velocity(&self, entity: Entity) -> Option<&[f32]>
pub fn multibody_generalized_velocity(&self, entity: Entity) -> Option<&[f32]>
Shortcut to RapierContextJoints::multibody_generalized_velocity.
Sourcepub fn multibody_joint_state(
&self,
entity: Entity,
) -> Option<MultibodyJointState>
pub fn multibody_joint_state( &self, entity: Entity, ) -> Option<MultibodyJointState>
Shortcut to RapierContextJoints::multibody_joint_state.
Sourcepub fn multibody_body_jacobian(&self, entity: Entity) -> Option<&Jacobian<f32>>
pub fn multibody_body_jacobian(&self, entity: Entity) -> Option<&Jacobian<f32>>
Shortcut to RapierContextJoints::multibody_body_jacobian.
Sourcepub fn multibody_inverse_kinematics(
&self,
link: Entity,
target: Transform,
options: &InverseKinematicsOption,
joint_can_move: impl Fn(Entity) -> bool,
displacements: &mut Vec<f32>,
) -> bool
pub fn multibody_inverse_kinematics( &self, link: Entity, target: Transform, options: &InverseKinematicsOption, joint_can_move: impl Fn(Entity) -> bool, displacements: &mut Vec<f32>, ) -> bool
Shortcut to RapierContextJoints::multibody_inverse_kinematics.
Trait Implementations§
impl<'a> ArchetypeQueryData for RapierContext<'a>where
for<'__a> &'a RapierContextSimulation: ArchetypeQueryData,
for<'__a> &'a RapierContextColliders: ArchetypeQueryData,
for<'__a> &'a RapierContextJoints: ArchetypeQueryData,
for<'__a> &'a RapierRigidBodySet: ArchetypeQueryData,
impl<'a> IterQueryData for RapierContext<'a>where
for<'__a> &'a RapierContextSimulation: IterQueryData,
for<'__a> &'a RapierContextColliders: IterQueryData,
for<'__a> &'a RapierContextJoints: IterQueryData,
for<'__a> &'a RapierRigidBodySet: IterQueryData,
Source§impl<'a> QueryData for RapierContext<'a>
impl<'a> QueryData for RapierContext<'a>
Source§unsafe fn fetch<'__w, '__s>(
_state: &'__s Self::State,
_fetch: &mut <Self as WorldQuery>::Fetch<'__w>,
_entity: Entity,
_table_row: TableRow,
) -> Option<Self::Item<'__w, '__s>>
unsafe fn fetch<'__w, '__s>( _state: &'__s Self::State, _fetch: &mut <Self as WorldQuery>::Fetch<'__w>, _entity: Entity, _table_row: TableRow, ) -> Option<Self::Item<'__w, '__s>>
SAFETY: we call fetch for each member that implements Fetch.
Source§const IS_READ_ONLY: bool = true
const IS_READ_ONLY: bool = true
Source§const IS_ARCHETYPAL: bool
const IS_ARCHETYPAL: bool
Source§type ReadOnly = RapierContext<'a>
type ReadOnly = RapierContext<'a>
QueryData, which satisfies the ReadOnlyQueryData trait.Source§type Item<'__w, '__s> = RapierContextItem<'__w, '__s, 'a>
type Item<'__w, '__s> = RapierContextItem<'__w, '__s, 'a>
WorldQuery
This will be the data retrieved by the query,
and is visible to the end user when calling e.g. Query<Self>::get.Source§fn shrink<'__wlong: '__wshort, '__wshort, '__s>(
item: Self::Item<'__wlong, '__s>,
) -> Self::Item<'__wshort, '__s>
fn shrink<'__wlong: '__wshort, '__wshort, '__s>( item: Self::Item<'__wlong, '__s>, ) -> Self::Item<'__wshort, '__s>
Source§fn provide_extra_access(
state: &mut Self::State,
access: &mut Access,
available_access: &Access,
)
fn provide_extra_access( state: &mut Self::State, access: &mut Access, available_access: &Access, )
update_component_access.
Implementations may add additional access that is a subset of available_access
and does not conflict with anything in access,
and must update access to include that access. Read moreSource§fn iter_access(_state: &Self::State) -> impl Iterator<Item = EcsAccessType<'_>>
fn iter_access(_state: &Self::State) -> impl Iterator<Item = EcsAccessType<'_>>
QueryData::fetch. Access conflicts are usually
checked in WorldQuery::update_component_access, but in certain cases this method can be useful to implement
a way of checking for access conflicts in a non-allocating way.impl<'a> ReadOnlyQueryData for RapierContext<'a>
Source§impl<'a> ReleaseStateQueryData for RapierContext<'a>where
for<'__a> &'a RapierContextSimulation: ReleaseStateQueryData,
for<'__a> &'a RapierContextColliders: ReleaseStateQueryData,
for<'__a> &'a RapierContextJoints: ReleaseStateQueryData,
for<'__a> &'a RapierRigidBodySet: ReleaseStateQueryData,
impl<'a> ReleaseStateQueryData for RapierContext<'a>where
for<'__a> &'a RapierContextSimulation: ReleaseStateQueryData,
for<'__a> &'a RapierContextColliders: ReleaseStateQueryData,
for<'__a> &'a RapierContextJoints: ReleaseStateQueryData,
for<'__a> &'a RapierRigidBodySet: ReleaseStateQueryData,
Source§fn release_state<'__w>(_item: Self::Item<'__w, '_>) -> Self::Item<'__w, 'static>
fn release_state<'__w>(_item: Self::Item<'__w, '_>) -> Self::Item<'__w, 'static>
'static state lifetime.impl<'a> SingleEntityQueryData for RapierContext<'a>where
for<'__a> &'a RapierContextSimulation: SingleEntityQueryData,
for<'__a> &'a RapierContextColliders: SingleEntityQueryData,
for<'__a> &'a RapierContextJoints: SingleEntityQueryData,
for<'__a> &'a RapierRigidBodySet: SingleEntityQueryData,
Source§impl<'a> WorldQuery for RapierContext<'a>
impl<'a> WorldQuery for RapierContext<'a>
Source§unsafe fn set_archetype<'__w, '__s>(
_fetch: &mut <Self as WorldQuery>::Fetch<'__w>,
_state: &'__s Self::State,
_archetype: &'__w Archetype,
_table: &'__w Table,
)
unsafe fn set_archetype<'__w, '__s>( _fetch: &mut <Self as WorldQuery>::Fetch<'__w>, _state: &'__s Self::State, _archetype: &'__w Archetype, _table: &'__w Table, )
SAFETY: we call set_archetype for each member that implements Fetch
Source§unsafe fn set_table<'__w, '__s>(
_fetch: &mut <Self as WorldQuery>::Fetch<'__w>,
_state: &'__s Self::State,
_table: &'__w Table,
)
unsafe fn set_table<'__w, '__s>( _fetch: &mut <Self as WorldQuery>::Fetch<'__w>, _state: &'__s Self::State, _table: &'__w Table, )
SAFETY: we call set_table for each member that implements Fetch
Source§const IS_DENSE: bool
const IS_DENSE: bool
Source§type Fetch<'__w> = RapierContextFetch<'__w, 'a>
type Fetch<'__w> = RapierContextFetch<'__w, 'a>
WorldQuery to compute Self::Item for each entity.Source§type State = RapierContextState<'a>
type State = RapierContextState<'a>
Self::Fetch. This will be cached inside QueryState,
so it is best to move as much data / computation here as possible to reduce the cost of
constructing Self::Fetch.Source§fn shrink_fetch<'__wlong: '__wshort, '__wshort>(
fetch: <RapierContext<'a> as WorldQuery>::Fetch<'__wlong>,
) -> <RapierContext<'a> as WorldQuery>::Fetch<'__wshort>
fn shrink_fetch<'__wlong: '__wshort, '__wshort>( fetch: <RapierContext<'a> as WorldQuery>::Fetch<'__wlong>, ) -> <RapierContext<'a> as WorldQuery>::Fetch<'__wshort>
Source§unsafe fn init_fetch<'__w, '__s>(
_world: UnsafeWorldCell<'__w>,
state: &'__s Self::State,
_last_run: Tick,
_this_run: Tick,
) -> <Self as WorldQuery>::Fetch<'__w>
unsafe fn init_fetch<'__w, '__s>( _world: UnsafeWorldCell<'__w>, state: &'__s Self::State, _last_run: Tick, _this_run: Tick, ) -> <Self as WorldQuery>::Fetch<'__w>
Self::Fetch,
by combining data from the World with the cached Self::State.
Readonly accesses resources registered in WorldQuery::update_component_access. Read moreSource§fn update_component_access(state: &Self::State, _access: &mut FilteredAccess)
fn update_component_access(state: &Self::State, _access: &mut FilteredAccess)
Source§fn init_nested_access(
state: &Self::State,
_system_name: Option<&str>,
_component_access_set: &mut FilteredAccessSet,
_world: UnsafeWorldCell<'_>,
)
fn init_nested_access( state: &Self::State, _system_name: Option<&str>, _component_access_set: &mut FilteredAccessSet, _world: UnsafeWorldCell<'_>, )
WorldQuery. Read moreSource§fn init_state(world: &mut World) -> RapierContextState<'a>
fn init_state(world: &mut World) -> RapierContextState<'a>
State for this WorldQuery type.Source§fn get_state(components: &Components) -> Option<RapierContextState<'a>>
fn get_state(components: &Components) -> Option<RapierContextState<'a>>
Source§fn matches_component_set(
state: &Self::State,
_set_contains_id: &impl Fn(ComponentId) -> bool,
) -> bool
fn matches_component_set( state: &Self::State, _set_contains_id: &impl Fn(ComponentId) -> bool, ) -> bool
Source§fn update_archetypes(_state: &mut Self::State, _world: UnsafeWorldCell<'_>)
fn update_archetypes(_state: &mut Self::State, _world: UnsafeWorldCell<'_>)
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for RapierContext<'a>
impl<'a> !UnwindSafe for RapierContext<'a>
impl<'a> Freeze for RapierContext<'a>
impl<'a> Send for RapierContext<'a>
impl<'a> Sync for RapierContext<'a>
impl<'a> Unpin for RapierContext<'a>
impl<'a> UnsafeUnpin for RapierContext<'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
impl<T> ConditionalSend for Twhere
T: Send,
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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
impl<T> MaybeSync for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Settings for T
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.