18 #ifndef itkTriangleCell_h
19 #define itkTriangleCell_h
44 template<
typename TCellInterface >
66 itkStaticConstMacro(NumberOfPoints,
unsigned int, 3);
67 itkStaticConstMacro(NumberOfVertices,
unsigned int, 3);
68 itkStaticConstMacro(NumberOfEdges,
unsigned int, 3);
69 itkStaticConstMacro(CellDimension,
unsigned int, 2);
73 virtual CellGeometry
GetType(
void) const ITK_OVERRIDE
74 {
return Superclass::TRIANGLE_CELL; }
75 virtual void MakeCopy(CellAutoPointer &) const ITK_OVERRIDE;
78 virtual
unsigned int GetDimension(
void) const ITK_OVERRIDE;
80 virtual
unsigned int GetNumberOfPoints(
void) const ITK_OVERRIDE;
82 virtual CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension) const ITK_OVERRIDE;
84 virtual
bool GetBoundaryFeature(
int dimension, CellFeatureIdentifier,
85 CellAutoPointer &) ITK_OVERRIDE;
86 virtual
void SetPointIds(PointIdConstIterator first) ITK_OVERRIDE;
88 virtual
void SetPointIds(PointIdConstIterator first,
89 PointIdConstIterator last) ITK_OVERRIDE;
91 virtual
void SetPointId(
int localId, PointIdentifier) ITK_OVERRIDE;
92 virtual PointIdIterator PointIdsBegin(
void) ITK_OVERRIDE;
94 virtual PointIdConstIterator PointIdsBegin(
void) const ITK_OVERRIDE;
96 virtual PointIdIterator PointIdsEnd(
void) ITK_OVERRIDE;
98 virtual PointIdConstIterator PointIdsEnd(
void) const ITK_OVERRIDE;
101 virtual CellFeatureCount GetNumberOfVertices() const;
103 virtual CellFeatureCount GetNumberOfEdges() const;
105 virtual
bool GetVertex(CellFeatureIdentifier, VertexAutoPointer &);
106 virtual
bool GetEdge(CellFeatureIdentifier, EdgeAutoPointer &);
108 virtual
bool EvaluatePosition(CoordRepType *,
113 InterpolationWeightType *) ITK_OVERRIDE;
119 CoordRepType ComputeArea(PointsContainer *);
121 PointType ComputeBarycenter(CoordRepType *,
124 PointType ComputeCenterOfGravity(PointsContainer *);
126 PointType ComputeCircumCenter(PointsContainer *);
130 m_PointIds( NumberOfPoints,
NumericTraits< PointIdentifier >::max() )
144 double & t, CoordRepType *closestPoint);
151 #ifndef ITK_MANUAL_INSTANTIATION
152 #include "itkTriangleCell.hxx"
VertexType::SelfAutoPointer VertexAutoPointer
Represents a line segment for a Mesh.
VertexCell< TCellInterface > VertexType
An abstract interface for cells.
#define itkCellCommonTypedefs(celltype)
ImageBaseType::PointType PointType
std::vector< PointIdentifier > m_PointIds
Represents a single vertex for a Mesh.
#define itkCellVisitMacro(TopologyId)
LineCell< TCellInterface > EdgeType
Define additional traits for native types such as int or float.
EdgeType::SelfAutoPointer EdgeAutoPointer
#define itkCellInheritedTypedefs(superclassArg)
virtual CellGeometry GetType(void) const override