[−][src]Struct broccoli::NotSorted
A version of Tree where the elements are not sorted along each axis, like a KD Tree.
For comparison, a normal kd-tree is provided by NotSorted
. In this tree, the elements are not sorted
along an axis at each level. Construction of NotSorted
is faster than Tree
since it does not have to
sort bots that belong to each node along an axis. But most query algorithms can usually take advantage of this
extra property to be faster.
Implementations
impl<'a, T: Aabb + Send + Sync> NotSorted<'a, DefaultA, T>
[src]
pub fn new_par(bots: &'a mut [T]) -> NotSorted<'a, DefaultA, T>
[src]
impl<'a, T: Aabb> NotSorted<'a, DefaultA, T>
[src]
pub fn new(bots: &'a mut [T]) -> NotSorted<'a, DefaultA, T>
[src]
impl<'a, A: Axis, T: Aabb + Send + Sync> NotSorted<'a, A, T>
[src]
pub fn with_axis_par(axis: A, bots: &'a mut [T]) -> NotSorted<'a, A, T>
[src]
impl<'a, A: Axis, T: Aabb> NotSorted<'a, A, T>
[src]
pub fn with_axis(axis: A, bots: &'a mut [T]) -> NotSorted<'a, A, T>
[src]
impl<'a, A: Axis, T: Aabb> NotSorted<'a, A, T>
[src]
pub fn get_height(&self) -> usize
[src]
Trait Implementations
impl<'a, A: Axis, T: Aabb + HasInner> NotSortedQueries<'a> for NotSorted<'a, A, T>
[src]
type A = A
type T = T
type Num = T::Num
type Inner = T::Inner
pub fn axis(&self) -> Self::A
[src]
pub fn vistr_mut(&mut self) -> VistrMut<'_, NodeMut<'a, T>>
[src]
pub fn vistr(&self) -> Vistr<'_, NodeMut<'a, T>>
[src]
pub fn new_colfind_builder(
&mut self
) -> NotSortedQueryBuilder<'_, Self::A, NodeMut<'a, Self::T>>
[src]
&mut self
) -> NotSortedQueryBuilder<'_, Self::A, NodeMut<'a, Self::T>>
pub fn find_colliding_pairs_pmut(
&mut self,
func: impl FnMut(PMut<'_, Self::T>, PMut<'_, Self::T>)
)
[src]
&mut self,
func: impl FnMut(PMut<'_, Self::T>, PMut<'_, Self::T>)
)
pub fn find_colliding_pairs_pmut_par(
&mut self,
func: impl Fn(PMut<'_, Self::T>, PMut<'_, Self::T>) + Clone + Send + Sync
) where
Self::T: Send + Sync,
[src]
&mut self,
func: impl Fn(PMut<'_, Self::T>, PMut<'_, Self::T>) + Clone + Send + Sync
) where
Self::T: Send + Sync,
pub fn find_colliding_pairs_mut(
&mut self,
func: impl FnMut(&mut Self::Inner, &mut Self::Inner)
)
[src]
&mut self,
func: impl FnMut(&mut Self::Inner, &mut Self::Inner)
)
pub fn find_colliding_pairs_mut_par(
&mut self,
func: impl Fn(&mut Self::Inner, &mut Self::Inner) + Clone + Send + Sync
) where
Self::T: Send + Sync,
[src]
&mut self,
func: impl Fn(&mut Self::Inner, &mut Self::Inner) + Clone + Send + Sync
) where
Self::T: Send + Sync,
Auto Trait Implementations
impl<'a, A, T> RefUnwindSafe for NotSorted<'a, A, T> where
A: RefUnwindSafe,
T: RefUnwindSafe,
<T as Aabb>::Num: RefUnwindSafe,
A: RefUnwindSafe,
T: RefUnwindSafe,
<T as Aabb>::Num: RefUnwindSafe,
impl<'a, A, T> Send for NotSorted<'a, A, T> where
T: Send,
<T as Aabb>::Num: Send,
T: Send,
<T as Aabb>::Num: Send,
impl<'a, A, T> Sync for NotSorted<'a, A, T> where
T: Sync,
<T as Aabb>::Num: Sync,
T: Sync,
<T as Aabb>::Num: Sync,
impl<'a, A, T> Unpin for NotSorted<'a, A, T> where
A: Unpin,
A: Unpin,
impl<'a, A, T> !UnwindSafe for NotSorted<'a, A, T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,