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.
pub fn add_collider(
&mut self,
co_handle: ColliderHandle,
co_parent: &ColliderParent,
co_pos: &mut ColliderPosition,
co_shape: &ColliderShape,
co_mprops: &ColliderMassProps
)
[src]
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.
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?
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 translational part of this rigid-body’s position.
Sets 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 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.
The velocity of the given world-space point on this rigid-body.
The kinetic energy of this body.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for RigidBody
impl UnwindSafe for RigidBody
Blanket Implementations
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
type Output = T
type Output = T
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.