Add DiagonalWalkera and fix 3D KD grid
This commit is contained in:
+22
-9
@@ -2,7 +2,6 @@
|
||||
#![feature(generic_const_exprs)]
|
||||
#![feature(let_chains)]
|
||||
|
||||
use std::ops::Deref;
|
||||
use clap::Parser;
|
||||
use rand::prelude::*;
|
||||
use crate::cli::{drive_system};
|
||||
@@ -12,12 +11,12 @@ use crate::surface_probability_measure::{LoggerSticker, ReadOnlyVectorStorage};
|
||||
use crate::system::model::DLASystem;
|
||||
use crate::system::spaces::continuous::{ContinuousSticker, ContinuousStorage, ContinuousWalker};
|
||||
use crate::system::spaces::hexagonal::HexPosition;
|
||||
use crate::system::spaces::kd_grid::{KDGrid, KDGrid2Sticker};
|
||||
use crate::system::spaces::kd_grid::{KDSpace};
|
||||
use crate::system::spaces::square_grid::{Grid2D, Grid3D};
|
||||
use crate::system::spaces::VectorStorage;
|
||||
use crate::system::spawner::UniformSpawner;
|
||||
use crate::system::sticker::{ProbabilisticSticking, SimpleSticking};
|
||||
use crate::system::walker::LocalRandomWalker;
|
||||
use crate::system::walker::{DiagonalRandomWalker, LocalRandomWalker};
|
||||
|
||||
mod system;
|
||||
mod surface_probability_measure;
|
||||
@@ -49,7 +48,7 @@ fn main() {
|
||||
VectorStorage::new(grid_size, 2),
|
||||
LocalRandomWalker,
|
||||
UniformSpawner,
|
||||
ProbabilisticSticking { stick_probability },
|
||||
ProbabilisticSticking::new(stick_probability).unwrap(),
|
||||
cli.max_particles,
|
||||
);
|
||||
|
||||
@@ -58,12 +57,26 @@ fn main() {
|
||||
}
|
||||
|
||||
PCM::Grid3KD(StickProbabilityCli { grid_size, stick_probability }) => {
|
||||
let mut sys = DLASystem::<_, Grid2D, _, _, _, _>::new(
|
||||
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
|
||||
SmallRng::seed_from_u64(cli.seed),
|
||||
KDGrid { inner: kiddo::KdTree::new() },
|
||||
KDSpace::new(),
|
||||
LocalRandomWalker,
|
||||
UniformSpawner,
|
||||
KDGrid2Sticker { stick_probability },
|
||||
ProbabilisticSticking::new(stick_probability).unwrap(),
|
||||
cli.max_particles,
|
||||
);
|
||||
|
||||
drive_system(&mut sys, cli.max_frames, cli.notify_every);
|
||||
write(&sys, cli.format, &cli.output);
|
||||
}
|
||||
|
||||
PCM::Grid3KDTsang(StickProbabilityCli { grid_size, stick_probability }) => {
|
||||
let mut sys = DLASystem::<_, Grid3D, _, _, _, _>::new(
|
||||
SmallRng::seed_from_u64(cli.seed),
|
||||
KDSpace::new(),
|
||||
DiagonalRandomWalker,
|
||||
UniformSpawner,
|
||||
ProbabilisticSticking::new(stick_probability).unwrap(),
|
||||
cli.max_particles,
|
||||
);
|
||||
|
||||
@@ -77,7 +90,7 @@ fn main() {
|
||||
VectorStorage::new(grid_size, 3),
|
||||
LocalRandomWalker,
|
||||
UniformSpawner,
|
||||
ProbabilisticSticking { stick_probability },
|
||||
ProbabilisticSticking::new(stick_probability).unwrap(),
|
||||
cli.max_particles,
|
||||
);
|
||||
|
||||
@@ -91,7 +104,7 @@ fn main() {
|
||||
VectorStorage::new(grid_size, 2),
|
||||
LocalRandomWalker,
|
||||
UniformSpawner,
|
||||
ProbabilisticSticking { stick_probability },
|
||||
ProbabilisticSticking::new(stick_probability).unwrap(),
|
||||
cli.max_particles,
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user