mod _grid;
use ndarray::Array2;
pub use _grid::{Boundary, DEFAULT_CHUNK_SIZE, DEFAULT_HULL_RATIO, Grid, GridOptions};
use crate::common::arrays::ArrayLike;
use crate::common::exceptions::Result;
pub struct CreatePointGridOptions<'a> {
pub x: Option<&'a dyn ArrayLike>,
pub y: Option<&'a dyn ArrayLike>,
pub resolution: f64,
pub boundary: Option<Boundary>,
pub chunk_size: i64,
pub hull_ratio: f64,
}
impl CreatePointGridOptions<'_> {
pub fn new(resolution: f64) -> Self {
CreatePointGridOptions {
x: None,
y: None,
resolution,
boundary: None,
chunk_size: DEFAULT_CHUNK_SIZE,
hull_ratio: DEFAULT_HULL_RATIO,
}
}
}
pub fn create_point_grid(options: CreatePointGridOptions<'_>) -> Result<Array2<f64>> {
let mut grid = Grid::new(GridOptions {
boundary: options.boundary,
resolution: options.resolution,
chunk_size: options.chunk_size,
hull_ratio: options.hull_ratio,
..GridOptions::default()
})?;
grid.generate(options.x, options.y)
}