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;
82 MakeCopy(CellAutoPointer &)
const override;
86 GetDimension()
const override;
89 GetNumberOfPoints()
const override;
92 GetNumberOfBoundaryFeatures(
int dimension)
const override;
95 GetBoundaryFeature(
int dimension, CellFeatureIdentifier, CellAutoPointer &)
override;
97 SetPointIds(PointIdConstIterator first)
override;
100 SetPointIds(PointIdConstIterator first, PointIdConstIterator last)
override;
103 SetPointId(
int localId, PointIdentifier)
override;
105 PointIdsBegin()
override;
108 PointIdsBegin()
const override;
111 PointIdsEnd()
override;
114 PointIdsEnd()
const override;
117 virtual CellFeatureCount
118 GetNumberOfVertices()
const;
120 virtual CellFeatureCount
121 GetNumberOfEdges()
const;
124 GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
126 GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
129 EvaluatePosition(CoordRepType *,
134 InterpolationWeightType *)
override;
141 ComputeArea(PointsContainer *);
144 ComputeBarycenter(CoordRepType *, PointsContainer *);
147 ComputeCenterOfGravity(PointsContainer *);
150 ComputeCircumCenter(PointsContainer *);
154 #if defined(__GNUC__)
162 ~TriangleCell()
override =
default;
167 std::array<PointIdentifier, NumberOfPoints> m_PointIds{ MakeFilled<std::array<PointIdentifier, NumberOfPoints>>(
181 #ifndef ITK_MANUAL_INSTANTIATION
182 # include "itkTriangleCell.hxx"