Struct vox_geometry_rust::point_parallel_hash_grid_searcher3::PointParallelHashGridSearcher3[][src]

pub struct PointParallelHashGridSearcher3 { /* fields omitted */ }
Expand description

Parallel version of hash grid-based 3-D point searcher.

This class implements parallel version of 3-D point searcher by using hash grid for its internal acceleration data structure. Each point is recorded to its corresponding bucket where the hashing function is 3-D grid mapping.

Implementations

impl PointParallelHashGridSearcher3[src]

pub fn new_default() -> PointParallelHashGridSearcher3[src]

pub fn new_vec(
    resolution: USize3,
    grid_spacing: f64
) -> PointParallelHashGridSearcher3
[src]

Constructs hash grid with given resolution and grid spacing.

This constructor takes hash grid resolution and its grid spacing as its input parameters. The grid spacing must be 3x or greater than search radius.

  • parameter: resolution The resolution.
  • parameter: grid_spacing The grid spacing.

pub fn new(
    resolution_x: usize,
    resolution_y: usize,
    resolution_z: usize,
    grid_spacing: f64
) -> PointParallelHashGridSearcher3
[src]

Constructs hash grid with given resolution and grid spacing.

This constructor takes hash grid resolution and its grid spacing as its input parameters. The grid spacing must be 3x or greater than search radius.

  • parameter: resolution_x The resolution x.
  • parameter: resolution_y The resolution y.
  • parameter: resolution_z The resolution z.
  • parameter: grid_spacing The grid spacing.

pub fn builder() -> Builder[src]

Returns builder fox PointHashGridSearcher3.

pub fn clone(&self) -> PointParallelHashGridSearcher3Ptr[src]

pub fn set(&mut self, other: &PointParallelHashGridSearcher3)[src]

Copy from the other instance.

impl PointParallelHashGridSearcher3[src]

pub fn keys(&self) -> &Vec<usize>[src]

Returns the hash key list.

The hash key list maps sorted point index i to its hash key value. The sorting order is based on the key value itself.

\return The hash key list.

pub fn start_index_table(&self) -> &Vec<usize>[src]

Returns the start index table.

The start index table maps the hash grid bucket index to starting index of the sorted point list. Assume the hash key list looks like:

\code [5|8|8|10|10|10] \endcode

Then start_index_table and end_index_table should be like:

\code […..|0|…|1|..|3|..] […..|1|…|3|..|6|..] ^5 ^8 ^10 \endcode

So that end_index_table(i) - start_index_table(i) is the number points in i-th table bucket.

\return The start index table.

pub fn end_index_table(&self) -> &Vec<usize>[src]

Returns the end index table.

The end index table maps the hash grid bucket index to starting index of the sorted point list. Assume the hash key list looks like:

\code [5|8|8|10|10|10] \endcode

Then start_index_table and end_index_table should be like:

\code […..|0|…|1|..|3|..] […..|1|…|3|..|6|..] ^5 ^8 ^10 \endcode

So that end_index_table(i) - start_index_table(i) is the number points in i-th table bucket.

\return The end index table.

pub fn sorted_indices(&self) -> &Vec<usize>[src]

Returns the sorted indices of the points.

When the hash grid is built, it sorts the points in hash key order. But rather than sorting the original points, this class keeps the shuffled indices of the points. The list this function returns maps sorted index i to original index j.

\return The sorted indices of the points.

pub fn get_hash_key_from_bucket_index(&self, bucket_index: &ISize3) -> usize[src]

Returns the hash value for given 3-D bucket index.

  • parameter: bucket_index The bucket index.

\return The hash key from bucket index.

pub fn get_bucket_index(&self, position: &Vector3D) -> ISize3[src]

Gets the bucket index from a point.

  • parameter: position The position of the point.

  • return The bucket index.

pub fn get_hash_key_from_position(&self, position: &Vector3D) -> usize[src]

pub fn get_nearby_keys(&self, position: &Vector3D, nearby_keys: &mut [usize; 8])[src]

Trait Implementations

impl PointNeighborSearcher3 for PointParallelHashGridSearcher3[src]

fn type_name() -> String[src]

Returns the type name of the derived class.

fn build(&mut self, points: &Vec<Vector3D>)[src]

Builds internal acceleration structure for given points list.

fn for_each_nearby_point<Callback>(
    &self,
    origin: &Vector3D,
    radius: f64,
    callback: &mut Callback
) where
    Callback: ForEachNearbyPointFunc
[src]

Invokes the callback function for each nearby point around the origin within given radius. Read more

fn has_nearby_point(&self, origin: &Vector3D, radius: f64) -> bool[src]

Returns true if there are any nearby points for given origin within radius. Read more

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V