diff --git a/vtkm/worklet/MarchingCubes.h b/vtkm/worklet/MarchingCubes.h index c3a39cd85..a89504c06 100644 --- a/vtkm/worklet/MarchingCubes.h +++ b/vtkm/worklet/MarchingCubes.h @@ -95,19 +95,26 @@ public: /// \brief Compute isosurface vertices and scalars class IsosurfaceGenerate : public vtkm::worklet::WorkletMapPointToCell { + typedef vtkm::Vec< vtkm::Id2,3 > Vec3Id2; + typedef vtkm::Vec< vtkm::Vec, 3 > Vec3FVec3; + typedef vtkm::Vec< vtkm::Vec, 3 > Vec3DVec3; + public: + struct InterpolateIdTypes : vtkm::ListTagBase< Vec3Id2 > { }; + struct Vec3FloatTypes : vtkm::ListTagBase< Vec3FVec3, Vec3DVec3> { }; + typedef typename vtkm::cont::ArrayHandle:: ExecutionTypes::PortalConst IdPortalConstType; IdPortalConstType EdgeTable; typedef void ControlSignature( TopologyIn topology, // Cell set - FieldInPoint<> fieldIn, // Input point field defining the contour + FieldInPoint fieldIn, // Input point field defining the contour FieldInPoint pcoordIn, // Input point coordinates - FieldOutCell<> interpolationWeights, - FieldOutCell<> interpolationIds, - FieldOutCell<> vertexOut, // Vertices for output triangles - FieldOutCell<> normalsOut, // Estimated normals (one per tri vertex) + FieldOutCell interpolationWeights, + FieldOutCell interpolationIds, + FieldOutCell vertexOut, // Vertices for output triangles + FieldOutCell normalsOut, // Estimated normals (one per tri vertex) WholeArrayIn TriTable // An array portal with the triangle table ); typedef void ExecutionSignature(