VTK-m  2.0
Public Types | Public Member Functions | Private Types | 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::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_CONT vtkm::exec::PointLocatorSparseGrid PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const
 

Private Types

using Superclass = vtkm::cont::internal::PointLocatorBase< PointLocatorSparseGrid >
 

Private Member Functions

bool IsRangeInvalid () const
 
VTKM_CONT void Build ()
 

Private Attributes

friend Superclass
 
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
 

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

◆ Superclass

using vtkm::cont::PointLocatorSparseGrid::Superclass = vtkm::cont::internal::PointLocatorBase<PointLocatorSparseGrid>
private

Member Function Documentation

◆ Build()

VTKM_CONT void vtkm::cont::PointLocatorSparseGrid::Build ( )
private

◆ 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_CONT 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

◆ Superclass


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