use crate::DType;
use numr::error::Result;
use numr::runtime::Runtime;
use numr::tensor::Tensor;
use super::delaunay::Delaunay;
#[derive(Debug, Clone)]
pub struct Voronoi<R: Runtime<DType = DType>> {
pub points: Tensor<R>,
pub vertices: Tensor<R>,
pub ridge_vertices: Tensor<R>,
pub ridge_points: Tensor<R>,
pub regions_indices: Tensor<R>,
pub regions_indptr: Tensor<R>,
pub point_region: Tensor<R>,
}
pub trait VoronoiAlgorithms<R: Runtime<DType = DType>> {
fn voronoi(&self, points: &Tensor<R>) -> Result<Voronoi<R>>;
fn voronoi_from_delaunay(&self, tri: &Delaunay<R>) -> Result<Voronoi<R>>;
fn voronoi_find_region(&self, vor: &Voronoi<R>, query: &Tensor<R>) -> Result<Tensor<R>>;
}
#[cfg(test)]
mod tests {
}