18#ifndef itkQuadEdgeMeshLineCell_h
19#define itkQuadEdgeMeshLineCell_h
40template <
typename TCellInterface>
42 :
public TCellInterface
43 ,
public TCellInterface::CellTraits::QuadEdgeType
58 using typename Superclass::PixelType;
59 using CellType =
typename Superclass::CellType;
60 using typename Superclass::CellAutoPointer;
61 using typename Superclass::CellConstAutoPointer;
62 using typename Superclass::CellRawPointer;
63 using typename Superclass::CellConstRawPointer;
65 using typename Superclass::CoordRepType;
66 using typename Superclass::InterpolationWeightType;
67 using typename Superclass::PointIdentifier;
68 using typename Superclass::CellIdentifier;
69 using typename Superclass::CellFeatureIdentifier;
72 using typename Superclass::PointsContainer;
73 using typename Superclass::UsingCellsContainer;
74 using typename Superclass::ParametricCoordArrayType;
75 using typename Superclass::ShapeFunctionsArrayType;
76 static constexpr unsigned int PointDimension = Superclass::PointDimension;
77 static constexpr unsigned int CellDimension = 2;
89 using QEType =
typename CellTraits::QuadEdgeType;
94 using QEDual =
typename QEType::DualType;
104 return (m_QuadEdgeGeom);
150 cell.TakeOwnership(
new Self);
151 cell->SetPointId(0, this->GetQEGeom()->GetOrigin());
152 cell->SetPointId(1, this->GetQEGeom()->GetDestination());
172 SynchronizePointsAPI();
173 return &m_PointIds[0];
179 SynchronizePointsAPI();
180 return (&m_PointIds[1] + 1);
186 SynchronizePointsAPI();
187 return &m_PointIds[0];
193 SynchronizePointsAPI();
194 return &m_PointIds[0];
200 SynchronizePointsAPI();
201 return (&m_PointIds[1] + 1);
208 m_PointIds[0] = GetQEGeom()->GetOrigin();
209 m_PointIds[1] = GetQEGeom()->GetDestination();
240 CellIdentifier m_Identifier{};
242 mutable PointIdentifier m_PointIds[2]{};
246#ifndef ITK_MANUAL_INSTANTIATION
247# include "itkQuadEdgeMeshLineCell.hxx"
Implements an Automatic Pointer to an object.
Class that connects the QuadEdgeMesh with the Mesh.
void SetPointIds(PointIdConstIterator first, PointIdConstIterator last) override
typename CellTraits::PointIdIterator PointIdIterator
void SetPointIds(PointIdConstIterator first) override
unsigned int GetNumberOfPoints() const override
void MakeCopy(CellAutoPointer &cell) const override
void SynchronizePointsAPI() const
static constexpr CellGeometryEnum GetTopologyId()
typename Superclass::CellTraits CellTraits
typename CellTraits::PointIdInternalIterator PointIdInternalIterator
typename QEType::DualType QEDual
typename QEType::DualDataType DualDataType
PointIdIterator PointIdsBegin() override
CellGeometryEnum GetType() const override
TCellInterface Superclass
PointIdIterator PointIdsEnd() override
unsigned int GetDimension() const override
virtual PointIdInternalConstIterator InternalPointIdsEnd() const
typename CellTraits::QuadEdgeType QEType
typename Superclass::CellType CellType
PointIdConstIterator PointIdsEnd() const override
virtual PointIdInternalIterator InternalPointIdsEnd()
void SetPointId(int localId, PointIdentifier pId) override
virtual void InternalSetPointIds(PointIdInternalConstIterator first)
typename Superclass::CellFeatureIdentifier CellFeatureCount
PointIdConstIterator PointIdsBegin() const override
virtual PointIdInternalIterator InternalPointIdsBegin()
CellFeatureCount GetNumberOfBoundaryFeatures(int dimension) const override
typename QEType::PrimalDataType PrimalDataType
QEType * GetQEGeom() const
CellIdentifier GetIdent()
typename CellTraits::PointIdConstIterator PointIdConstIterator
bool GetBoundaryFeature(int dimension, CellFeatureIdentifier cellId, CellAutoPointer &cell) override
virtual PointIdInternalConstIterator InternalGetPointIds() const
typename QEType::DualOriginRefType FaceRefType
typename CellType::MultiVisitor MultiVisitor
virtual void InternalSetPointIds(PointIdInternalConstIterator first, PointIdInternalConstIterator last)
PointIdConstIterator GetPointIds() const override
typename QEType::OriginRefType VertexRefType
void SetIdent(CellIdentifier cid)
typename CellTraits::PointIdInternalConstIterator PointIdInternalConstIterator
void Accept(CellIdentifier cellId, MultiVisitor *mv) override
virtual PointIdInternalConstIterator InternalPointIdsBegin() const
~QuadEdgeMeshLineCell() override
ImageBaseType::PointType PointType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....