18 #ifndef itkQuadraticTriangleCell_h
19 #define itkQuadraticTriangleCell_h
35 template <
typename TCellInterface>
37 :
public TCellInterface
60 static constexpr
unsigned int NumberOfPoints = 6;
61 static constexpr
unsigned int NumberOfVertices = 3;
62 static constexpr
unsigned int NumberOfEdges = 3;
63 static constexpr
unsigned int CellDimension = 2;
72 MakeCopy(CellAutoPointer &)
const override;
76 GetDimension()
const override;
79 GetNumberOfPoints()
const override;
82 GetNumberOfBoundaryFeatures(
int dimension)
const override;
85 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
87 SetPointIds(PointIdConstIterator first)
override;
90 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
93 SetPointId(
int localId, PointIdentifier)
override;
95 PointIdsBegin()
override;
98 PointIdsBegin()
const override;
101 PointIdsEnd()
override;
104 PointIdsEnd()
const override;
107 virtual CellFeatureCount
108 GetNumberOfVertices()
const;
110 virtual CellFeatureCount
111 GetNumberOfEdges()
const;
114 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
116 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
125 EvaluateShapeFunctions(
const ParametricCoordArrayType & parametricCoordinates,
126 ShapeFunctionsArrayType & weights)
const override;
135 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
140 #ifndef ITK_MANUAL_INSTANTIATION
141 # include "itkQuadraticTriangleCell.hxx"