pub struct SoftBodyCluster { /* private fields */ }Expand description
A cluster of a soft body: a set of its particles backed by a proxy rigid body
(crate::dynamics::RigidBodyType::SoftFrame) carrying its frame, gathered velocity and
reduced mass. A rank-deficient one (one particle, or collinear in 3D) has no angular response.
Implementations§
Source§impl SoftBodyCluster
impl SoftBodyCluster
Sourcepub fn new(
particles: Vec<u32>,
proxy: RigidBodyHandle,
shape_matching: bool,
) -> Self
pub fn new( particles: Vec<u32>, proxy: RigidBodyHandle, shape_matching: bool, ) -> Self
A cluster over particles, backed by the proxy rigid body proxy.
Sourcepub fn proxy(&self) -> RigidBodyHandle
pub fn proxy(&self) -> RigidBodyHandle
The cluster’s proxy rigid body.
Sourcepub fn meshes(&self) -> impl Iterator<Item = &SoftCollisionMesh>
pub fn meshes(&self) -> impl Iterator<Item = &SoftCollisionMesh>
The collision meshes this cluster owns (dead slots skipped).
Sourcepub fn mesh(&self, i: u32) -> Option<&SoftCollisionMesh>
pub fn mesh(&self, i: u32) -> Option<&SoftCollisionMesh>
The i-th mesh of this cluster, if it is live.
Sourcepub fn shape_matching_enabled(&self) -> bool
pub fn shape_matching_enabled(&self) -> bool
Whether this cluster’s particles are shape-matched toward its frame.
Sourcepub fn set_shape_matching_target(&mut self, target: Option<Pose>)
pub fn set_shape_matching_target(&mut self, target: Option<Pose>)
Sets the pose the cluster’s particles are shape-matched toward (None: its own frame).
Trait Implementations§
Source§impl Clone for SoftBodyCluster
impl Clone for SoftBodyCluster
Source§fn clone(&self) -> SoftBodyCluster
fn clone(&self) -> SoftBodyCluster
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SoftBodyCluster
impl RefUnwindSafe for SoftBodyCluster
impl Send for SoftBodyCluster
impl Sync for SoftBodyCluster
impl Unpin for SoftBodyCluster
impl UnsafeUnpin for SoftBodyCluster
impl UnwindSafe for SoftBodyCluster
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeSync for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.