Go to the documentation of this file.
10 #ifndef vtk_m_worklet_RemoveDegeneratePolygons_h
11 #define vtk_m_worklet_RemoveDegeneratePolygons_h
40 template <vtkm::IdComponent dimensionality,
typename CellShapeTag,
typename Po
intVecType>
43 PointVecType&& pointIds)
const
47 for (
vtkm::IdComponent localPointId = 0; localPointId < numPoints; ++localPointId)
49 ++numUnduplicatedPoints;
50 if (numUnduplicatedPoints >= dimensionality + 1)
54 while (((localPointId < numPoints - 1) &&
55 (pointIds[localPointId] == pointIds[localPointId + 1])) ||
56 ((localPointId == numPoints - 1) && (pointIds[localPointId] == pointIds[0])))
65 template <
typename CellShapeTag,
typename Po
intVecType>
73 template <
typename CellShapeTag,
typename Po
intVecType>
76 PointVecType&& pointIds)
78 const vtkm::IdComponent numFaces = vtkm::exec::CellFaceNumberOfFaces(shape, *
this);
86 if (numValidFaces > 2)
95 template <
typename CellShapeTag,
typename Po
intIdVec>
100 typename Traits::TopologicalDimensionsTag(), shape, pointIds);
103 template <
typename Po
intIdVec>
106 bool passCell =
true;
118 template <
typename CellSetType>
123 dispatcher.Invoke(cellSet, passFlags);
136 template <
typename CellSetList>
140 cellSet.
CastAndCall([&](
const auto& concrete) { output = this->
Run(concrete); });
153 #endif //vtk_m_worklet_RemoveDegeneratePolygons_h
VTKM_CONT vtkm::Id GetNumberOfValues() const
Returns the number of entries in the array.
Definition: ArrayHandle.h:448
VTKM_EXEC bool operator()(CellShapeTag shape, const PointIdVec &pointIds) const
Definition: RemoveDegenerateCells.h:96
_1 InputDomain
Definition: RemoveDegenerateCells.h:38
#define VTKM_EXEC
Definition: ExportMacros.h:51
Groups connected points that have the same field value.
Definition: Atomic.h:19
VTKM_EXEC bool CheckForDimensionality(vtkm::CellTopologicalDimensionsTag< 0 >, CellShapeTag, PointVecType &&)
Definition: RemoveDegenerateCells.h:66
Definition: CastAndCall.h:38
VTKM_CONT vtkm::cont::ArrayHandleCounting< CountingValueType > make_ArrayHandleCounting(CountingValueType start, CountingValueType step, vtkm::Id length)
A convenience function for creating an ArrayHandleCounting.
Definition: ArrayHandleCounting.h:151
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
VTKM_EXEC bool CheckForDimensionality(vtkm::CellTopologicalDimensionsTag< dimensionality >, CellShapeTag, PointVecType &&pointIds) const
Definition: RemoveDegenerateCells.h:41
A CellSet of an uncertain type.
Definition: UncertainCellSet.h:38
IncidentElementIndices PointIndices
Definition: WorkletMapTopology.h:269
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
#define vtkmGenericCellShapeMacro(call)
A macro used in a switch statement to determine cell shape.
Definition: CellShape.h:230
Definition: RemoveDegenerateCells.h:32
_2(CellShape, PointIndices) ExecutionSignature
Definition: RemoveDegenerateCells.h:37
vtkm::CellTraits::TopologyDimensionType is typedef to this with the template parameter set to TOPOLOG...
Definition: CellTraits.h:23
vtkm::cont::ArrayHandle< vtkm::Id > GetValidCellIds() const
Definition: RemoveDegenerateCells.h:145
Dispatcher for worklets that inherit from WorkletMapTopology.
Definition: DispatcherMapTopology.h:31
Base class for worklets that map from Points to Cells.
Definition: WorkletMapTopology.h:255
vtkm::cont::ArrayHandle< vtkm::Id > ValidCellIds
Definition: RemoveDegenerateCells.h:148
static VTKM_CONT void CopyIf(vtkm::cont::DeviceAdapterId devId, const vtkm::cont::ArrayHandle< T, CIn > &input, const vtkm::cont::ArrayHandle< U, CStencil > &stencil, vtkm::cont::ArrayHandle< T, COut > &output)
Definition: Algorithm.h:435
Definition: RemoveDegenerateCells.h:34
VTKM_CONT void CastAndCall(Functor &&functor, Args &&... args) const
Call a functor using the underlying cell set type.
Definition: UncertainCellSet.h:81
VTKM_EXEC bool operator()(vtkm::CellShapeTagGeneric shape, PointIdVec &&pointIds) const
Definition: RemoveDegenerateCells.h:104
vtkm::cont::CellSetExplicit Run(const CellSetType &cellSet)
Definition: RemoveDegenerateCells.h:119
vtkm::cont::CellSetExplicit Run(const vtkm::cont::UncertainCellSet< CellSetList > &cellSet)
Definition: RemoveDegenerateCells.h:137
static VTKM_CONT void Run(const InCellSetType &inCellSet, vtkm::cont::CellSetExplicit< ShapeStorage, ConnectivityStorage, OffsetsStorage > &outCellSet, vtkm::Id numberOfPoints)
Definition: CellDeepCopy.h:68
vtkm::UInt8 Id
Definition: CellShape.h:160
Definition: CastAndCall.h:36
VTKM_EXEC bool CheckForDimensionality(vtkm::CellTopologicalDimensionsTag< 3 >, CellShapeTag shape, PointVecType &&pointIds)
Definition: RemoveDegenerateCells.h:74
void(CellSetIn, FieldOutCell) ControlSignature
Definition: RemoveDegenerateCells.h:36
A special cell shape tag that holds a cell shape that is not known at compile time.
Definition: CellShape.h:152
Information about a cell based on its tag.
Definition: CellTraits.h:46
An implicit array handle containing the its own indices.
Definition: ArrayHandleIndex.h:54
FieldOut FieldOutCell
Definition: WorkletMapTopology.h:263