VTK-m
2.3
|
Structure for locating cells. More...
#include <CellLocatorUniformBins.h>
Classes | |
struct | LastCell |
Structure capturing the location of a cell in the search structure. More... | |
Public Member Functions | |
template<typename CellSetType > | |
CellLocatorUniformBins (const vtkm::Id3 &cellDims, const vtkm::Vec3f &origin, const vtkm::Vec3f &maxPoint, const vtkm::Vec3f &invSpacing, const vtkm::Id3 &maxCellIds, const vtkm::cont::ArrayHandleGroupVecVariable< CellIdArrayType, CellIdOffsetArrayType > &cellIds, const CellSetType &cellSet, const vtkm::cont::CoordinateSystem &coords, vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) | |
vtkm::ErrorCode | FindCell (const vtkm::Vec3f &point, vtkm::Id &cellId, vtkm::Vec3f ¶metric) const |
Locate the cell containing the provided point. More... | |
vtkm::ErrorCode | FindCell (const vtkm::Vec3f &point, vtkm::Id &cellId, vtkm::Vec3f ¶metric, LastCell &lastCell) const |
Locate the cell containing the provided point. More... | |
CellLocatorUniformBins * | operator-> () |
const CellLocatorUniformBins * | operator-> () const |
Private Types | |
template<typename T > | |
using | ReadPortal = typename vtkm::cont::ArrayHandle< T >::ReadPortalType |
using | CoordsPortalType = typename vtkm::cont::CoordinateSystem::MultiplexerArrayType::ReadPortalType |
using | CellIdArrayType = vtkm::cont::ArrayHandle< vtkm::Id > |
using | CellIdOffsetArrayType = vtkm::cont::ArrayHandle< vtkm::Id > |
using | CellIdReadPortal = typename vtkm::cont::ArrayHandleGroupVecVariable< CellIdArrayType, CellIdOffsetArrayType >::ReadPortalType |
Private Member Functions | |
vtkm::Id | FindBinIdx (const vtkm::Vec3f &point) const |
bool | LastCellValid (const LastCell &lastCell) const |
bool | IsInside (const vtkm::Vec3f &point) const |
vtkm::ErrorCode | FindCellImpl (const vtkm::Vec3f &point, vtkm::Id &cellId, vtkm::Vec3f ¶metric, LastCell &lastCell, vtkm::Id ptBinIdx=-1) const |
template<typename PointsVecType > | |
vtkm::Bounds | ComputeCellBounds (const PointsVecType &points) const |
template<typename CellShapeTag , typename CoordsType > | |
vtkm::ErrorCode | PointInsideCell (vtkm::Vec3f point, CellShapeTag cellShape, CoordsType cellPoints, vtkm::Vec3f ¶metricCoordinates, bool &inside) const |
bool | PointInBin (const vtkm::Vec3f &point, const vtkm::Id &binIdx, vtkm::Id &cellId, vtkm::Vec3f ¶metric, const vtkm::Id &skipCellId=-1) const |
bool | PointInCell (const vtkm::Vec3f &point, const vtkm::Id &cid, vtkm::Vec3f ¶metric) const |
Private Attributes | |
vtkm::Id3 | CellDims |
vtkm::Vec3f | Origin |
vtkm::Vec3f | MaxPoint |
vtkm::Vec3f | InvSpacing |
vtkm::Id3 | MaxCellIds |
CellIdReadPortal | CellIds |
CellStructureType | CellSet |
CoordsPortalType | Coords |
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::CellLocatorBoundingIntervalHierarchy
when passed to a worklet.
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
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
.
|
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
.
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
inline |
|
inline |
|
inlineprivate |
|
inlineprivate |
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |