Struct heron::rapier_plugin::rapier::dynamics::RigidBody [−]
A rigid body.
To create a new rigid-body, use the RigidBodyBuilder
structure.
Fields
world_com: Point<f32, U3>
The world-space center of mass of the rigid-body.
world_inv_inertia_sqrt: SdpMatrix3<f32>
The square-root of the inverse angular inertia tensor of the rigid-body.
linear_damping: f32
Damping factor for gradually slowing down the translational motion of the rigid-body.
angular_damping: f32
Damping factor for gradually slowing down the angular motion of the rigid-body.
activation: ActivationStatus
Whether or not this rigid-body is sleeping.
body_status: BodyStatus
The status of the body, governing how it is affected by external forces.
user_data: u128
User-defined data associated to this rigid-body.
Implementations
impl RigidBody
pub fn mass_properties(&self) -> &MassProperties
The mass properties of this rigid-body.
pub fn set_mass_properties(&mut self, props: MassProperties, wake_up: bool)
Sets the rigid-body's mass properties.
If wake_up
is true
then the rigid-body will be woken up if it was
put to sleep because it did not move for a while.
pub fn colliders(&self) -> &[Index]ⓘ
The handles of colliders attached to this rigid body.
pub fn is_dynamic(&self) -> bool
Is this rigid body dynamic?
A dynamic body can move freely and is affected by forces.
pub fn is_kinematic(&self) -> bool
Is this rigid body kinematic?
A kinematic body can move freely but is not affected by forces.
pub fn is_static(&self) -> bool
Is this rigid body static?
A static body cannot move and is not affected by forces.
pub fn mass(&self) -> f32
The mass of this rigid body.
Returns zero if this rigid body has an infinite mass.
pub fn predicted_position(&self) -> &Isometry<f32, U3, Unit<Quaternion<f32>>>
The predicted position of this rigid-body.
If this rigid-body is kinematic this value is set by the set_next_kinematic_position
method and is used for estimating the kinematic body velocity at the next timestep.
For non-kinematic bodies, this value is currently unspecified.
pub fn sleep(&mut self)
Put this rigid body to sleep.
A sleeping body no longer moves and is no longer simulated by the physics engine unless
it is waken up. It can be woken manually with self.wake_up
or automatically due to
external forces like contacts.
pub fn wake_up(&mut self, strong: bool)
Wakes up this rigid body if it is sleeping.
If strong
is true
then it is assured that the rigid-body will
remain awake during multiple subsequent timesteps.
pub fn is_sleeping(&self) -> bool
Is this rigid body sleeping?
pub fn is_moving(&self) -> bool
Is the velocity of this body not zero?
pub fn linvel(
&self
) -> &Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
&self
) -> &Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
The linear velocity of this rigid-body.
pub fn angvel(
&self
) -> &Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
&self
) -> &Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
The angular velocity of this rigid-body.
pub fn set_linvel(
&mut self,
linvel: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
linvel: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
The linear velocity of this rigid-body.
If wake_up
is true
then the rigid-body will be woken up if it was
put to sleep because it did not move for a while.
pub fn set_angvel(
&mut self,
angvel: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
angvel: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
The angular velocity of this rigid-body.
If wake_up
is true
then the rigid-body will be woken up if it was
put to sleep because it did not move for a while.
pub fn position(&self) -> &Isometry<f32, U3, Unit<Quaternion<f32>>>
The world-space position of this rigid-body.
pub fn set_position(
&mut self,
pos: Isometry<f32, U3, Unit<Quaternion<f32>>>,
wake_up: bool
)
&mut self,
pos: Isometry<f32, U3, Unit<Quaternion<f32>>>,
wake_up: bool
)
Sets the position and next_kinematic_position
of this rigid body.
This will teleport the rigid-body to the specified position/orientation, completely ignoring any physics rule. If this body is kinematic, this will also set the next kinematic position to the same value, effectively resetting to zero the next interpolated velocity of the kinematic body.
If wake_up
is true
then the rigid-body will be woken up if it was
put to sleep because it did not move for a while.
pub fn set_next_kinematic_position(
&mut self,
pos: Isometry<f32, U3, Unit<Quaternion<f32>>>
)
&mut self,
pos: Isometry<f32, U3, Unit<Quaternion<f32>>>
)
If this rigid body is kinematic, sets its future position after the next timestep integration.
pub fn apply_force(
&mut self,
force: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
force: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
Applies a force at the center-of-mass of this rigid-body.
pub fn apply_impulse(
&mut self,
impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
Applies an impulse at the center-of-mass of this rigid-body.
pub fn apply_torque(
&mut self,
torque: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
torque: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
Applies a torque at the center-of-mass of this rigid-body.
pub fn apply_torque_impulse(
&mut self,
torque_impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
&mut self,
torque_impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
wake_up: bool
)
Applies an impulsive torque at the center-of-mass of this rigid-body.
pub fn apply_force_at_point(
&mut self,
force: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
point: Point<f32, U3>,
wake_up: bool
)
&mut self,
force: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
point: Point<f32, U3>,
wake_up: bool
)
Applies a force at the given world-space point of this rigid-body.
pub fn apply_impulse_at_point(
&mut self,
impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
point: Point<f32, U3>,
wake_up: bool
)
&mut self,
impulse: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
point: Point<f32, U3>,
wake_up: bool
)
Applies an impulse at the given world-space point of this rigid-body.
pub fn velocity_at_point(
&self,
point: &Point<f32, U3>
) -> Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
&self,
point: &Point<f32, U3>
) -> Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
The velocity of the given world-space point on this rigid-body.
Trait Implementations
impl Clone for RigidBody
pub fn clone(&self) -> RigidBody
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for RigidBody
Auto Trait Implementations
impl RefUnwindSafe for RigidBody
[src]
impl Send for RigidBody
[src]
impl Sync for RigidBody
[src]
impl Unpin for RigidBody
[src]
impl UnwindSafe for RigidBody
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> CloneAny for T where
T: Clone + Any,
T: Clone + Any,
impl<T> Component for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Downcast for T where
T: Any,
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn as_any(&self) -> &(dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Resource for T where
T: 'static + Send + Sync,
T: 'static + Send + Sync,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn is_in_subset(&self) -> bool
pub fn to_subset_unchecked(&self) -> SS
pub fn from_subset(element: &SS) -> SP
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> TypeData for T where
T: 'static + Send + Sync + Clone,
T: 'static + Send + Sync + Clone,
pub fn clone_type_data(&self) -> Box<dyn TypeData + 'static, Global>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,