18 #ifndef itkTriangleCell_h
19 #define itkTriangleCell_h
44 template <
typename TCellInterface>
46 :
public TCellInterface
69 static constexpr
unsigned int NumberOfPoints = 3;
70 static constexpr
unsigned int NumberOfVertices = 3;
71 static constexpr
unsigned int NumberOfEdges = 3;
72 static constexpr
unsigned int CellDimension = 2;
81 MakeCopy(CellAutoPointer &)
const override;
85 GetDimension()
const override;
88 GetNumberOfPoints()
const override;
91 GetNumberOfBoundaryFeatures(
int dimension)
const override;
94 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
96 SetPointIds(PointIdConstIterator first)
override;
99 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
102 SetPointId(
int localId, PointIdentifier)
override;
104 PointIdsBegin()
override;
107 PointIdsBegin()
const override;
110 PointIdsEnd()
override;
113 PointIdsEnd()
const override;
116 virtual CellFeatureCount
117 GetNumberOfVertices()
const;
119 virtual CellFeatureCount
120 GetNumberOfEdges()
const;
123 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
125 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
128 EvaluatePosition(CoordRepType *,
133 InterpolationWeightType *)
override;
140 ComputeArea(PointsContainer *);
143 ComputeBarycenter(CoordRepType *, PointsContainer *);
146 ComputeCenterOfGravity(PointsContainer *);
149 ComputeCircumCenter(PointsContainer *);
153 : m_PointIds(NumberOfPoints,
NumericTraits<PointIdentifier>::max())
155 #if defined(__GNUC__)
163 ~TriangleCell()
override =
default;
181 #ifndef ITK_MANUAL_INSTANTIATION
182 # include "itkTriangleCell.hxx"