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

A locator that uses a uniform grid. More...

#include <CellLocatorUniformBins.h>

Inheritance diagram for vtkm::cont::CellLocatorUniformBins:
vtkm::cont::ExecutionObjectBase

Public Types

using SupportedCellSets = VTKM_DEFAULT_CELL_SET_LIST
 
using CellExecObjectList = vtkm::ListTransform< SupportedCellSets, CellSetContToExec >
 
using CellLocatorExecList = vtkm::ListTransform< CellExecObjectList, vtkm::exec::CellLocatorUniformBins >
 
using ExecObjType = vtkm::ListApply< CellLocatorExecList, vtkm::exec::CellLocatorMultiplexer >
 
using LastCell = typename ExecObjType::LastCell
 

Public Member Functions

 CellLocatorUniformBins ()
 
void SetDims (const vtkm::Id3 &dims)
 
vtkm::Id3 GetDims () const
 
void PrintSummary (std::ostream &out) const
 
ExecObjType PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const
 

Private Types

using Superclass = vtkm::cont::internal::CellLocatorBase< CellLocatorUniformBins >
 
template<typename CellSetCont >
using CellSetContToExec = typename CellSetCont::template ExecConnectivityType< vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint >
 
using CellIdArrayType = vtkm::cont::ArrayHandle< vtkm::Id >
 
using CellIdOffsetArrayType = vtkm::cont::ArrayHandle< vtkm::Id >
 

Private Member Functions

VTKM_CONT void Build ()
 

Private Attributes

friend Superclass
 
vtkm::Vec3f InvSpacing
 
vtkm::Vec3f MaxPoint
 
vtkm::Vec3f Origin
 
vtkm::Id3 UniformDims
 
vtkm::Id3 MaxCellIds
 
vtkm::cont::ArrayHandleGroupVecVariable< CellIdArrayType, CellIdOffsetArrayTypeCellIds
 

Detailed Description

A locator that uses a uniform grid.

CellLocatorUniformBins creates a cell search structure using a single uniform grid. The size of the uniform grid is specified using the SetDims method. In general, the CellLocatorTwoLevel has the better performance. However, there are some cases where this is not the case. One example of this is a uniformly dense triangle grid. In some cases the CellLocatorUniformBins produces a more efficient search structure, especially for GPUs where memory access patterns are critical to performance.

Member Typedef Documentation

◆ CellExecObjectList

◆ CellIdArrayType

◆ CellIdOffsetArrayType

◆ CellLocatorExecList

◆ CellSetContToExec

template<typename CellSetCont >
using vtkm::cont::CellLocatorUniformBins::CellSetContToExec = typename CellSetCont::template ExecConnectivityType<vtkm::TopologyElementTagCell, vtkm::TopologyElementTagPoint>
private

◆ ExecObjType

◆ LastCell

using vtkm::cont::CellLocatorUniformBins::LastCell = typename ExecObjType::LastCell

◆ Superclass

using vtkm::cont::CellLocatorUniformBins::Superclass = vtkm::cont::internal::CellLocatorBase<CellLocatorUniformBins>
private

◆ SupportedCellSets

using vtkm::cont::CellLocatorUniformBins::SupportedCellSets = VTKM_DEFAULT_CELL_SET_LIST

Constructor & Destructor Documentation

◆ CellLocatorUniformBins()

vtkm::cont::CellLocatorUniformBins::CellLocatorUniformBins ( )
inline

Member Function Documentation

◆ Build()

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

◆ GetDims()

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::GetDims ( ) const
inline

◆ PrepareForExecution()

ExecObjType vtkm::cont::CellLocatorUniformBins::PrepareForExecution ( vtkm::cont::DeviceAdapterId  device,
vtkm::cont::Token token 
) const

◆ PrintSummary()

void vtkm::cont::CellLocatorUniformBins::PrintSummary ( std::ostream &  out) const

◆ SetDims()

void vtkm::cont::CellLocatorUniformBins::SetDims ( const vtkm::Id3 dims)
inline

Member Data Documentation

◆ CellIds

vtkm::cont::ArrayHandleGroupVecVariable<CellIdArrayType, CellIdOffsetArrayType> vtkm::cont::CellLocatorUniformBins::CellIds
private

◆ InvSpacing

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::InvSpacing
private

◆ MaxCellIds

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::MaxCellIds
private

◆ MaxPoint

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::MaxPoint
private

◆ Origin

vtkm::Vec3f vtkm::cont::CellLocatorUniformBins::Origin
private

◆ Superclass

◆ UniformDims

vtkm::Id3 vtkm::cont::CellLocatorUniformBins::UniformDims
private

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