[−][src]Struct nphysics2d::object::MassConstraintSystem
A deformable surface using a mass-LengthConstraint model with triangular elements.
Implementations
impl<N: RealField> MassConstraintSystem<N>
[src]
pub fn from_polyline(
polyline: &Polyline<N>,
mass: N,
stiffness: Option<N>
) -> Self
[src]
polyline: &Polyline<N>,
mass: N,
stiffness: Option<N>
) -> Self
Builds a mass-spring system from a polyline.
pub fn user_data(&self) -> Option<&(dyn Any + Send + Sync)>
[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 + Send + Sync)>
[src]
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 + Send + Sync>>
) -> Option<Box<dyn Any + Send + Sync>>
[src]
&mut self,
data: Option<Box<dyn Any + Send + Sync>>
) -> Option<Box<dyn Any + Send + Sync>>
Sets the user-defined data attached to this object.
pub fn take_user_data(&mut self) -> Option<Box<dyn Any + Send + Sync>>
[src]
Replace by None
the user-defined data attached to this object and returns the old value.
pub fn add_constraint(
&mut self,
node1: usize,
node2: usize,
stiffness: Option<N>
)
[src]
&mut self,
node1: usize,
node2: usize,
stiffness: Option<N>
)
Add one constraint to this mass-constraint system.
pub fn generate_neighbor_constraints(&mut self, stiffness: Option<N>)
[src]
Generate additional constraints between nodes that are transitively neighbors.
Given three nodes a, b, c
, if a constraint exists between a
and b
, and between b
and c
,
then a constraint between a
and c
is created if it does not already exists.
pub fn num_nodes(&self) -> usize
[src]
The number of nodes of this mass-constraint system.
pub fn mass(&self) -> N
[src]
The total mass of this body.
pub fn set_warmstart_coefficient(&mut self, coeff: N)
[src]
The coefficient used for warm-starting the resolution of internal constraints of this soft body (default: 0.5).
pub fn warmstart_coefficient(&self) -> N
[src]
The coefficient used for warm-starting the resolution of internal constraints of this soft body (default: 0.5).
pub fn set_node_kinematic(&mut self, i: usize, is_kinematic: bool)
[src]
Restrict the specified node acceleration to always be zero so it can be controlled manually by the user at the velocity level.
pub fn clear_kinematic_nodes(&mut self)
[src]
Mark all nodes as non-kinematic.
pub fn set_plasticity(&mut self, strain_threshold: N, creep: N, max_force: N)
[src]
Sets the plastic properties of this mass-constraint system.
Trait Implementations
impl<N: RealField> Body<N> for MassConstraintSystem<N>
[src]
pub fn gravity_enabled(&self) -> bool
[src]
pub fn enable_gravity(&mut self, enabled: bool)
[src]
pub fn update_kinematics(&mut self)
[src]
pub fn update_dynamics(&mut self, _: N)
[src]
pub fn update_acceleration(
&mut self,
gravity: &Vector<N>,
parameters: &IntegrationParameters<N>
)
[src]
&mut self,
gravity: &Vector<N>,
parameters: &IntegrationParameters<N>
)
pub fn clear_forces(&mut self)
[src]
pub fn apply_displacement(&mut self, disp: &[N])
[src]
pub fn status(&self) -> BodyStatus
[src]
pub fn set_status(&mut self, status: BodyStatus)
[src]
pub fn clear_update_flags(&mut self)
[src]
pub fn update_status(&self) -> BodyUpdateStatus
[src]
pub fn activation_status(&self) -> &ActivationStatus<N>
[src]
pub fn set_deactivation_threshold(&mut self, threshold: Option<N>)
[src]
pub fn ndofs(&self) -> usize
[src]
pub fn generalized_acceleration(&self) -> DVectorSlice<'_, N>
[src]
pub fn generalized_velocity(&self) -> DVectorSlice<'_, N>
[src]
pub fn companion_id(&self) -> usize
[src]
pub fn set_companion_id(&mut self, id: usize)
[src]
pub fn generalized_velocity_mut(&mut self) -> DVectorSliceMut<'_, N>
[src]
pub fn integrate(&mut self, parameters: &IntegrationParameters<N>)
[src]
pub fn activate_with_energy(&mut self, energy: N)
[src]
pub fn deactivate(&mut self)
[src]
pub fn num_parts(&self) -> usize
[src]
pub fn part(&self, id: usize) -> Option<&dyn BodyPart<N>>
[src]
pub fn deformed_positions(&self) -> Option<(DeformationsType, &[N])>
[src]
pub fn deformed_positions_mut(&mut self) -> Option<(DeformationsType, &mut [N])>
[src]
pub fn world_point_at_material_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
pub fn position_at_material_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Isometry<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Isometry<N>
pub fn material_point_at_world_point(
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
[src]
&self,
part: &dyn BodyPart<N>,
point: &Point<N>
) -> Point<N>
pub fn fill_constraint_geometry(
&self,
part: &dyn BodyPart<N>,
_: usize,
center: &Point<N>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&DVectorSlice<'_, N>>,
out_vel: Option<&mut N>
)
[src]
&self,
part: &dyn BodyPart<N>,
_: usize,
center: &Point<N>,
force_dir: &ForceDirection<N>,
j_id: usize,
wj_id: usize,
jacobians: &mut [N],
inv_r: &mut N,
ext_vels: Option<&DVectorSlice<'_, N>>,
out_vel: Option<&mut N>
)
pub fn has_active_internal_constraints(&mut self) -> bool
[src]
pub fn setup_internal_velocity_constraints(
&mut self,
_: &DVectorSlice<'_, N>,
_: &IntegrationParameters<N>
)
[src]
&mut self,
_: &DVectorSlice<'_, N>,
_: &IntegrationParameters<N>
)
pub fn warmstart_internal_velocity_constraints(
&mut self,
dvels: &mut DVectorSliceMut<'_, N>
)
[src]
&mut self,
dvels: &mut DVectorSliceMut<'_, N>
)
pub fn step_solve_internal_velocity_constraints(
&mut self,
dvels: &mut DVectorSliceMut<'_, N>
)
[src]
&mut self,
dvels: &mut DVectorSliceMut<'_, N>
)
pub fn step_solve_internal_position_constraints(
&mut self,
parameters: &IntegrationParameters<N>
)
[src]
&mut self,
parameters: &IntegrationParameters<N>
)
pub fn velocity_at_point(&self, part_id: usize, point: &Point<N>) -> Velocity<N>
[src]
pub fn apply_force_at_local_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_force(
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force(
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Force<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_force_at_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force_at_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn apply_local_force_at_local_point(
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
[src]
&mut self,
part_id: usize,
force: &Vector<N>,
point: &Point<N>,
force_type: ForceType,
auto_wake_up: bool
)
pub fn is_ground(&self) -> bool
[src]
pub fn update_activation_status(&mut self)
[src]
pub fn advance(&mut self, _time_ratio: N)
[src]
pub fn validate_advancement(&mut self)
[src]
pub fn clamp_advancement(&mut self)
[src]
pub fn part_motion(
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
[src]
&self,
_part_id: usize,
_time_origin: N
) -> Option<BodyPartMotion<N>>
pub fn step_started(&mut self)
[src]
pub fn add_local_inertia_and_com(
&mut self,
_part_index: usize,
_com: Point<N>,
_inertia: Inertia<N>
)
[src]
&mut self,
_part_index: usize,
_com: Point<N>,
_inertia: Inertia<N>
)
pub fn status_dependent_ndofs(&self) -> usize
[src]
pub fn status_dependent_body_part_velocity(
&self,
part: &dyn BodyPart<N>
) -> Velocity<N>
[src]
&self,
part: &dyn BodyPart<N>
) -> Velocity<N>
pub fn is_active(&self) -> bool
[src]
pub fn is_dynamic(&self) -> bool
[src]
pub fn is_kinematic(&self) -> bool
[src]
pub fn is_static(&self) -> bool
[src]
pub fn activate(&mut self)
[src]
Auto Trait Implementations
impl<N> !RefUnwindSafe for MassConstraintSystem<N>
[src]
impl<N> Send for MassConstraintSystem<N> where
N: Scalar,
[src]
N: Scalar,
impl<N> Sync for MassConstraintSystem<N> where
N: Scalar,
[src]
N: Scalar,
impl<N> Unpin for MassConstraintSystem<N> where
N: Scalar + Unpin,
[src]
N: Scalar + Unpin,
impl<N> !UnwindSafe for MassConstraintSystem<N>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
pub fn as_any(&self) -> &(dyn Any + 'static)
[src]
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
[src]
pub fn is_in_subset(&self) -> bool
[src]
pub fn to_subset_unchecked(&self) -> SS
[src]
pub fn from_subset(element: &SS) -> SP
[src]
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.
pub 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.
pub 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>,