18#ifndef itkQuadEdgeMeshFrontIterator_h
19#define itkQuadEdgeMeshFrontIterator_h
24#define itkQEDefineFrontIteratorMethodsMacro(MeshTypeArg) \
28 using QEDualType = typename MeshTypeArg::QEDual; \
29 using QEPrimalType = typename MeshTypeArg::QEPrimal; \
30 using FrontDualIterator = QuadEdgeMeshFrontIterator<MeshTypeArg, QEDualType>; \
31 using ConstFrontDualIterator = QuadEdgeMeshConstFrontIterator<MeshTypeArg, QEDualType>; \
32 using FrontIterator = QuadEdgeMeshFrontIterator<MeshTypeArg, QEPrimalType>; \
33 using ConstFrontIterator = QuadEdgeMeshConstFrontIterator<MeshTypeArg, QEPrimalType>; \
35 virtual FrontIterator BeginFront(QEPrimalType * seed = nullptr) { return (FrontIterator(this, true, seed)); } \
37 virtual ConstFrontIterator BeginFront(QEPrimalType * seed) const { return (ConstFrontIterator(this, true, seed)); } \
39 virtual FrontIterator EndFront() { return (FrontIterator(this, false)); } \
41 virtual ConstFrontIterator EndFront() const { return (ConstFrontIterator(this, false)); } \
43 virtual FrontDualIterator BeginDualFront(QEDualType * seed = (QEDualType *)0) \
45 return (FrontDualIterator(this, true, seed)); \
48 virtual ConstFrontDualIterator BeginDualFront(QEDualType * seed) const \
50 return (ConstFrontDualIterator(this, true, seed)); \
53 virtual FrontDualIterator EndDualFront() { return (FrontDualIterator(this, false)); } \
55 virtual ConstFrontDualIterator EndDualFront() const { return (ConstFrontDualIterator(this, false)); } \
57 ITK_MACROEND_NOOP_STATEMENT
74template <
typename TMesh,
typename TQE>
88#ifndef ITK_FUTURE_LEGACY_REMOVE
89 using CoordRepType ITK_FUTURE_DEPRECATED(
90 "ITK 6 discourages using `CoordRepType`. Please use `CoordinateType` instead!") =
CoordinateType;
188 return (this->
operator++());
239template <
typename TMesh,
typename TQE>
271template <
typename TMesh,
typename TQE =
typename TMesh::QEType>
286 bool itkNotUsed(start) =
true,
308#include "itkQuadEdgeMeshFrontIterator.hxx"
A wrapper of the STL "map" container.
SmartPointer< Self > Pointer
const QEType * Value() const
QuadEdgeMeshConstFrontIterator(const MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=(QEType *) nullptr)
~QuadEdgeMeshConstFrontIterator() override=default
QuadEdgeMeshConstFrontIterator Self
Self & operator=(const NoConstType &r)
QuadEdgeMeshFrontBaseIterator< TMesh, TQE > Superclass
QuadEdgeMeshFrontIterator< MeshType, QEType > NoConstType
bool operator<(const FrontAtom &r) const
FrontAtom & operator=(const FrontAtom &r)
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(FrontAtom)
virtual ~FrontAtom()=default
FrontAtom(QEType *e=(QEType *) 0, const CoordinateType c=0)
bool operator==(const FrontAtom &r) const
typename FrontType::iterator FrontTypeIterator
typename MeshType::CoordinateType CoordinateType
IsVisitedPointerType m_IsPointVisited
std::list< FrontAtom > FrontType
MapContainer< QEOriginType, bool > IsVisitedContainerType
typename IsVisitedContainerType::Pointer IsVisitedPointerType
QuadEdgeMeshFrontBaseIterator Self
QEType * FindDefaultSeed()
typename QEType::OriginRefType QEOriginType
ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(Self)
bool operator==(const Self &r) const
virtual CoordinateType GetCost(QEType *edge)
MeshType * GetMesh() const
virtual ~QuadEdgeMeshFrontBaseIterator()
Self & operator=(const Self &r)
FrontType * FrontTypePointer
QuadEdgeMeshFrontBaseIterator(MeshType *mesh=nullptr, bool start=true, QEType *seed=nullptr)
Non const quad edge front iterator.
QuadEdgeMeshFrontIterator(MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=nullptr)
QuadEdgeMeshFrontIterator Self
QuadEdgeMeshFrontBaseIterator< TMesh, TQE > Superclass
~QuadEdgeMeshFrontIterator() override=default
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....