pub struct RigidBody {
    pub user_data: u128,
    /* private fields */
}
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.

Sets the axes along which this rigid-body cannot translate or rotate.

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.

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

Are the translations of this rigid-body locked?

Are the rotations of this rigid-body locked?

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

CCD prevents tunneling, but may still allow limited interpenetration of colliders.

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 additional 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 fixed?

A fixed 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 rotational 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.

Resets to zero all the constant (linear) forces manually applied to this rigid-body.

Resets to zero all the constant torques manually applied to this rigid-body.

Adds to this rigid-body a constant force applied at its center-of-mass.ç

This does nothing on non-dynamic bodies.

Adds to this rigid-body a constant torque at its center-of-mass.

This does nothing on non-dynamic bodies.

Adds to this rigid-body a constant force at the given world-space point of this rigid-body.

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
Returns the “default value” for a type. Read more
Converts this type into the (usually inferred) input type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Return the T [ShaderType] for self. When used in [AsBindGroup] derives, it is safe to assume that all images in self exist. 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

Returns the argument unchanged.

Creates Self using data from the given [World]
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

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
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.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more