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]
impl PointParallelHashGridSearcher3
[src]pub fn new_default() -> PointParallelHashGridSearcher3
[src]
pub fn new_vec(
resolution: USize3,
grid_spacing: f64
) -> 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]
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 clone(&self) -> PointParallelHashGridSearcher3Ptr
[src]
pub fn clone(&self) -> PointParallelHashGridSearcher3Ptr
[src]Creates a new instance of the object with same properties than original.
- return Copy of this object.
pub fn set(&mut self, other: &PointParallelHashGridSearcher3)
[src]
pub fn set(&mut self, other: &PointParallelHashGridSearcher3)
[src]Copy from the other instance.
impl PointParallelHashGridSearcher3
[src]
impl PointParallelHashGridSearcher3
[src]pub fn keys(&self) -> &Vec<usize>
[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]
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]
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]
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]
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]
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]
impl PointNeighborSearcher3 for PointParallelHashGridSearcher3
[src]fn build(&mut self, points: &Vec<Vector3D>)
[src]
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]
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
Auto Trait Implementations
impl RefUnwindSafe for PointParallelHashGridSearcher3
impl Send for PointParallelHashGridSearcher3
impl Sync for PointParallelHashGridSearcher3
impl Unpin for PointParallelHashGridSearcher3
impl UnwindSafe for PointParallelHashGridSearcher3
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,