pub struct SpatialIndex { /* private fields */ }Expand description
Spatial index wrapping an octree for pre-filtering graph traversal candidates.
Build once from the node array, reuse across multiple algorithm calls. Provides O(log n) spatial queries instead of O(n) brute-force containment checks.
Implementations§
Source§impl SpatialIndex
impl SpatialIndex
Sourcepub fn from_nodes(nodes: &[GraphNode4D]) -> Self
pub fn from_nodes(nodes: &[GraphNode4D]) -> Self
Build a spatial index from a slice of graph nodes.
Sourcepub fn prefilter(&self, region: &SpatialRegion) -> HashSet<u64>
pub fn prefilter(&self, region: &SpatialRegion) -> HashSet<u64>
Pre-filter node IDs matching the spatial region using the octree.
Returns a HashSet of node IDs that fall within the region.
Use this to populate TraversalContext4D::spatial_candidates.
Trait Implementations§
Source§impl Clone for SpatialIndex
impl Clone for SpatialIndex
Source§fn clone(&self) -> SpatialIndex
fn clone(&self) -> SpatialIndex
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SpatialIndex
impl RefUnwindSafe for SpatialIndex
impl Send for SpatialIndex
impl Sync for SpatialIndex
impl Unpin for SpatialIndex
impl UnsafeUnpin for SpatialIndex
impl UnwindSafe for SpatialIndex
Blanket Implementations§
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more