18 #ifndef itkQuadEdgeMeshLineCell_h
19 #define itkQuadEdgeMeshLineCell_h
38 template<
typename TCellInterface >
40 public TCellInterface,
public TCellInterface::CellTraits::QuadEdgeType
56 using CellType =
typename Superclass::CellType;
74 static constexpr
unsigned int PointDimension = Superclass::PointDimension;
75 static constexpr
unsigned int CellDimension = 2;
87 using QEType =
typename CellTraits::QuadEdgeType;
92 using QEDual =
typename QEType::DualType;
108 void SetIdent(CellIdentifier cid);
110 CellIdentifier GetIdent();
113 void Accept(CellIdentifier cellId, MultiVisitor *mv)
override;
115 CellGeometry GetType()
const override;
118 static int GetTopologyId();
120 unsigned int GetDimension()
const override;
122 unsigned int GetNumberOfPoints()
const override;
124 CellFeatureCount GetNumberOfBoundaryFeatures(
int dimension)
const override;
126 bool GetBoundaryFeature(
int dimension,
127 CellFeatureIdentifier cellId,
128 CellAutoPointer & cell)
override;
133 cell.TakeOwnership(
new Self);
134 cell->SetPointId( 0, this->GetQEGeom()->GetOrigin() );
135 cell->SetPointId( 1, this->GetQEGeom()->GetDestination() );
143 void SetPointIds(PointIdConstIterator first)
override;
145 void SetPointIds(PointIdConstIterator first,
146 PointIdConstIterator last)
override;
148 void SetPointId(
int localId, PointIdentifier pId)
override;
152 SynchronizePointsAPI();
153 return &m_PointIds[0];
158 SynchronizePointsAPI();
159 return ( &m_PointIds[1] + 1 );
164 SynchronizePointsAPI();
165 return &m_PointIds[0];
170 SynchronizePointsAPI();
171 return &m_PointIds[0];
176 SynchronizePointsAPI();
177 return ( &m_PointIds[1] + 1 );
183 m_PointIds[0] = GetQEGeom()->GetOrigin();
184 m_PointIds[1] = GetQEGeom()->GetDestination();
189 virtual void InternalSetPointIds(PointIdInternalConstIterator first);
191 virtual void InternalSetPointIds(
192 PointIdInternalConstIterator first,
193 PointIdInternalConstIterator last);
195 virtual PointIdInternalIterator InternalPointIdsBegin();
197 virtual PointIdInternalIterator InternalPointIdsEnd();
199 virtual PointIdInternalConstIterator InternalGetPointIds()
const;
201 virtual PointIdInternalConstIterator InternalPointIdsBegin()
const;
203 virtual PointIdInternalConstIterator InternalPointIdsEnd()
const;
216 #ifndef ITK_MANUAL_INSTANTIATION
217 #include "itkQuadEdgeMeshLineCell.hxx"
typename QEType::PrimalDataType PrimalDataType
typename Superclass::PointIdentifier PointIdentifier
QEType * GetQEGeom() const
typename CellTraits::QuadEdgeType QEType
typename Superclass::UsingCellsContainer UsingCellsContainer
typename QEType::OriginRefType VertexRefType
typename Superclass::CellConstAutoPointer CellConstAutoPointer
typename Superclass::CellType CellType
typename Superclass::ParametricCoordArrayType ParametricCoordArrayType
typename CellTraits::PointIdIterator PointIdIterator
typename Superclass::PointType PointType
typename CellTraits::PointIdConstIterator PointIdConstIterator
typename CellTraits::PointIdInternalConstIterator PointIdInternalConstIterator
PointIdConstIterator PointIdsEnd() const override
typename QEType::DualType QEDual
typename Superclass::CellFeatureIdentifier CellFeatureIdentifier
PointIdIterator PointIdsBegin() override
typename Superclass::CoordRepType CoordRepType
typename Superclass::CellRawPointer CellRawPointer
typename Superclass::InterpolationWeightType InterpolationWeightType
typename CellType::MultiVisitor MultiVisitor
void MakeCopy(CellAutoPointer &cell) const override
typename CellTraits::PointIdInternalIterator PointIdInternalIterator
typename Superclass::CellTraits CellTraits
TCellInterface Superclass
PointIdConstIterator PointIdsBegin() const override
typename QEType::DualOriginRefType FaceRefType
Implements an Automatic Pointer to an object.
void SynchronizePointsAPI() const
typename Superclass::CellConstRawPointer CellConstRawPointer
typename Superclass::CellIdentifier CellIdentifier
ImageBaseType::PointType PointType
typename Superclass::PointsContainer PointsContainer
PointIdConstIterator GetPointIds() const override
typename Superclass::CellFeatureIdentifier CellFeatureCount
typename Superclass::CellGeometry CellGeometry
typename Superclass::CellAutoPointer CellAutoPointer
typename Superclass::ShapeFunctionsArrayType ShapeFunctionsArrayType
CellIdentifier m_Identifier
Class that connects the QuadEdgeMesh with the Mesh.
typename QEType::DualDataType DualDataType
PointIdIterator PointIdsEnd() override
typename Superclass::PixelType PixelType