VTK-m  2.2
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
vtkm::cont::PointLocatorSparseGrid Class Reference

A locator that bins points in a sparsely stored grid. More...

#include <PointLocatorSparseGrid.h>

Inheritance diagram for vtkm::cont::PointLocatorSparseGrid:
vtkm::cont::PointLocatorBase vtkm::cont::ExecutionObjectBase

Public Types

using RangeType = vtkm::Vec< vtkm::Range, 3 >
 

Public Member Functions

void SetRange (const RangeType &range)
 
const RangeTypeGetRange () const
 
void SetComputeRangeFromCoordinates ()
 
void SetNumberOfBins (const vtkm::Id3 &bins)
 
const vtkm::Id3GetNumberOfBins () const
 
vtkm::exec::PointLocatorSparseGrid PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const
 
- Public Member Functions inherited from vtkm::cont::PointLocatorBase
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::IdPointIds
 
vtkm::cont::ArrayHandle< vtkm::IdCellLower
 
vtkm::cont::ArrayHandle< vtkm::IdCellUpper
 

Additional Inherited Members

- Protected Member Functions inherited from vtkm::cont::PointLocatorBase
void SetModified ()
 
bool GetModified () const
 

Detailed Description

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.

Member Typedef Documentation

◆ RangeType

Member Function Documentation

◆ Build()

void vtkm::cont::PointLocatorSparseGrid::Build ( )
overrideprivatevirtual

◆ GetNumberOfBins()

const vtkm::Id3& vtkm::cont::PointLocatorSparseGrid::GetNumberOfBins ( ) const
inline

◆ GetRange()

const RangeType& vtkm::cont::PointLocatorSparseGrid::GetRange ( ) const
inline

◆ IsRangeInvalid()

bool vtkm::cont::PointLocatorSparseGrid::IsRangeInvalid ( ) const
inlineprivate

◆ PrepareForExecution()

vtkm::exec::PointLocatorSparseGrid vtkm::cont::PointLocatorSparseGrid::PrepareForExecution ( vtkm::cont::DeviceAdapterId  device,
vtkm::cont::Token token 
) const

◆ SetComputeRangeFromCoordinates()

void vtkm::cont::PointLocatorSparseGrid::SetComputeRangeFromCoordinates ( )
inline

◆ SetNumberOfBins()

void vtkm::cont::PointLocatorSparseGrid::SetNumberOfBins ( const vtkm::Id3 bins)
inline

◆ SetRange()

void vtkm::cont::PointLocatorSparseGrid::SetRange ( const RangeType range)
inline

Member Data Documentation

◆ CellLower

vtkm::cont::ArrayHandle<vtkm::Id> vtkm::cont::PointLocatorSparseGrid::CellLower
private

◆ CellUpper

vtkm::cont::ArrayHandle<vtkm::Id> vtkm::cont::PointLocatorSparseGrid::CellUpper
private

◆ Dims

vtkm::Id3 vtkm::cont::PointLocatorSparseGrid::Dims = { 32 }
private

◆ PointIds

vtkm::cont::ArrayHandle<vtkm::Id> vtkm::cont::PointLocatorSparseGrid::PointIds
private

◆ Range

RangeType vtkm::cont::PointLocatorSparseGrid::Range = { { 0.0, -1.0 } }
private

The documentation for this class was generated from the following file: