18 #ifndef itkQuadraticTriangleCell_h
19 #define itkQuadraticTriangleCell_h
40 template <
typename TCellInterface>
42 :
public TCellInterface
65 static constexpr
unsigned int NumberOfPoints = 6;
66 static constexpr
unsigned int NumberOfVertices = 3;
67 static constexpr
unsigned int NumberOfEdges = 3;
68 static constexpr
unsigned int CellDimension = 2;
77 MakeCopy(CellAutoPointer &)
const override;
81 GetDimension()
const override;
84 GetNumberOfPoints()
const override;
87 GetNumberOfBoundaryFeatures(
int dimension)
const override;
90 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
92 SetPointIds(PointIdConstIterator first)
override;
95 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
98 SetPointId(
int localId, PointIdentifier)
override;
100 PointIdsBegin()
override;
103 PointIdsBegin()
const override;
106 PointIdsEnd()
override;
109 PointIdsEnd()
const override;
112 virtual CellFeatureCount
113 GetNumberOfVertices()
const;
115 virtual CellFeatureCount
116 GetNumberOfEdges()
const;
119 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
121 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
130 EvaluateShapeFunctions(
const ParametricCoordArrayType & parametricCoordinates,
131 ShapeFunctionsArrayType & weights)
const override;
140 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
145 #ifndef ITK_MANUAL_INSTANTIATION
146 # include "itkQuadraticTriangleCell.hxx"