[−][src]Struct oxygengine_physics_2d::prelude::Multibody
An articulated body simulated using the reduced-coordinates approach.
Implementations
impl<N> Multibody<N> where
N: RealField,
[src]
N: RealField,
pub fn user_data(&self) -> Option<&(dyn Any + 'static + Sync + Send)>
[src]
Retrieves a reference to the user-defined user-data attached to this object.
pub fn user_data_mut(
&mut self
) -> Option<&mut (dyn Any + 'static + Sync + Send)>
[src]
&mut self
) -> Option<&mut (dyn Any + 'static + Sync + Send)>
Retrieves a mutable reference to the user-defined user-data attached to this object.
pub fn set_user_data(
&mut self,
data: Option<Box<dyn Any + 'static + Sync + Send>>
) -> Option<Box<dyn Any + 'static + Sync + Send>>
[src]
&mut self,
data: Option<Box<dyn Any + 'static + Sync + Send>>
) -> Option<Box<dyn Any + 'static + Sync + Send>>
Sets the user-defined data attached to this object.
pub fn take_user_data(&mut self) -> Option<Box<dyn Any + 'static + Sync + Send>>
[src]
Replace by None
the user-defined data attached to this object and returns the old value.
pub fn root(&self) -> &MultibodyLink<N>
[src]
The first link of this multibody.
pub fn root_mut(&mut self) -> &mut MultibodyLink<N>
[src]
Mutable reference to the first link of this multibody.
pub fn link(&self, id: usize) -> Option<&MultibodyLink<N>>
[src]
Reference i
-th multibody link of this multibody.
Return None
if there is less than i + 1
multibody links.
pub fn link_mut(&mut self, id: usize) -> Option<&mut MultibodyLink<N>>
[src]
Mutable reference to the multibody link with the given id.
Return None
if the given id does not identifies a multibody link part of self
.
pub fn links_with_name(
&'a self,
name: &'a str
) -> impl Iterator<Item = (usize, &'a MultibodyLink<N>)>
[src]
&'a self,
name: &'a str
) -> impl Iterator<Item = (usize, &'a MultibodyLink<N>)>
The links of this multibody with the given name
.
pub fn num_links(&self) -> usize
[src]
The number of links on this multibody.
pub fn links(&self) -> impl Iterator<Item = &MultibodyLink<N>>
[src]
Iterator through all the links of this multibody.
All link are guaranteed to be yielded before its descendant.
pub fn links_mut(&mut self) -> impl Iterator<Item = &mut MultibodyLink<N>>
[src]
Mutable iterator through all the links of this multibody.
All link are guaranteed to be yielded before its descendant.
pub fn damping(&self) -> &Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
[src]
The vector of damping applied to this multibody.
pub fn damping_mut(
&mut self
) -> &mut Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
[src]
&mut self
) -> &mut Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
Mutable vector of damping applied to this multibody.
pub fn set_link_mass(&mut self, link_id: usize, mass: N)
[src]
Set the mass of the specified link.
pub fn set_link_angular_inertia(&mut self, link_id: usize, angular_inertia: N)
[src]
Set the angular inertia of the specified linked, expressed in its local space.
pub fn joint_velocity(
&self,
link: &MultibodyLink<N>
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
[src]
&self,
link: &MultibodyLink<N>
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
The generalized velocity at the joint of the given link.
pub fn link_jacobian_mul_force(
&self,
link: &MultibodyLink<N>,
force: &Force2<N>,
out: &mut [N]
)
[src]
&self,
link: &MultibodyLink<N>,
force: &Force2<N>,
out: &mut [N]
)
Convert a force applied to the center of mass of the link rb_id
into generalized force.
pub fn inv_mass_mul_link_force(
&self,
link: &MultibodyLink<N>,
force: &Force2<N>,
out: &mut [N]
)
[src]
&self,
link: &MultibodyLink<N>,
force: &Force2<N>,
out: &mut [N]
)
Convert a force applied to this multibody's link rb_id
center of mass into generalized accelerations.
pub fn inv_mass_mul_unit_joint_force(
&self,
link: &MultibodyLink<N>,
dof_id: usize,
force: N,
out: &mut [N]
)
[src]
&self,
link: &MultibodyLink<N>,
dof_id: usize,
force: N,
out: &mut [N]
)
Convert a generalized force applied to le link rb_id
's degrees of freedom into generalized accelerations.
The joint attaching this link to its parent is assumed to be a unit joint.
pub fn inv_mass_mul_joint_force(
&self,
link: &MultibodyLink<N>,
force: Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>,
out: &mut [N]
)
[src]
&self,
link: &MultibodyLink<N>,
force: Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>,
out: &mut [N]
)
Convert a generalized force applied to the link rb_id
's degrees of freedom into generalized accelerations.
pub fn augmented_mass(
&self
) -> &Matrix<N, Dynamic, Dynamic, <DefaultAllocator as Allocator<N, Dynamic, Dynamic>>::Buffer>
[src]
&self
) -> &Matrix<N, Dynamic, Dynamic, <DefaultAllocator as Allocator<N, Dynamic, Dynamic>>::Buffer>
The augmented mass (inluding gyroscropic and coriolis terms) in world-space of this multibody.
pub fn joint_velocity_mut(
&mut self,
id: usize
) -> Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
[src]
&mut self,
id: usize
) -> Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
Retrieve the mutable generalized velocities of this link.
pub fn generalized_force(
&self
) -> &Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
[src]
&self
) -> &Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
The generalized forces applied to this multibody at the next timestep.
pub fn generalized_force_mut(
&mut self
) -> &mut Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
[src]
&mut self
) -> &mut Matrix<N, Dynamic, U1, VecStorage<N, Dynamic, U1>>
Mutable reference to the generalized forces applied to this multibody at the next timestep.
Trait Implementations
impl<N> Body<N> for Multibody<N> where
N: RealField,
[src]
N: RealField,
fn num_parts(&self) -> usize
[src]
fn part(&self, id: usize) -> Option<&(dyn BodyPart<N> + 'static)>
[src]
fn deformed_positions(&self) -> Option<(DeformationsType, &[N])>
[src]
fn deformed_positions_mut(&mut self) -> Option<(DeformationsType, &mut [N])>
[src]
fn clear_update_flags(&mut self)
[src]
fn update_status(&self) -> BodyUpdateStatus
[src]
fn integrate(&mut self, parameters: &IntegrationParameters<N>)
[src]
fn apply_displacement(&mut self, disp: &[N])
[src]
fn clear_forces(&mut self)
[src]
fn update_kinematics(&mut self)
[src]
fn update_dynamics(&mut self, dt: N)
[src]
fn update_acceleration(
&mut self,
gravity: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
&IntegrationParameters<N>
)
[src]
&mut self,
gravity: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
&IntegrationParameters<N>
)
fn generalized_acceleration(
&self
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
[src]
&self
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
fn generalized_velocity(
&self
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
[src]
&self
) -> Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>
fn generalized_velocity_mut(
&mut self
) -> Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
[src]
&mut self
) -> Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
fn gravity_enabled(&self) -> bool
[src]
fn enable_gravity(&mut self, enabled: bool)
[src]
fn activation_status(&self) -> &ActivationStatus<N>
[src]
fn activate_with_energy(&mut self, energy: N)
[src]
fn deactivate(&mut self)
[src]
fn set_deactivation_threshold(&mut self, threshold: Option<N>)
[src]
fn set_status(&mut self, status: BodyStatus)
[src]
fn status(&self) -> BodyStatus
[src]
fn companion_id(&self) -> usize
[src]
fn set_companion_id(&mut self, id: usize)
[src]
fn ndofs(&self) -> usize
[src]
fn world_point_at_material_point(
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Point<N, U2>
[src]
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Point<N, U2>
fn position_at_material_point(
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Isometry<N, U2, Unit<Complex<N>>>
[src]
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Isometry<N, U2, Unit<Complex<N>>>
fn material_point_at_world_point(
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Point<N, U2>
[src]
&self,
part: &(dyn BodyPart<N> + 'static),
point: &Point<N, U2>
) -> Point<N, U2>
fn fill_constraint_geometry(
&self,
part: &(dyn BodyPart<N> + 'static),
ndofs: usize,
point: &Point<N, U2>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>>,
out_vel: Option<&mut N>
)
[src]
&self,
part: &(dyn BodyPart<N> + 'static),
ndofs: usize,
point: &Point<N, U2>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>>,
out_vel: Option<&mut N>
)
fn has_active_internal_constraints(&mut self) -> bool
[src]
fn setup_internal_velocity_constraints(
&mut self,
ext_vels: &Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>,
parameters: &IntegrationParameters<N>
)
[src]
&mut self,
ext_vels: &Matrix<N, Dynamic, U1, SliceStorage<N, Dynamic, U1, U1, Dynamic>>,
parameters: &IntegrationParameters<N>
)
fn warmstart_internal_velocity_constraints(
&mut self,
dvels: &mut Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
)
[src]
&mut self,
dvels: &mut Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
)
fn step_solve_internal_velocity_constraints(
&mut self,
dvels: &mut Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
)
[src]
&mut self,
dvels: &mut Matrix<N, Dynamic, U1, SliceStorageMut<N, Dynamic, U1, U1, Dynamic>>
)
fn step_solve_internal_position_constraints(
&mut self,
parameters: &IntegrationParameters<N>
)
[src]
&mut self,
parameters: &IntegrationParameters<N>
)
fn add_local_inertia_and_com(
&mut self,
part_id: usize,
com: Point<N, U2>,
inertia: Inertia2<N>
)
[src]
&mut self,
part_id: usize,
com: Point<N, U2>,
inertia: Inertia2<N>
)
fn velocity_at_point(
&self,
part_id: usize,
point: &Point<N, U2>
) -> Velocity2<N>
[src]
&self,
part_id: usize,
point: &Point<N, U2>
) -> Velocity2<N>
fn apply_force(
&mut self,
part_id: usize,
force: &Force2<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force2<N>,
force_type: ForceType,
auto_wake_up: bool
)
fn apply_local_force(
&mut self,
part_id: usize,
force: &Force2<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force2<N>,
force_type: ForceType,
auto_wake_up: bool
)
fn apply_force_at_point(
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
fn apply_local_force_at_point(
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
fn apply_force_at_local_point(
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
fn apply_local_force_at_local_point(
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Matrix<N, U2, U1, <DefaultAllocator as Allocator<N, U2, U1>>::Buffer>,
point: &Point<N, U2>,
force_type: ForceType,
auto_wake_up: bool
)
fn is_ground(&self) -> bool
[src]
fn update_activation_status(&mut self)
[src]
fn advance(&mut self, _time_ratio: N)
[src]
fn validate_advancement(&mut self)
[src]
fn clamp_advancement(&mut self)
[src]
fn part_motion(
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
[src]
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
fn step_started(&mut self)
[src]
fn status_dependent_ndofs(&self) -> usize
[src]
fn status_dependent_body_part_velocity(
&self,
part: &(dyn BodyPart<N> + 'static)
) -> Velocity2<N>
[src]
&self,
part: &(dyn BodyPart<N> + 'static)
) -> Velocity2<N>
fn is_active(&self) -> bool
[src]
fn is_dynamic(&self) -> bool
[src]
fn is_kinematic(&self) -> bool
[src]
fn is_static(&self) -> bool
[src]
fn activate(&mut self)
[src]
Auto Trait Implementations
impl<N> !RefUnwindSafe for Multibody<N>
impl<N> Send for Multibody<N> where
N: Scalar,
N: Scalar,
impl<N> Sync for Multibody<N> where
N: Scalar,
N: Scalar,
impl<N> Unpin for Multibody<N> where
N: Scalar + Unpin,
N: Scalar + Unpin,
impl<N> !UnwindSafe for Multibody<N>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Any for T where
T: Any,
T: Any,
fn get_type_id(&self) -> TypeId
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
T: Any,
fn into_any(self: Box<T>) -> Box<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn as_any(&self) -> &(dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
impl<T> DowncastSync for T where
T: Send + Sync + Any,
T: Send + Sync + Any,
impl<T> Event for T where
T: Send + Sync + 'static,
T: Send + Sync + 'static,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Resource for T where
T: Any,
T: Any,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn is_in_subset(&self) -> bool
fn to_subset_unchecked(&self) -> SS
fn from_subset(element: &SS) -> SP
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,