VTK-m
2.2
|
A CellLocator that works generally well for any supported cell set. More...
#include <CellLocatorGeneral.h>
Public Types | |
using | ContLocatorList = vtkm::List< vtkm::cont::CellLocatorUniformGrid, vtkm::cont::CellLocatorRectilinearGrid, vtkm::cont::CellLocatorTwoLevel > |
using | ExecLocatorList = vtkm::List< vtkm::cont::internal::ExecutionObjectType< vtkm::cont::CellLocatorUniformGrid >, vtkm::cont::internal::ExecutionObjectType< vtkm::cont::CellLocatorRectilinearGrid >, vtkm::cont::internal::ExecutionObjectType< vtkm::cont::CellLocatorTwoLevel > > |
using | ExecObjType = vtkm::ListApply< ExecLocatorList, vtkm::exec::CellLocatorMultiplexer > |
using | LastCell = typename ExecObjType::LastCell |
Public Member Functions | |
ExecObjType | PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
Public Member Functions inherited from vtkm::cont::CellLocatorBase | |
virtual | ~CellLocatorBase ()=default |
const vtkm::cont::UnknownCellSet & | GetCellSet () const |
Specify the CellSet defining the structure of the cells being searched. More... | |
void | SetCellSet (const vtkm::cont::UnknownCellSet &cellSet) |
Specify the CellSet defining the structure of the cells being searched. More... | |
const 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 | Update () const |
Build the search structure used to look up cells. More... | |
Private Member Functions | |
void | Build () override |
Private Attributes | |
vtkm::cont::ListAsVariant< ContLocatorList > | LocatorImpl |
Additional Inherited Members | |
Protected Member Functions inherited from vtkm::cont::CellLocatorBase | |
void | SetModified () |
bool | GetModified () const |
A CellLocator that works generally well for any supported cell set.
CellLocatorGeneral
creates a CellLocator
that acts like a multiplexer to switch at runtime to any supported cell set. It is a convenient class to use when the type of CellSet
cannot be determined at runtime.
Note that CellLocatorGeneral
only supports a finite amount of CellSet
types. Thus, it is possible to give it a cell set type that is not supported.
Also note that CellLocatorGeneral
can add a significant amount of code inside of worklet that uses it, and this might cause some issues with some compilers.
using vtkm::cont::CellLocatorGeneral::ContLocatorList = vtkm::List<vtkm::cont::CellLocatorUniformGrid, vtkm::cont::CellLocatorRectilinearGrid, vtkm::cont::CellLocatorTwoLevel> |
using vtkm::cont::CellLocatorGeneral::ExecLocatorList = vtkm::List<vtkm::cont::internal::ExecutionObjectType<vtkm::cont::CellLocatorUniformGrid>, vtkm::cont::internal::ExecutionObjectType<vtkm::cont::CellLocatorRectilinearGrid>, vtkm::cont::internal::ExecutionObjectType<vtkm::cont::CellLocatorTwoLevel> > |
using vtkm::cont::CellLocatorGeneral::ExecObjType = vtkm::ListApply<ExecLocatorList, vtkm::exec::CellLocatorMultiplexer> |
using vtkm::cont::CellLocatorGeneral::LastCell = typename ExecObjType::LastCell |
|
overrideprivatevirtual |
Implements vtkm::cont::CellLocatorBase.
ExecObjType vtkm::cont::CellLocatorGeneral::PrepareForExecution | ( | vtkm::cont::DeviceAdapterId | device, |
vtkm::cont::Token & | token | ||
) | const |
|
private |