VTK-m
2.3
|
A locator that bins points in a sparsely stored grid. More...
#include <PointLocatorSparseGrid.h>
Public Types | |
using | RangeType = vtkm::Vec< vtkm::Range, 3 > |
Public Member Functions | |
void | SetRange (const RangeType &range) |
Specify the bounds of the space to search for points. More... | |
const RangeType & | GetRange () const |
Specify the bounds of the space to search for points. More... | |
void | SetComputeRangeFromCoordinates () |
void | SetNumberOfBins (const vtkm::Id3 &bins) |
Specify the number of bins used in the sparse grid to be searched. More... | |
const vtkm::Id3 & | GetNumberOfBins () const |
Specify the number of bins used in the sparse grid to be searched. More... | |
vtkm::exec::PointLocatorSparseGrid | PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
![]() | |
virtual | ~PointLocatorBase ()=default |
vtkm::cont::CoordinateSystem | GetCoordinates () const |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const vtkm::cont::CoordinateSystem &coords) |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const vtkm::cont::UnknownArrayHandle &coords) |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | Update () const |
Private Member Functions | |
bool | IsRangeInvalid () const |
void | Build () override |
Private Attributes | |
RangeType | Range = { { 0.0, -1.0 } } |
vtkm::Id3 | Dims = { 32 } |
vtkm::cont::ArrayHandle< vtkm::Id > | PointIds |
vtkm::cont::ArrayHandle< vtkm::Id > | CellLower |
vtkm::cont::ArrayHandle< vtkm::Id > | CellUpper |
Additional Inherited Members | |
![]() | |
void | SetModified () |
bool | GetModified () const |
A locator that bins points in a sparsely stored grid.
PointLocatorSparseGrid
creates a very dense logical grid over the region containing the points of the provided data set. Although this logical grid has uniform structure, it is stored sparsely. So, it is expected that most of the bins in the structure will be empty but not explicitly stored. This makes PointLocatorSparseGrid
a good representation for unstructured or irregular collections of points.
The algorithm used in PointLocatorSparseGrid
is described in the following publication:
Abhishek Yenpure, Hank Childs, and Kenneth Moreland. "Efficient Point Merging Using Data Parallel Techniques." In Eurographics Symposium on Parallel Graphics and Visualization (EGPGV), June 2019. DOI 10.2312/pgv.20191112.
|
overrideprivatevirtual |
Implements vtkm::cont::PointLocatorBase.
|
inline |
Specify the number of bins used in the sparse grid to be searched.
Larger dimensions result in smaller bins, which in turn means fewer points are in each bin. This means comparing against fewer points. This is good when searching for coincident points. However, when searching for nearest points a distance away, larger dimensions require searching for more bins.
The default number of bins is 32x32x32.
|
inline |
Specify the bounds of the space to search for points.
If the spatial range is not set, it will be automatically defined to be the space containing the points.
|
inlineprivate |
vtkm::exec::PointLocatorSparseGrid vtkm::cont::PointLocatorSparseGrid::PrepareForExecution | ( | vtkm::cont::DeviceAdapterId | device, |
vtkm::cont::Token & | token | ||
) | const |
|
inline |
|
inline |
Specify the number of bins used in the sparse grid to be searched.
Larger dimensions result in smaller bins, which in turn means fewer points are in each bin. This means comparing against fewer points. This is good when searching for coincident points. However, when searching for nearest points a distance away, larger dimensions require searching for more bins.
The default number of bins is 32x32x32.
|
inline |
Specify the bounds of the space to search for points.
If the spatial range is not set, it will be automatically defined to be the space containing the points.
|
private |
|
private |
|
private |
|
private |
|
private |