19 #ifndef vtk_m_worklet_cellmetrics_CellShapeAndSizeMetric_h
20 #define vtk_m_worklet_cellmetrics_CellShapeAndSizeMetric_h
42 #define UNUSED(expr) (void)(expr);
56 template <
typename OutType,
typename Po
intCoordVecType,
typename CellShapeType>
58 const PointCoordVecType& pts,
59 const OutType& avgArea,
72 template <
typename OutType,
typename Po
intCoordVecType>
74 const PointCoordVecType& pts,
75 const OutType& avgArea,
76 vtkm::CellShapeTagTriangle tag,
79 OutType rss = vtkm::worklet::cellmetrics::CellRelativeSizeSquaredMetric<OutType>(
80 numPts, pts, avgArea, tag, ec);
81 OutType shape = vtkm::worklet::cellmetrics::CellShapeMetric<OutType>(numPts, pts, tag, ec);
82 OutType q = rss * shape;
86 template <
typename OutType,
typename Po
intCoordVecType>
88 const PointCoordVecType& pts,
89 const OutType& avgArea,
90 vtkm::CellShapeTagQuad tag,
93 OutType rss = vtkm::worklet::cellmetrics::CellRelativeSizeSquaredMetric<OutType>(
94 numPts, pts, avgArea, tag, ec);
95 OutType shape = vtkm::worklet::cellmetrics::CellShapeMetric<OutType>(numPts, pts, tag, ec);
96 OutType q = rss * shape;
102 template <
typename OutType,
typename Po
intCoordVecType>
104 const PointCoordVecType& pts,
105 const OutType& avgVolume,
106 vtkm::CellShapeTagTetra tag,
109 OutType rss = vtkm::worklet::cellmetrics::CellRelativeSizeSquaredMetric<OutType>(
110 numPts, pts, avgVolume, tag, ec);
111 OutType shape = vtkm::worklet::cellmetrics::CellShapeMetric<OutType>(numPts, pts, tag, ec);
112 OutType q = rss * shape;
116 template <
typename OutType,
typename Po
intCoordVecType>
118 const PointCoordVecType& pts,
119 const OutType& avgVolume,
120 vtkm::CellShapeTagHexahedron tag,
123 OutType rss = vtkm::worklet::cellmetrics::CellRelativeSizeSquaredMetric<OutType>(
124 numPts, pts, avgVolume, tag, ec);
125 OutType shape = vtkm::worklet::cellmetrics::CellShapeMetric<OutType>(numPts, pts, tag, ec);
126 OutType q = rss * shape;
134 #endif // vtk_m_worklet_cellmetrics_CellShapeAndSizeMetric_h