pub struct VerletCloth {
pub points: Vec<VerletPoint>,
pub cols: usize,
pub rows: usize,
pub rest_len: f32,
pub stiffness: f32,
pub iterations: usize,
pub gravity: Vec3,
pub damping: f32,
}Expand description
A 2D grid of Verlet points connected by distance constraints.
Suitable for cloth, net, and banner simulations.
Grid is indexed row-major: index = row * cols + col.
Fields§
§points: Vec<VerletPoint>§cols: usize§rows: usize§rest_len: f32§stiffness: f32§iterations: usize§gravity: Vec3§damping: f32Implementations§
Source§impl VerletCloth
impl VerletCloth
Sourcepub fn new(origin: Vec3, cols: usize, rows: usize, spacing: f32) -> Self
pub fn new(origin: Vec3, cols: usize, rows: usize, spacing: f32) -> Self
Create a flat cloth grid starting at origin, spreading along +X, +Y.
Sourcepub fn apply_wind_gust(&mut self, center: Vec3, strength: f32, radius: f32)
pub fn apply_wind_gust(&mut self, center: Vec3, strength: f32, radius: f32)
Apply a spherical wind gust — pushes cloth points near center outward.
Sourcepub fn tear(&mut self, center: Vec3, radius: f32)
pub fn tear(&mut self, center: Vec3, radius: f32)
Tear the cloth at a point — unpin nearby points to simulate a hole.
pub fn point(&self, row: usize, col: usize) -> Vec3
pub fn pin(&mut self, row: usize, col: usize)
pub fn unpin(&mut self, row: usize, col: usize)
Trait Implementations§
Source§impl Clone for VerletCloth
impl Clone for VerletCloth
Source§fn clone(&self) -> VerletCloth
fn clone(&self) -> VerletCloth
Returns a duplicate of the value. Read more
1.0.0 · 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 VerletCloth
impl RefUnwindSafe for VerletCloth
impl Send for VerletCloth
impl Sync for VerletCloth
impl Unpin for VerletCloth
impl UnsafeUnpin for VerletCloth
impl UnwindSafe for VerletCloth
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>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> 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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.