pub struct PrecipitationSystem {Show 14 fields
pub config: PrecipitationConfig,
pub droplets: Vec<Droplet>,
pub rain_bands: Vec<RainBand>,
pub surface: SurfaceAccumulation,
pub puddles: Vec<Puddle>,
pub snowpacks: HashMap<(i32, i32), Snowpack>,
pub ice_sheets: HashMap<(i32, i32), IceSheet>,
pub hailstones: Vec<HailStone>,
pub sleet_particles: Vec<SleetParticle>,
pub thunder_cells: Vec<ThunderCell>,
pub events: Vec<PrecipitationEvent>,
pub dominant_kind: PrecipitationType,
pub global_intensity: f32,
pub total_precip_m: f32,
/* private fields */
}Expand description
The main precipitation simulation state.
Fields§
§config: PrecipitationConfig§droplets: Vec<Droplet>§rain_bands: Vec<RainBand>§surface: SurfaceAccumulation§puddles: Vec<Puddle>§snowpacks: HashMap<(i32, i32), Snowpack>§ice_sheets: HashMap<(i32, i32), IceSheet>§hailstones: Vec<HailStone>§sleet_particles: Vec<SleetParticle>§thunder_cells: Vec<ThunderCell>§events: Vec<PrecipitationEvent>§dominant_kind: PrecipitationType§global_intensity: f32§total_precip_m: f32Total precipitation fallen (m water equivalent).
Implementations§
Source§impl PrecipitationSystem
impl PrecipitationSystem
pub fn new() -> Self
pub fn with_config(config: PrecipitationConfig) -> Self
pub fn tick( &mut self, dt: f32, temp_c: f32, humidity: f32, wind: Vec3, pressure_pa: f32, )
Sourcepub fn intensity_at(&self, x: f32, z: f32) -> f32
pub fn intensity_at(&self, x: f32, z: f32) -> f32
Total precipitation intensity (0–1) at world position.
pub fn dominant_type(&self) -> PrecipitationType
Sourcepub fn nearest_thunder_cell(
&self,
x: f32,
z: f32,
max_dist: f32,
) -> Option<&ThunderCell>
pub fn nearest_thunder_cell( &self, x: f32, z: f32, max_dist: f32, ) -> Option<&ThunderCell>
Return the nearest thunder cell if within range.
Sourcepub fn trigger_event(
&mut self,
kind: PrecipitationType,
intensity: f32,
duration_s: f32,
cx: f32,
cz: f32,
radius: f32,
)
pub fn trigger_event( &mut self, kind: PrecipitationType, intensity: f32, duration_s: f32, cx: f32, cz: f32, radius: f32, )
Manually trigger a precipitation event.
Sourcepub fn snow_depth_at(&self, x: f32, z: f32) -> f32
pub fn snow_depth_at(&self, x: f32, z: f32) -> f32
How much snow (m depth) is at world position.
Sourcepub fn ice_thickness_at(&self, x: f32, z: f32) -> f32
pub fn ice_thickness_at(&self, x: f32, z: f32) -> f32
How much ice (m thickness) is at world position.
Sourcepub fn water_depth_at(&self, x: f32, z: f32) -> f32
pub fn water_depth_at(&self, x: f32, z: f32) -> f32
How much water (m depth) is at world position.
Trait Implementations§
Source§impl Clone for PrecipitationSystem
impl Clone for PrecipitationSystem
Source§fn clone(&self) -> PrecipitationSystem
fn clone(&self) -> PrecipitationSystem
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 moreSource§impl Debug for PrecipitationSystem
impl Debug for PrecipitationSystem
Auto Trait Implementations§
impl Freeze for PrecipitationSystem
impl RefUnwindSafe for PrecipitationSystem
impl Send for PrecipitationSystem
impl Sync for PrecipitationSystem
impl Unpin for PrecipitationSystem
impl UnsafeUnpin for PrecipitationSystem
impl UnwindSafe for PrecipitationSystem
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.