18 #ifndef itkTriangleCell_h
19 #define itkTriangleCell_h
44 template<
typename TCellInterface >
68 static constexpr
unsigned int NumberOfPoints = 3;
69 static constexpr
unsigned int NumberOfVertices = 3;
70 static constexpr
unsigned int NumberOfEdges = 3;
71 static constexpr
unsigned int CellDimension = 2;
75 {
return Superclass::TRIANGLE_CELL; }
76 void MakeCopy(CellAutoPointer &)
const override;
79 unsigned int GetDimension()
const override;
81 unsigned int GetNumberOfPoints()
const override;
83 CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension)
const override;
85 bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier,
86 CellAutoPointer &)
override;
87 void SetPointIds(PointIdConstIterator first)
override;
89 void SetPointIds(PointIdConstIterator first,
90 PointIdConstIterator last)
override;
92 void SetPointId(
int localId, PointIdentifier)
override;
93 PointIdIterator PointIdsBegin()
override;
95 PointIdConstIterator PointIdsBegin()
const override;
97 PointIdIterator PointIdsEnd()
override;
99 PointIdConstIterator PointIdsEnd()
const override;
102 virtual CellFeatureCount GetNumberOfVertices()
const;
104 virtual CellFeatureCount GetNumberOfEdges()
const;
106 virtual bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
107 virtual bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
109 bool EvaluatePosition(CoordRepType *,
114 InterpolationWeightType *)
override;
120 CoordRepType ComputeArea(PointsContainer *);
122 PointType ComputeBarycenter(CoordRepType *,
125 PointType ComputeCenterOfGravity(PointsContainer *);
127 PointType ComputeCircumCenter(PointsContainer *);
131 m_PointIds( NumberOfPoints,
NumericTraits< PointIdentifier >::max() )
133 #if defined(__GNUC__) && (__GNUC__ > 5)
141 std::vector< PointIdentifier > m_PointIds;
147 double & t, CoordRepType *closestPoint);
154 #ifndef ITK_MANUAL_INSTANTIATION
155 #include "itkTriangleCell.hxx"
Represents a line segment for a Mesh.
typename VertexType::SelfAutoPointer VertexAutoPointer
Define numeric traits for std::vector.
An abstract interface for cells.
#define itkCellCommonTypedefs(celltype)
CellGeometry GetType() const override
Represents a single vertex for a Mesh.
#define itkCellVisitMacro(TopologyId)
ImageBaseType::PointType PointType
typename EdgeType::SelfAutoPointer EdgeAutoPointer
#define itkCellInheritedTypedefs(superclassArg)