18 #ifndef itkTetrahedronCell_h
19 #define itkTetrahedronCell_h
36 template <
typename TCellInterface>
38 :
public TCellInterface
65 static constexpr
unsigned int NumberOfPoints = 4;
66 static constexpr
unsigned int NumberOfVertices = 4;
67 static constexpr
unsigned int NumberOfEdges = 6;
68 static constexpr
unsigned int NumberOfFaces = 4;
69 static constexpr
unsigned int CellDimension = 3;
78 MakeCopy(CellAutoPointer &)
const override;
82 GetDimension()
const override;
85 GetNumberOfPoints()
const override;
88 GetNumberOfBoundaryFeatures(
int dimension)
const override;
91 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
93 SetPointIds(PointIdConstIterator first)
override;
96 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
99 SetPointId(
int localId, PointIdentifier)
override;
101 PointIdsBegin()
override;
104 PointIdsBegin()
const override;
107 PointIdsEnd()
override;
110 PointIdsEnd()
const override;
113 virtual CellFeatureCount
114 GetNumberOfVertices()
const;
116 virtual CellFeatureCount
117 GetNumberOfEdges()
const;
119 virtual CellFeatureCount
120 GetNumberOfFaces()
const;
123 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
125 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
127 GetFace(CellFeatureIdentifier, FaceAutoPointer &);
133 EvaluatePosition(CoordRepType *,
138 InterpolationWeightType *)
override;
143 for (PointIdentifier i = 0; i < Self::NumberOfPoints; i++)
153 PointIdentifier m_PointIds[NumberOfPoints];
157 #ifndef ITK_MANUAL_INSTANTIATION
158 # include "itkTetrahedronCell.hxx"