pub struct KdTree { /* private fields */ }Expand description
Cache-friendly KD-tree for 3D point clouds.
Implementations§
Source§impl KdTree
impl KdTree
Sourcepub fn from_slices(x: &[f32], y: &[f32], z: &[f32]) -> Self
pub fn from_slices(x: &[f32], y: &[f32], z: &[f32]) -> Self
Builds a KD-tree from coordinate slices.
Sourcepub fn from_point_cloud(cloud: &PointCloud) -> SpatialResult<Self>
pub fn from_point_cloud(cloud: &PointCloud) -> SpatialResult<Self>
Builds a KD-tree from any point cloud with XYZ positions.
Sourcepub fn radius_reaches(
&self,
x: f32,
y: f32,
z: f32,
radius: f32,
target: usize,
) -> bool
pub fn radius_reaches( &self, x: f32, y: f32, z: f32, radius: f32, target: usize, ) -> bool
Returns whether at least target points lie within radius of the
query, stopping as soon as the threshold is reached. Unlike
radius_search this allocates nothing
and early-exits, which is much faster for density tests (outlier removal).
Source§impl KdTree
impl KdTree
Sourcepub fn nearest_k_into(
&self,
x: f32,
y: f32,
z: f32,
k: usize,
out: &mut Vec<Neighbor>,
)
pub fn nearest_k_into( &self, x: f32, y: f32, z: f32, k: usize, out: &mut Vec<Neighbor>, )
Finds up to k nearest neighbors sorted by ascending distance, reusing
the caller-provided output buffer.
Sourcepub fn nearest_k_unsorted_into(
&self,
x: f32,
y: f32,
z: f32,
k: usize,
out: &mut Vec<Neighbor>,
)
pub fn nearest_k_unsorted_into( &self, x: f32, y: f32, z: f32, k: usize, out: &mut Vec<Neighbor>, )
Finds up to k nearest neighbors without sorting the result, reusing the
caller-provided output buffer. This is faster for callers that only need
the neighbor set, such as covariance and mean-distance calculations.
Trait Implementations§
Source§impl NearestNeighborIndex for KdTree
impl NearestNeighborIndex for KdTree
Source§impl RadiusSearchIndex for KdTree
impl RadiusSearchIndex for KdTree
Auto Trait Implementations§
impl Freeze for KdTree
impl RefUnwindSafe for KdTree
impl Send for KdTree
impl Sync for KdTree
impl Unpin for KdTree
impl UnsafeUnpin for KdTree
impl UnwindSafe for KdTree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more