pub struct ModifiedSdf { /* private fields */ }Expand description
SDF wrapper that applies a chain of physics modifiers.
Implements SdfField, so it can be used anywhere an SDF is expected.
Implementations§
Source§impl ModifiedSdf
impl ModifiedSdf
Sourcepub fn new(original: Box<dyn SdfField>) -> Self
pub fn new(original: Box<dyn SdfField>) -> Self
Create a new modified SDF wrapping the original field
Sourcepub fn with_modifier(self, modifier: Box<dyn PhysicsModifier>) -> Self
pub fn with_modifier(self, modifier: Box<dyn PhysicsModifier>) -> Self
Add a modifier to the chain
Sourcepub fn add_modifier(&mut self, modifier: Box<dyn PhysicsModifier>)
pub fn add_modifier(&mut self, modifier: Box<dyn PhysicsModifier>)
Add a modifier (mutable)
Sourcepub fn clear_modifiers(&mut self)
pub fn clear_modifiers(&mut self)
Remove all modifiers
Sourcepub fn modifier_count(&self) -> usize
pub fn modifier_count(&self) -> usize
Number of active modifiers
Sourcepub fn modifier_mut(&mut self, index: usize) -> Option<&mut dyn PhysicsModifier>
pub fn modifier_mut(&mut self, index: usize) -> Option<&mut dyn PhysicsModifier>
Get mutable access to a modifier by index
Trait Implementations§
Source§impl SdfField for ModifiedSdf
impl SdfField for ModifiedSdf
Source§fn distance(&self, x: f32, y: f32, z: f32) -> f32
fn distance(&self, x: f32, y: f32, z: f32) -> f32
Returns the signed distance from point to the nearest surface. Read more
Source§fn normal(&self, x: f32, y: f32, z: f32) -> (f32, f32, f32)
fn normal(&self, x: f32, y: f32, z: f32) -> (f32, f32, f32)
Returns the surface normal (normalized gradient) at the given point. Read more
Source§fn distance_and_normal(&self, x: f32, y: f32, z: f32) -> (f32, (f32, f32, f32))
fn distance_and_normal(&self, x: f32, y: f32, z: f32) -> (f32, (f32, f32, f32))
Combined distance + normal query (default: two separate calls). Read more
Source§fn generation(&self) -> u64
fn generation(&self) -> u64
A number that changes whenever the field changes shape (default:
0,
a field that never changes). Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ModifiedSdf
impl !UnwindSafe for ModifiedSdf
impl Freeze for ModifiedSdf
impl Send for ModifiedSdf
impl Sync for ModifiedSdf
impl Unpin for ModifiedSdf
impl UnsafeUnpin for ModifiedSdf
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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SdfQuery for T
impl<T> SdfQuery for T
Source§fn query_distance(&self, x: f32, y: f32, z: f32) -> f32
fn query_distance(&self, x: f32, y: f32, z: f32) -> f32
Signed distance from the point to the nearest surface (positive
outside), as
SdfField::distance.Source§fn query_normal(&self, x: f32, y: f32, z: f32) -> (f32, f32, f32)
fn query_normal(&self, x: f32, y: f32, z: f32) -> (f32, f32, f32)
Outward surface normal at the point, as
SdfField::normal.