conspire/geometry/grid/defeature/
mod.rs1use std::num::NonZeroU32;
2#[cfg(test)]
3mod test;
4
5use crate::geometry::{
6 grid::{Pixels, Voxels},
7 ntree::{Octree, Quadtree},
8};
9use std::hash::Hash;
10
11impl<V: Copy + Eq + Hash> Pixels<V> {
12 pub fn defeature(self, minimum: usize) -> Result<Self, &'static str> {
13 let mut quadtree = Quadtree::<u16, NonZeroU32, V>::try_from(self)?;
14 quadtree.defeature(minimum);
15 Ok(Self::from(&quadtree))
16 }
17}
18
19impl<V: Copy + Eq + Hash> Voxels<V> {
20 pub fn defeature(self, minimum: usize) -> Result<Self, &'static str> {
21 let mut octree = Octree::<u16, NonZeroU32, V>::try_from(self)?;
22 octree.defeature(minimum);
23 Ok(Self::from(&octree))
24 }
25}