Viskores
1.0
|
A CellLocator that works generally well for any supported cell set. More...
#include <CellLocatorGeneral.h>
Public Types | |
using | ContLocatorList = viskores::List< viskores::cont::CellLocatorUniformGrid, viskores::cont::CellLocatorRectilinearGrid, viskores::cont::CellLocatorTwoLevel > |
using | ExecLocatorList = viskores::List< viskores::cont::internal::ExecutionObjectType< viskores::cont::CellLocatorUniformGrid >, viskores::cont::internal::ExecutionObjectType< viskores::cont::CellLocatorRectilinearGrid >, viskores::cont::internal::ExecutionObjectType< viskores::cont::CellLocatorTwoLevel > > |
using | ExecObjType = viskores::ListApply< ExecLocatorList, viskores::exec::CellLocatorMultiplexer > |
using | LastCell = typename ExecObjType::LastCell |
Public Member Functions | |
ExecObjType | PrepareForExecution (viskores::cont::DeviceAdapterId device, viskores::cont::Token &token) const |
![]() | |
virtual | ~CellLocatorBase ()=default |
const viskores::cont::UnknownCellSet & | GetCellSet () const |
Specify the CellSet defining the structure of the cells being searched. More... | |
void | SetCellSet (const viskores::cont::UnknownCellSet &cellSet) |
Specify the CellSet defining the structure of the cells being searched. More... | |
const viskores::cont::CoordinateSystem & | GetCoordinates () const |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const viskores::cont::CoordinateSystem &coords) |
Specify the CoordinateSystem defining the location of the cells. More... | |
void | SetCoordinates (const viskores::cont::UnknownArrayHandle &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 | |
viskores::cont::ListAsVariant< ContLocatorList > | LocatorImpl |
Additional Inherited Members | |
![]() | |
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 viskores::cont::CellLocatorGeneral::ContLocatorList = viskores::List<viskores::cont::CellLocatorUniformGrid, viskores::cont::CellLocatorRectilinearGrid, viskores::cont::CellLocatorTwoLevel> |
using viskores::cont::CellLocatorGeneral::ExecLocatorList = viskores::List< viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorUniformGrid>, viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorRectilinearGrid>, viskores::cont::internal::ExecutionObjectType<viskores::cont::CellLocatorTwoLevel> > |
using viskores::cont::CellLocatorGeneral::ExecObjType = viskores::ListApply<ExecLocatorList, viskores::exec::CellLocatorMultiplexer> |
using viskores::cont::CellLocatorGeneral::LastCell = typename ExecObjType::LastCell |
|
overrideprivatevirtual |
Implements viskores::cont::CellLocatorBase.
ExecObjType viskores::cont::CellLocatorGeneral::PrepareForExecution | ( | viskores::cont::DeviceAdapterId | device, |
viskores::cont::Token & | token | ||
) | const |
|
private |