VTK-m
2.0
|
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 | |
VTKM_CONT ExecObjType | PrepareForExecution (vtkm::cont::DeviceAdapterId device, vtkm::cont::Token &token) const |
Private Types | |
using | Superclass = vtkm::cont::internal::CellLocatorBase< CellLocatorGeneral > |
Private Member Functions | |
VTKM_CONT void | Build () |
Private Attributes | |
vtkm::cont::ListAsVariant< ContLocatorList > | LocatorImpl |
friend | Superclass |
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 |
|
private |
|
private |
VTKM_CONT ExecObjType vtkm::cont::CellLocatorGeneral::PrepareForExecution | ( | vtkm::cont::DeviceAdapterId | device, |
vtkm::cont::Token & | token | ||
) | const |
|
private |
|
private |