Struct rapier3d::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

The activation status of this rigid-body.

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

The linear damping coefficient of this rigid-body.

Sets the linear damping coefficient of this rigid-body.

The angular damping coefficient of this rigid-body.

Sets the angular damping coefficient of this rigid-body.

The type of this rigid-body.

Sets the type of this rigid-body.

The mass properties of this rigid-body.

The dominance group of this rigid-body.

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

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

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

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

Are the translations of this rigid-body locked?

Returns true for each rotational degrees of freedom locked on this rigid-body.

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

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

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).

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.

The handles of colliders attached to this rigid body.

Is this rigid body dynamic?

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

Is this rigid body kinematic?

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

Is this rigid body static?

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

The mass of this rigid body.

Returns zero if this rigid body has an infinite mass.

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.

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

Sets the gravity scale facter for this rigid-body.

The dominance group of this rigid-body.

The dominance group of this rigid-body.

Adds a collider to this rigid-body.

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.

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.

Is this rigid body sleeping?

Is the velocity of this body not zero?

The linear velocity of this rigid-body.

The angular velocity of this rigid-body.

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.

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.

The world-space position of this rigid-body.

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

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

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

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

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.

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

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

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

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

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.

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.

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.

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.

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.

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.

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

The kinetic energy of this body.

The potential energy of this body in a gravity field.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

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

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

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

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

Performs the conversion.

Performs the conversion.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

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

Should always be Self

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

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

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

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

The resulting type after obtaining ownership.

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

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

recently added

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.