Struct rapier2d::dynamics::RigidBody[][src]

pub struct RigidBody {
    pub user_data: u128,
    // some fields omitted
}
Expand description

A rigid body.

To create a new rigid-body, use the RigidBodyBuilder structure.

Fields

user_data: u128

User-defined data associated to this rigid-body.

Implementations

impl RigidBody[src]

pub fn activation(&self) -> &RigidBodyActivation[src]

The activation status of this rigid-body.

pub fn activation_mut(&mut self) -> &mut RigidBodyActivation[src]

Mutable reference to the activation status of this rigid-body.

pub fn linear_damping(&self) -> Real[src]

The linear damping coefficient of this rigid-body.

pub fn set_linear_damping(&mut self, damping: Real)[src]

Sets the linear damping coefficient of this rigid-body.

pub fn angular_damping(&self) -> Real[src]

The angular damping coefficient of this rigid-body.

pub fn set_angular_damping(&mut self, damping: Real)[src]

Sets the angular damping coefficient of this rigid-body.

pub fn body_type(&self) -> RigidBodyType[src]

The type of this rigid-body.

pub fn set_body_type(&mut self, status: RigidBodyType)[src]

Sets the type of this rigid-body.

pub fn mass_properties(&self) -> &MassProperties[src]

The mass properties of this rigid-body.

pub fn effective_dominance_group(&self) -> i16[src]

The dominance group of this rigid-body.

This method always returns i8::MAX + 1 for non-dynamic rigid-bodies.

pub fn lock_rotations(&mut self, locked: bool, wake_up: bool)[src]

Locks or unlocks all the rotations of this rigid-body.

pub fn restrict_rotations(
    &mut self,
    allow_rotations_x: bool,
    allow_rotations_y: bool,
    allow_rotations_z: bool,
    wake_up: bool
)
[src]

Locks or unlocks rotations of this rigid-body along each cartesian axes.

pub fn lock_translations(&mut self, locked: bool, wake_up: bool)[src]

Locks or unlocks all the rotations of this rigid-body.

pub fn is_translation_locked(&self) -> bool[src]

Are the translations of this rigid-body locked?

pub fn is_rotation_locked(&self) -> bool[src]

Are the rotations of this rigid-body locked?

pub fn enable_ccd(&mut self, enabled: bool)[src]

Enables of disable CCD (continuous collision-detection) for this rigid-body.

pub fn is_ccd_enabled(&self) -> bool[src]

Is CCD (continous collision-detection) enabled for this rigid-body?

pub fn is_ccd_active(&self) -> bool[src]

Is CCD active for this rigid-body?

The CCD is considered active if the rigid-body is moving at a velocity greater than an automatically-computed threshold.

This is not the same as self.is_ccd_enabled which only checks if CCD is allowed to run for this rigid-body or if it is completely disabled (independently from its velocity).

pub fn set_mass_properties(&mut self, props: MassProperties, wake_up: bool)[src]

Sets the rigid-body’s initial 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) -> &[ColliderHandle][src]

The handles of colliders attached to this rigid body.

pub fn is_dynamic(&self) -> bool[src]

Is this rigid body dynamic?

A dynamic body can move freely and is affected by forces.

pub fn is_kinematic(&self) -> bool[src]

Is this rigid body kinematic?

A kinematic body can move freely but is not affected by forces.

pub fn is_static(&self) -> bool[src]

Is this rigid body static?

A static body cannot move and is not affected by forces.

pub fn mass(&self) -> Real[src]

The mass of this rigid body.

Returns zero if this rigid body has an infinite mass.

pub fn next_position(&self) -> &Isometry<Real>[src]

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 gravity_scale(&self) -> Real[src]

The scale factor applied to the gravity affecting this rigid-body.

pub fn set_gravity_scale(&mut self, scale: Real, wake_up: bool)[src]

Sets the gravity scale facter for this rigid-body.

pub fn dominance_group(&self) -> i8[src]

The dominance group of this rigid-body.

pub fn set_dominance_group(&mut self, dominance: i8)[src]

The dominance group of this rigid-body.

pub fn add_collider(
    &mut self,
    co_handle: ColliderHandle,
    co_parent: &ColliderParent,
    co_pos: &mut ColliderPosition,
    co_shape: &ColliderShape,
    co_mprops: &ColliderMassProps
)
[src]

Adds a collider to this rigid-body.

pub fn sleep(&mut self)[src]

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)[src]

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[src]

Is this rigid body sleeping?

pub fn is_moving(&self) -> bool[src]

Is the velocity of this body not zero?

pub fn linvel(&self) -> &Vector<Real>[src]

The linear velocity of this rigid-body.

pub fn angvel(&self) -> Real[src]

The angular velocity of this rigid-body.

pub fn set_linvel(&mut self, linvel: Vector<Real>, wake_up: bool)[src]

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: Real, wake_up: bool)[src]

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<Real>[src]

The world-space position of this rigid-body.

pub fn translation(&self) -> &Vector<Real>[src]

The translational part of this rigid-body’s position.

pub fn set_translation(&mut self, translation: Vector<Real>, wake_up: bool)[src]

Sets the translational part of this rigid-body’s position.

pub fn rotation(&self) -> &Rotation<Real>[src]

The translational part of this rigid-body’s position.

pub fn set_rotation(&mut self, rotation: AngVector<Real>, wake_up: bool)[src]

Sets the rotational part of this rigid-body’s position.

pub fn set_position(&mut self, pos: Isometry<Real>, wake_up: bool)[src]

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_rotation(&mut self, rotation: AngVector<Real>)[src]

If this rigid body is kinematic, sets its future translation after the next timestep integration.

pub fn set_next_kinematic_translation(&mut self, translation: Vector<Real>)[src]

If this rigid body is kinematic, sets its future orientation after the next timestep integration.

pub fn set_next_kinematic_position(&mut self, pos: Isometry<Real>)[src]

If this rigid body is kinematic, sets its future position after the next timestep integration.

pub fn predict_position_using_velocity_and_forces(
    &self,
    dt: Real
) -> Isometry<Real>
[src]

Predicts the next position of this rigid-body, by integrating its velocity and forces by a time of dt.

impl RigidBody[src]

pub fn apply_force(&mut self, force: Vector<Real>, wake_up: bool)[src]

Applies a force at the center-of-mass of this rigid-body. The force will be applied in the next simulation step. This does nothing on non-dynamic bodies.

pub fn apply_torque(&mut self, torque: Real, wake_up: bool)[src]

Applies a torque at the center-of-mass of this rigid-body. The torque will be applied in the next simulation step. This does nothing on non-dynamic bodies.

pub fn apply_force_at_point(
    &mut self,
    force: Vector<Real>,
    point: Point<Real>,
    wake_up: bool
)
[src]

Applies a force at the given world-space point of this rigid-body. The force will be applied in the next simulation step. This does nothing on non-dynamic bodies.

impl RigidBody[src]

pub fn apply_impulse(&mut self, impulse: Vector<Real>, wake_up: bool)[src]

Applies an impulse at the center-of-mass of this rigid-body. The impulse is applied right away, changing the linear velocity. This does nothing on non-dynamic bodies.

pub fn apply_torque_impulse(&mut self, torque_impulse: Real, wake_up: bool)[src]

Applies an angular impulse at the center-of-mass of this rigid-body. The impulse is applied right away, changing the angular velocity. This does nothing on non-dynamic bodies.

pub fn apply_impulse_at_point(
    &mut self,
    impulse: Vector<Real>,
    point: Point<Real>,
    wake_up: bool
)
[src]

Applies an impulse at the given world-space point of this rigid-body. The impulse is applied right away, changing the linear and/or angular velocities. This does nothing on non-dynamic bodies.

impl RigidBody[src]

pub fn velocity_at_point(&self, point: &Point<Real>) -> Vector<Real>[src]

The velocity of the given world-space point on this rigid-body.

pub fn kinetic_energy(&self) -> Real[src]

The kinetic energy of this body.

pub fn gravitational_potential_energy(
    &self,
    dt: Real,
    gravity: Vector<Real>
) -> Real
[src]

The potential energy of this body in a gravity field.

Trait Implementations

impl Clone for RigidBody[src]

fn clone(&self) -> RigidBody[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for RigidBody[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> Downcast for T where
    T: Any
[src]

pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>[src]

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

pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>[src]

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

pub fn as_any(&self) -> &(dyn Any + 'static)[src]

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s. Read more

pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)[src]

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> DowncastSync for T where
    T: Any + Send + Sync
[src]

pub fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + 'static + Sync + Send>[src]

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 
[src]

pub fn to_subset(&self) -> Option<SS>[src]

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

pub fn is_in_subset(&self) -> bool[src]

Checks if self is actually part of its subset T (and can be converted to it).

pub fn to_subset_unchecked(&self) -> SS[src]

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

pub fn from_subset(element: &SS) -> SP[src]

The inclusion map: converts self to the equivalent element of its superset.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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]

Performs the conversion.