Struct rapier3d::dynamics::MassProperties[][src]

pub struct MassProperties {
    pub local_com: Point<f32, U3>,
    pub inv_mass: f32,
    pub inv_principal_inertia_sqrt: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
    pub principal_inertia_local_frame: Unit<Quaternion<f32>>,
}

The local mass properties of a rigid-body.

Fields

local_com: Point<f32, U3>

The center of mass of a rigid-body expressed in its local-space.

inv_mass: f32

The inverse of the mass of a rigid-body.

If this is zero, the rigid-body is assumed to have infinite mass.

inv_principal_inertia_sqrt: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>

The inverse of the principal angular inertia of the rigid-body.

Components set to zero are assumed to be infinite along the corresponding principal axis.

principal_inertia_local_frame: Unit<Quaternion<f32>>

The principal vectors of the local angular inertia tensor of the rigid-body.

Implementations

impl MassProperties[src]

pub fn new(
    local_com: Point<f32, U3>,
    mass: f32,
    principal_inertia: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
) -> MassProperties
[src]

Initializes the mass properties from the given center-of-mass, mass, and principal angular inertia.

The center-of-mass is specified in the local-space of the rigid-body. The principal angular inertia are the angular inertia along the coordinate axes in the local-space of the rigid-body.

pub fn with_principal_inertia_frame(
    local_com: Point<f32, U3>,
    mass: f32,
    principal_inertia: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>,
    principal_inertia_local_frame: Unit<Quaternion<f32>>
) -> MassProperties
[src]

Initializes the mass properties from the given center-of-mass, mass, and principal angular inertia.

The center-of-mass is specified in the local-space of the rigid-body. The principal angular inertia are the angular inertia along the coordinate axes defined by the principal_inertia_local_frame expressed in the local-space of the rigid-body.

pub fn with_inertia_matrix(
    local_com: Point<f32, U3>,
    mass: f32,
    inertia: Matrix<f32, U3, U3, <DefaultAllocator as Allocator<f32, U3, U3>>::Buffer>
) -> MassProperties
[src]

Initialize a new MassProperties from a given center-of-mass, mass, and angular inertia matrix.

The angular inertia matrix will be diagonalized in order to extract the principal inertia values and principal inertia frame.

pub fn world_com(
    &self,
    pos: &Isometry<f32, U3, Unit<Quaternion<f32>>>
) -> Point<f32, U3>
[src]

The world-space center of mass of the rigid-body.

pub fn world_inv_inertia_sqrt(
    &self,
    rot: &Unit<Quaternion<f32>>
) -> SdpMatrix3<f32>
[src]

The world-space inverse angular inertia tensor of the rigid-body.

pub fn reconstruct_inverse_inertia_matrix(
    &self
) -> Matrix<f32, U3, U3, <DefaultAllocator as Allocator<f32, U3, U3>>::Buffer>
[src]

Reconstructs the inverse angular inertia tensor of the rigid body from its principal inertia values and axes.

pub fn reconstruct_inertia_matrix(
    &self
) -> Matrix<f32, U3, U3, <DefaultAllocator as Allocator<f32, U3, U3>>::Buffer>
[src]

Reconstructs the angular inertia tensor of the rigid body from its principal inertia values and axes.

pub fn transform_by(
    &self,
    m: &Isometry<f32, U3, Unit<Quaternion<f32>>>
) -> MassProperties
[src]

Transform each element of the mass properties.

pub fn set_mass(&mut self, new_mass: f32, adjust_angular_inertia: bool)[src]

Changes the mass on these mass-properties.

The adjust_angular_inertia argument should always be true, unless there are some specific reasons not to do so. Setting this to true will automatically adjust the angular inertia of self to account for the mass change (i.e. it will multiply the angular inertia by new_mass / prev_mass). Setting it to false will not change the current angular inertia.

impl MassProperties[src]

pub fn from_ball(density: f32, radius: f32) -> MassProperties[src]

Computes the mass properties of a ball.

impl MassProperties[src]

pub fn from_capsule(
    density: f32,
    a: Point<f32, U3>,
    b: Point<f32, U3>,
    radius: f32
) -> MassProperties
[src]

Computes the mass properties of a capsule.

impl MassProperties[src]

pub fn from_compound(
    density: f32,
    shapes: &[(Isometry<f32, U3, Unit<Quaternion<f32>>>, SharedShape)]
) -> MassProperties
[src]

Computes the mass properties of a compound shape.

impl MassProperties[src]

pub fn from_cone(density: f32, half_height: f32, radius: f32) -> MassProperties[src]

Computes the mass properties of a cone.

impl MassProperties[src]

pub fn from_convex_polyhedron(
    density: f32,
    vertices: &[Point<f32, U3>],
    indices: &[[u32; 3]]
) -> MassProperties
[src]

Computes the mass properties of a convex polyhedron.

impl MassProperties[src]

pub fn from_cuboid(
    density: f32,
    half_extents: Matrix<f32, U3, U1, <DefaultAllocator as Allocator<f32, U3, U1>>::Buffer>
) -> MassProperties
[src]

Computes the mass properties of a cuboid.

impl MassProperties[src]

pub fn from_cylinder(
    density: f32,
    half_height: f32,
    radius: f32
) -> MassProperties
[src]

Computes the mass properties of a cylinder.

Trait Implementations

impl AbsDiffEq<MassProperties> for MassProperties[src]

type Epsilon = f32

Used for specifying relative comparisons.

impl Add<MassProperties> for MassProperties[src]

type Output = MassProperties

The resulting type after applying the + operator.

impl AddAssign<MassProperties> for MassProperties[src]

impl Clone for MassProperties[src]

impl Copy for MassProperties[src]

impl Debug for MassProperties[src]

impl PartialEq<MassProperties> for MassProperties[src]

impl RelativeEq<MassProperties> for MassProperties[src]

impl StructuralPartialEq for MassProperties[src]

impl Sub<MassProperties> for MassProperties[src]

type Output = MassProperties

The resulting type after applying the - operator.

impl SubAssign<MassProperties> for MassProperties[src]

impl Sum<MassProperties> for MassProperties[src]

impl Zero for MassProperties[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

impl<T, Right> ClosedAdd<Right> for T where
    T: Add<Right, Output = T> + AddAssign<Right>, 
[src]

impl<T, Right> ClosedSub<Right> for T where
    T: Sub<Right, Output = T> + SubAssign<Right>, 
[src]

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

impl<T> DowncastSync for T where
    T: Any + Send + Sync
[src]

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

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

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Scalar for T where
    T: Copy + PartialEq<T> + Debug + Any
[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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.

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.