pub enum RigidBodyType {
Dynamic = 0,
Fixed = 1,
KinematicPositionBased = 2,
KinematicVelocityBased = 3,
}Expand description
The type of a rigid body, determining how it responds to forces and movement.
Variants§
Dynamic = 0
Fully simulated - responds to forces, gravity, and collisions.
Use for: Falling objects, projectiles, physics-based characters, anything that should behave realistically under physics simulation.
Fixed = 1
Never moves - has infinite mass and is unaffected by anything.
Use for: Static level geometry, walls, floors, terrain, buildings.
KinematicPositionBased = 2
Controlled by setting next position - pushes but isn’t pushed.
You control this by setting where it should be next frame. Rapier computes the velocity needed to get there. The body can push dynamic bodies but nothing can push it back (one-way interaction).
Use for: Animated platforms, objects controlled by external animation systems.
KinematicVelocityBased = 3
Controlled by setting velocity - pushes but isn’t pushed.
You control this by setting its velocity directly. It moves predictably regardless of what it hits. Can push dynamic bodies but nothing can push it back (one-way interaction).
Use for: Moving platforms, elevators, doors, player-controlled characters (when you want direct control rather than physics-based movement).
Implementations§
Source§impl RigidBodyType
impl RigidBodyType
Sourcepub fn is_dynamic(self) -> bool
pub fn is_dynamic(self) -> bool
Is this rigid-body dynamic (i.e. can move and be affected by forces)?
Sourcepub fn is_kinematic(self) -> bool
pub fn is_kinematic(self) -> bool
Is this rigid-body kinematic (i.e. can move but is unaffected by forces)?
Sourcepub fn is_dynamic_or_kinematic(self) -> bool
pub fn is_dynamic_or_kinematic(self) -> bool
Is this rigid-body a dynamic rigid-body or a kinematic rigid-body?
This method is mostly convenient internally where kinematic and dynamic rigid-body are subject to the same behavior.
Trait Implementations§
Source§impl Clone for RigidBodyType
impl Clone for RigidBodyType
Source§fn clone(&self) -> RigidBodyType
fn clone(&self) -> RigidBodyType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RigidBodyType
impl Debug for RigidBodyType
Source§impl PartialEq for RigidBodyType
impl PartialEq for RigidBodyType
impl Copy for RigidBodyType
impl Eq for RigidBodyType
impl StructuralPartialEq for RigidBodyType
Auto Trait Implementations§
impl Freeze for RigidBodyType
impl RefUnwindSafe for RigidBodyType
impl Send for RigidBodyType
impl Sync for RigidBodyType
impl Unpin for RigidBodyType
impl UnwindSafe for RigidBodyType
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
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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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<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.