Add DiagonalWalkera and fix 3D KD grid
This commit is contained in:
+12
-1
@@ -1,3 +1,4 @@
|
||||
use anyhow::anyhow;
|
||||
use rand::Rng;
|
||||
use crate::system::{GriddedPosition, Position, Storage};
|
||||
|
||||
@@ -8,7 +9,17 @@ pub trait Sticker<P: Position, S: Storage<P>> {
|
||||
pub struct SimpleSticking;
|
||||
|
||||
pub struct ProbabilisticSticking {
|
||||
pub stick_probability: f32
|
||||
pub(crate) stick_probability: f32
|
||||
}
|
||||
|
||||
impl ProbabilisticSticking {
|
||||
pub fn new(stick_probability: f32) -> anyhow::Result<ProbabilisticSticking> {
|
||||
return if 0f32 < stick_probability && stick_probability <= 1f32 {
|
||||
Ok(ProbabilisticSticking { stick_probability })
|
||||
} else {
|
||||
Err(anyhow!("Sticking probability outside of (0, 1] range."))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<P: GriddedPosition, S: Storage<P>> Sticker<P, S> for SimpleSticking {
|
||||
|
||||
Reference in New Issue
Block a user