18#ifndef itkQuadEdgeMeshPolygonCell_h
19#define itkQuadEdgeMeshPolygonCell_h
38template <
typename TCellInterface>
54 using typename Superclass::PixelType;
55 using CellType =
typename Superclass::CellType;
56 using typename Superclass::CellAutoPointer;
57 using typename Superclass::CellConstAutoPointer;
58 using typename Superclass::CellRawPointer;
59 using typename Superclass::CellConstRawPointer;
61 using typename Superclass::CoordinateType;
62 using typename Superclass::InterpolationWeightType;
63 using typename Superclass::PointIdentifier;
64 using typename Superclass::CellIdentifier;
65 using typename Superclass::CellFeatureIdentifier;
67 using typename Superclass::PointType;
68 using typename Superclass::PointsContainer;
69 using typename Superclass::UsingCellsContainer;
70 using typename Superclass::ParametricCoordArrayType;
71 using typename Superclass::ShapeFunctionsArrayType;
93 using QEDual =
typename QuadEdgeType::DualType;
142 return (CellGeometryEnum::POLYGON_CELL);
149 return CellGeometryEnum::POLYGON_CELL;
172 auto * newPolygonCell =
new Self(numberOfPoints);
175 cell.TakeOwnership(newPolygonCell);
178 PointIdentifier i = 0;
185 newPolygonCell->SetPointId(i, it.Value()->GetOrigin());
202 virtual PointIdentifier
292 m_PointIds.push_back(it.Value()->GetOrigin());
314#ifndef ITK_MANUAL_INSTANTIATION
315# include "itkQuadEdgeMeshPolygonCell.hxx"
Implements an Automatic Pointer to an object.
Class that connects the QuadEdgeMesh with the Mesh.
QuadEdgeMeshPolygonCell(PointIdentifier nPoints=0)
const Self * ConstRawPointer
void MakePointIds() const
PointIdConstIterator PointIdsEnd() const override
void SetPointId(int localId, PointIdentifier pId) override
CellIdentifier GetIdent()
void MakeCopy(CellAutoPointer &cell) const override
typename CellTraits::QuadEdgeType QuadEdgeType
virtual PointIdentifier GetPointId(int localId) const
void SetEdgeRingEntry(QuadEdgeType *entry)
static constexpr unsigned int PointDimension
typename QuadEdgeType::DualType QEDual
AutoPointer< const Self > ConstSelfAutoPointer
QuadEdgeMeshPolygonCell Self
virtual PointIdInternalConstIterator InternalPointIdsBegin() const
QuadEdgeType * GetEdgeRingEntry() const
typename CellTraits::PointIdInternalConstIterator PointIdInternalConstIterator
typename CellTraits::PointIdInternalIterator PointIdInternalIterator
void Accept(CellIdentifier cellId, MultiVisitor *mv) override
typename CellType::MultiVisitor MultiVisitor
std::vector< PointIdentifier > PointIDListType
typename Superclass::CellType CellType
virtual PointIdInternalConstIterator InternalPointIdsEnd() const
QuadEdgeType * m_EdgeRingEntry
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier cellId, CellAutoPointer &cell) override
PointIdConstIterator PointIdsBegin() const override
QuadEdgeMeshPolygonCell(QuadEdgeType *e)
virtual PointIdInternalIterator InternalPointIdsEnd()
typename QuadEdgeType::DualOriginRefType FaceRefType
typename Superclass::CellTraits CellTraits
typename QuadEdgeType::PrimalDataType PrimalDataType
typename QuadEdgeType::DualDataType DualDataType
void SetIdent(CellIdentifier cid)
PointIdIterator PointIdsEnd() override
typename CellTraits::PointIdIterator PointIdIterator
typename CellTraits::PointIdConstIterator PointIdConstIterator
AutoPointer< Self > SelfAutoPointer
static constexpr unsigned int CellDimension
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
PointIdIterator PointIdsBegin() override
PointIDListType m_PointIds
typename QuadEdgeType::OriginRefType VertexRefType
unsigned int GetNumberOfPoints() const override
virtual PointIdInternalConstIterator InternalGetPointIds() const
QuadEdgeMeshLineCell< CellType > EdgeCellType
CellGeometryEnum GetType() const override
virtual void InternalSetPointIds(PointIdInternalConstIterator first)
unsigned int GetDimension() const override
virtual void InternalSetPointIds(PointIdInternalConstIterator first, PointIdInternalConstIterator last)
std::vector< EdgeCellType * > EdgeCellListType
virtual PointIdInternalIterator InternalPointIdsBegin()
EdgeCellListType m_EdgeCellList
void SetPointIds(PointIdConstIterator first) override
typename Superclass::CellFeatureIdentifier CellFeatureCount
~QuadEdgeMeshPolygonCell() override
static constexpr CellGeometryEnum GetTopologyId()
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
CommonEnums::CellGeometry CellGeometryEnum