ExternalFaces worklet is not templated on device adapter.

This should help reduce the amount of code generation, when building the
ExternalFaces worklet for all device adapters.
This commit is contained in:
Robert Maynard 2016-01-08 13:32:04 -05:00
parent 02d10e38c4
commit dbee92752e
2 changed files with 7 additions and 6 deletions

@ -46,7 +46,6 @@ namespace vtkm
namespace worklet namespace worklet
{ {
template<typename DeviceAdapter>
struct ExternalFaces struct ExternalFaces
{ {
//Unary predicate operator //Unary predicate operator
@ -239,14 +238,15 @@ public:
/// \param output_pointId3Array: Output point-ids /// \param output_pointId3Array: Output point-ids
template <typename StorageT, template <typename StorageT,
typename StorageU, typename StorageU,
typename StorageV> typename StorageV,
typename DeviceAdapter>
void run(const vtkm::cont::ArrayHandle<vtkm::UInt8, StorageT> shapes, void run(const vtkm::cont::ArrayHandle<vtkm::UInt8, StorageT> shapes,
const vtkm::cont::ArrayHandle<vtkm::IdComponent, StorageU> numIndices, const vtkm::cont::ArrayHandle<vtkm::IdComponent, StorageU> numIndices,
const vtkm::cont::ArrayHandle<vtkm::Id, StorageV> conn, const vtkm::cont::ArrayHandle<vtkm::Id, StorageV> conn,
vtkm::cont::ArrayHandle<vtkm::UInt8, StorageT> &output_shapes, vtkm::cont::ArrayHandle<vtkm::UInt8, StorageT> &output_shapes,
vtkm::cont::ArrayHandle<vtkm::IdComponent, StorageU> &output_numIndices, vtkm::cont::ArrayHandle<vtkm::IdComponent, StorageU> &output_numIndices,
vtkm::cont::ArrayHandle<vtkm::Id, StorageV> &output_conn vtkm::cont::ArrayHandle<vtkm::Id, StorageV> &output_conn,
) DeviceAdapter)
{ {
//Create a worklet to map the number of faces to each cell //Create a worklet to map the number of faces to each cell
vtkm::cont::ArrayHandle<vtkm::Id> facesPerCell; vtkm::cont::ArrayHandle<vtkm::Id> facesPerCell;

@ -44,13 +44,14 @@ vtkm::cont::DataSet RunExternalFaces(vtkm::cont::DataSet &ds)
vtkm::cont::ArrayHandle<vtkm::Id> output_conn; vtkm::cont::ArrayHandle<vtkm::Id> output_conn;
//Run the External Faces worklet //Run the External Faces worklet
vtkm::worklet::ExternalFaces<VTKM_DEFAULT_DEVICE_ADAPTER_TAG>().run( vtkm::worklet::ExternalFaces().run(
shapes, shapes,
numIndices, numIndices,
conn, conn,
output_shapes, output_shapes,
output_numIndices, output_numIndices,
output_conn); output_conn,
VTKM_DEFAULT_DEVICE_ADAPTER_TAG());
vtkm::cont::DataSet new_ds; vtkm::cont::DataSet new_ds;
for(vtkm::IdComponent i=0; i < ds.GetNumberOfCoordinateSystems(); ++i) for(vtkm::IdComponent i=0; i < ds.GetNumberOfCoordinateSystems(); ++i)