VTK-m  2.3
Classes | Public Member Functions | Private Types | Static Private Member Functions | Private Attributes | List of all members
vtkm::exec::CellLocatorRectilinearGrid Class Reference

Structure for locating cells. More...

#include <CellLocatorRectilinearGrid.h>

Classes

struct  LastCell
 Structure capturing the location of a cell in the search structure. More...
 

Public Member Functions

template<vtkm::IdComponent dimensions>
 CellLocatorRectilinearGrid (const vtkm::Id planeSize, const vtkm::Id rowSize, const vtkm::cont::CellSetStructured< dimensions > &cellSet, const RectilinearType &coords, vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token)
 
bool IsInside (const vtkm::Vec3f &point) const
 
vtkm::ErrorCode FindCell (const vtkm::Vec3f &point, vtkm::Id &cellId, vtkm::Vec3f &parametric, LastCell &) const
 Locate the cell containing the provided point. More...
 
vtkm::ErrorCode FindCell (const vtkm::Vec3f &point, vtkm::Id &cellId, vtkm::Vec3f &parametric) const
 Locate the cell containing the provided point. More...
 

Private Types

using AxisHandle = vtkm::cont::ArrayHandle< vtkm::FloatDefault >
 
using RectilinearType = vtkm::cont::ArrayHandleCartesianProduct< AxisHandle, AxisHandle, AxisHandle >
 
using AxisPortalType = typename AxisHandle::ReadPortalType
 
using RectilinearPortalType = typename RectilinearType::ReadPortalType
 

Static Private Member Functions

static vtkm::Id3 && ToId3 (vtkm::Id3 &&src)
 
static vtkm::Id3 ToId3 (vtkm::Id2 &&src)
 
static vtkm::Id3 ToId3 (vtkm::Id &&src)
 

Private Attributes

vtkm::Id PlaneSize
 
vtkm::Id RowSize
 
AxisPortalType AxisPortals [3]
 
vtkm::Id3 PointDimensions
 
vtkm::Vec3f MinPoint
 
vtkm::Vec3f MaxPoint
 
vtkm::Id Dimensions
 

Detailed Description

Structure for locating cells.

Use the FindCell() method to identify which cell contains a point in space. The FindCell() method optionally takes a LastCell object, which is a structure nested in this class. The LastCell object can help speed locating cells for successive finds at nearby points.

This class is provided by vtkm::cont::CellLocatorRectilinearGrid when passed to a worklet.

Member Typedef Documentation

◆ AxisHandle

◆ AxisPortalType

◆ RectilinearPortalType

◆ RectilinearType

Constructor & Destructor Documentation

◆ CellLocatorRectilinearGrid()

template<vtkm::IdComponent dimensions>
vtkm::exec::CellLocatorRectilinearGrid::CellLocatorRectilinearGrid ( const vtkm::Id  planeSize,
const vtkm::Id  rowSize,
const vtkm::cont::CellSetStructured< dimensions > &  cellSet,
const RectilinearType coords,
vtkm::cont::DeviceAdapterId  device,
vtkm::cont::Token token 
)
inline

Member Function Documentation

◆ FindCell() [1/2]

vtkm::ErrorCode vtkm::exec::CellLocatorRectilinearGrid::FindCell ( const vtkm::Vec3f point,
vtkm::Id cellId,
vtkm::Vec3f parametric 
) const
inline

Locate the cell containing the provided point.

Given the point coordinate point, this method determines which cell contains that point. The identification of the cell is returned in the cellId reference parameter. The method also determines the cell's parametric coordinates to the point and returns that in the parametric reference parameter. This result can be used in functions like vtkm::exec::CellInterpolate().

FindCell() takes an optional LastCell parameter. This parameter captures the location of the found cell and can be passed to the next call of FindCell(). If the subsequent FindCell() call is for a point that is in or near the same cell, the operation may go faster.

This method will return vtkm::ErrorCode::Success if a cell is found. If a cell is not found, vtkm::ErrorCode::CellNotFound is returned and cellId is set to -1.

◆ FindCell() [2/2]

vtkm::ErrorCode vtkm::exec::CellLocatorRectilinearGrid::FindCell ( const vtkm::Vec3f point,
vtkm::Id cellId,
vtkm::Vec3f parametric,
LastCell  
) const
inline

Locate the cell containing the provided point.

Given the point coordinate point, this method determines which cell contains that point. The identification of the cell is returned in the cellId reference parameter. The method also determines the cell's parametric coordinates to the point and returns that in the parametric reference parameter. This result can be used in functions like vtkm::exec::CellInterpolate().

FindCell() takes an optional LastCell parameter. This parameter captures the location of the found cell and can be passed to the next call of FindCell(). If the subsequent FindCell() call is for a point that is in or near the same cell, the operation may go faster.

This method will return vtkm::ErrorCode::Success if a cell is found. If a cell is not found, vtkm::ErrorCode::CellNotFound is returned and cellId is set to -1.

◆ IsInside()

bool vtkm::exec::CellLocatorRectilinearGrid::IsInside ( const vtkm::Vec3f point) const
inline

◆ ToId3() [1/3]

static vtkm::Id3 vtkm::exec::CellLocatorRectilinearGrid::ToId3 ( vtkm::Id &&  src)
inlinestaticprivate

◆ ToId3() [2/3]

static vtkm::Id3 vtkm::exec::CellLocatorRectilinearGrid::ToId3 ( vtkm::Id2 &&  src)
inlinestaticprivate

◆ ToId3() [3/3]

static vtkm::Id3&& vtkm::exec::CellLocatorRectilinearGrid::ToId3 ( vtkm::Id3 &&  src)
inlinestaticprivate

Member Data Documentation

◆ AxisPortals

AxisPortalType vtkm::exec::CellLocatorRectilinearGrid::AxisPortals[3]
private

◆ Dimensions

vtkm::Id vtkm::exec::CellLocatorRectilinearGrid::Dimensions
private

◆ MaxPoint

vtkm::Vec3f vtkm::exec::CellLocatorRectilinearGrid::MaxPoint
private

◆ MinPoint

vtkm::Vec3f vtkm::exec::CellLocatorRectilinearGrid::MinPoint
private

◆ PlaneSize

vtkm::Id vtkm::exec::CellLocatorRectilinearGrid::PlaneSize
private

◆ PointDimensions

vtkm::Id3 vtkm::exec::CellLocatorRectilinearGrid::PointDimensions
private

◆ RowSize

vtkm::Id vtkm::exec::CellLocatorRectilinearGrid::RowSize
private

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