pub struct HumidityMap {
pub width: usize,
pub depth: usize,
pub data: Vec<f32>,
}Expand description
A 2-D humidity map over the simulation grid.
Fields§
§width: usize§depth: usize§data: Vec<f32>Relative humidity [0.0, 1.0] stored row-major (z * width + x).
Implementations§
Source§impl HumidityMap
impl HumidityMap
pub fn new(width: usize, depth: usize, base: f32) -> Self
Sourcepub fn sample(&self, gx: f32, gz: f32) -> f32
pub fn sample(&self, gx: f32, gz: f32) -> f32
Sample humidity at continuous grid coords using bilinear interpolation.
Sourcepub fn advect(&mut self, dx: f32, dz: f32)
pub fn advect(&mut self, dx: f32, dz: f32)
Advect humidity by a uniform wind (dx, dz) in grid cells/step.
Sourcepub fn evaporate(&mut self, rate: f32)
pub fn evaporate(&mut self, rate: f32)
Evaporation — increase humidity by rate everywhere (capped at 1.0).
Sourcepub fn precipitate(&mut self, sat: f32, coeff: f32)
pub fn precipitate(&mut self, sat: f32, coeff: f32)
Precipitation sink — decrease humidity proportional to excess above sat.
Trait Implementations§
Source§impl Clone for HumidityMap
impl Clone for HumidityMap
Source§fn clone(&self) -> HumidityMap
fn clone(&self) -> HumidityMap
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 HumidityMap
impl RefUnwindSafe for HumidityMap
impl Send for HumidityMap
impl Sync for HumidityMap
impl Unpin for HumidityMap
impl UnsafeUnpin for HumidityMap
impl UnwindSafe for HumidityMap
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.