18 #ifndef itkTriangleCell_h
19 #define itkTriangleCell_h
45 template <
typename TCellInterface>
47 :
public TCellInterface
70 static constexpr
unsigned int NumberOfPoints = 3;
71 static constexpr
unsigned int NumberOfVertices = 3;
72 static constexpr
unsigned int NumberOfEdges = 3;
73 static constexpr
unsigned int CellDimension = 2;
84 MakeCopy(CellAutoPointer &)
const override;
89 GetDimension()
const override;
93 GetNumberOfPoints()
const override;
97 GetNumberOfBoundaryFeatures(
int dimension)
const override;
103 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
109 SetPointIds(PointIdConstIterator first)
override;
116 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
120 SetPointId(
int localId, PointIdentifier)
override;
124 PointIdsBegin()
override;
128 PointIdsBegin()
const override;
132 PointIdsEnd()
override;
136 PointIdsEnd()
const override;
141 virtual CellFeatureCount
142 GetNumberOfVertices()
const;
145 virtual CellFeatureCount
146 GetNumberOfEdges()
const;
152 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
158 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
162 EvaluatePosition(CoordinateType *,
167 InterpolationWeightType *)
override;
174 ComputeArea(PointsContainer *);
177 ComputeBarycenter(CoordinateType *, PointsContainer *);
180 ComputeCenterOfGravity(PointsContainer *);
183 ComputeCircumCenter(PointsContainer *);
191 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
205 #ifndef ITK_MANUAL_INSTANTIATION
206 # include "itkTriangleCell.hxx"