Struct heron::rapier_plugin::rapier2d::prelude::RigidBodyVelocity
pub struct RigidBodyVelocity {
pub linvel: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
pub angvel: f32,
}
Expand description
The velocities of this rigid-body.
Fields
linvel: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
The linear velocity of the rigid-body.
angvel: f32
The angular velocity of the rigid-body.
Implementations
impl RigidBodyVelocity
impl RigidBodyVelocity
pub fn new(
linvel: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
angvel: f32
) -> RigidBodyVelocity
pub fn new(
linvel: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
angvel: f32
) -> RigidBodyVelocity
Create a new rigid-body velocity component.
pub fn from_slice(slice: &[f32]) -> RigidBodyVelocity
pub fn from_slice(slice: &[f32]) -> RigidBodyVelocity
Converts a slice to a rigid-body velocity.
The slice must contain at least 3 elements: the slice[0..2] contains the linear velocity and the
slice[2]` contains the angular velocity.
pub fn zero() -> RigidBodyVelocity
pub fn zero() -> RigidBodyVelocity
Velocities set to zero.
pub fn as_mut_slice(&mut self) -> &mut [f32]
pub fn as_mut_slice(&mut self) -> &mut [f32]
This velocity seen as a mutable slice.
The linear part is stored first.
pub fn as_vector(
&self
) -> &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
pub fn as_vector(
&self
) -> &Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
This velocity seen as a vector.
The linear part is stored first.
pub fn as_vector_mut(
&mut self
) -> &mut Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
pub fn as_vector_mut(
&mut self
) -> &mut Matrix<f32, Const<3>, Const<1>, ArrayStorage<f32, 3, 1>>
This velocity seen as a mutable vector.
The linear part is stored first.
pub fn transformed(self, rotation: &Unit<Complex<f32>>) -> RigidBodyVelocity
pub fn transformed(self, rotation: &Unit<Complex<f32>>) -> RigidBodyVelocity
Return self
rotated by rotation
.
pub fn pseudo_kinetic_energy(&self) -> f32
pub fn pseudo_kinetic_energy(&self) -> f32
The approximate kinetic energy of this rigid-body.
This approximation does not take the rigid-body’s mass and angular inertia into account.
pub fn apply_damping(
&self,
dt: f32,
damping: &RigidBodyDamping
) -> RigidBodyVelocity
pub fn apply_damping(
&self,
dt: f32,
damping: &RigidBodyDamping
) -> RigidBodyVelocity
Returns the update velocities after applying the given damping.
pub fn velocity_at_point(
&self,
point: &OPoint<f32, Const<2>>,
world_com: &OPoint<f32, Const<2>>
) -> Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
pub fn velocity_at_point(
&self,
point: &OPoint<f32, Const<2>>,
world_com: &OPoint<f32, Const<2>>
) -> Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
The velocity of the given world-space point on this rigid-body.
pub fn integrate(
&self,
dt: f32,
init_pos: &Isometry<f32, Unit<Complex<f32>>, 2>,
local_com: &OPoint<f32, Const<2>>
) -> Isometry<f32, Unit<Complex<f32>>, 2>
pub fn integrate(
&self,
dt: f32,
init_pos: &Isometry<f32, Unit<Complex<f32>>, 2>,
local_com: &OPoint<f32, Const<2>>
) -> Isometry<f32, Unit<Complex<f32>>, 2>
Integrate the velocities in self
to compute obtain new positions when moving from the given
inital position init_pos
.
pub fn kinetic_energy(&self, rb_mprops: &RigidBodyMassProps) -> f32
pub fn kinetic_energy(&self, rb_mprops: &RigidBodyMassProps) -> f32
The kinetic energy of this rigid-body.
pub fn apply_impulse(
&mut self,
rb_mprops: &RigidBodyMassProps,
impulse: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
)
pub fn apply_impulse(
&mut self,
rb_mprops: &RigidBodyMassProps,
impulse: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>
)
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,
rb_mprops: &RigidBodyMassProps,
torque_impulse: f32
)
pub fn apply_torque_impulse(
&mut self,
rb_mprops: &RigidBodyMassProps,
torque_impulse: f32
)
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,
rb_mprops: &RigidBodyMassProps,
impulse: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
point: OPoint<f32, Const<2>>
)
pub fn apply_impulse_at_point(
&mut self,
rb_mprops: &RigidBodyMassProps,
impulse: Matrix<f32, Const<2>, Const<1>, ArrayStorage<f32, 2, 1>>,
point: OPoint<f32, Const<2>>
)
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.
Trait Implementations
impl Add<RigidBodyVelocity> for RigidBodyVelocity
impl Add<RigidBodyVelocity> for RigidBodyVelocity
type Output = RigidBodyVelocity
type Output = RigidBodyVelocity
+
operator.fn add(self, rhs: RigidBodyVelocity) -> RigidBodyVelocity
fn add(self, rhs: RigidBodyVelocity) -> RigidBodyVelocity
+
operation. Read moreimpl AddAssign<RigidBodyVelocity> for RigidBodyVelocity
impl AddAssign<RigidBodyVelocity> for RigidBodyVelocity
fn add_assign(&mut self, rhs: RigidBodyVelocity)
fn add_assign(&mut self, rhs: RigidBodyVelocity)
+=
operation. Read moreimpl Clone for RigidBodyVelocity
impl Clone for RigidBodyVelocity
fn clone(&self) -> RigidBodyVelocity
fn clone(&self) -> RigidBodyVelocity
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreimpl Debug for RigidBodyVelocity
impl Debug for RigidBodyVelocity
impl Default for RigidBodyVelocity
impl Default for RigidBodyVelocity
fn default() -> RigidBodyVelocity
fn default() -> RigidBodyVelocity
impl Mul<f32> for RigidBodyVelocity
impl Mul<f32> for RigidBodyVelocity
type Output = RigidBodyVelocity
type Output = RigidBodyVelocity
*
operator.fn mul(self, rhs: f32) -> RigidBodyVelocity
fn mul(self, rhs: f32) -> RigidBodyVelocity
*
operation. Read moreimpl PartialEq<RigidBodyVelocity> for RigidBodyVelocity
impl PartialEq<RigidBodyVelocity> for RigidBodyVelocity
fn eq(&self, other: &RigidBodyVelocity) -> bool
fn eq(&self, other: &RigidBodyVelocity) -> bool
impl Copy for RigidBodyVelocity
impl StructuralPartialEq for RigidBodyVelocity
Auto Trait Implementations
impl RefUnwindSafe for RigidBodyVelocity
impl Send for RigidBodyVelocity
impl Sync for RigidBodyVelocity
impl Unpin for RigidBodyVelocity
impl UnwindSafe for RigidBodyVelocity
Blanket Implementations
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
impl<T, U> AsBindGroupShaderType<U> for Twhere
U: ShaderType,
&'a T: for<'a> Into<U>,
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
fn as_bind_group_shader_type(
&self,
_images: &HashMap<Handle<Image>, <Image as RenderAsset>::PreparedAsset, RandomState, Global>
) -> U
T
[ShaderType
] for self
. When used in [AsBindGroup
]
derives, it is safe to assume that all images in self
exist. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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 morefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read morefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read morefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moreimpl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given [World]sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.