18 #ifndef itkTetrahedronCell_h
19 #define itkTetrahedronCell_h
35 template <
typename TCellInterface>
37 :
public TCellInterface
64 static constexpr
unsigned int NumberOfPoints = 4;
65 static constexpr
unsigned int NumberOfVertices = 4;
66 static constexpr
unsigned int NumberOfEdges = 6;
67 static constexpr
unsigned int NumberOfFaces = 4;
68 static constexpr
unsigned int CellDimension = 3;
79 MakeCopy(CellAutoPointer &)
const override;
84 GetDimension()
const override;
88 GetNumberOfPoints()
const override;
92 GetNumberOfBoundaryFeatures(
int dimension)
const override;
98 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
104 SetPointIds(PointIdConstIterator first)
override;
111 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
115 SetPointId(
int localId, PointIdentifier)
override;
119 PointIdsBegin()
override;
123 PointIdsBegin()
const override;
127 PointIdsEnd()
override;
131 PointIdsEnd()
const override;
136 virtual CellFeatureCount
137 GetNumberOfVertices()
const;
140 virtual CellFeatureCount
141 GetNumberOfEdges()
const;
144 virtual CellFeatureCount
145 GetNumberOfFaces()
const;
151 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
157 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
163 GetFace(CellFeatureIdentifier, FaceAutoPointer &);
169 EvaluatePosition(CoordRepType *,
174 InterpolationWeightType *)
override;
183 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
188 #ifndef ITK_MANUAL_INSTANTIATION
189 # include "itkTetrahedronCell.hxx"