|
ITK
6.0.0
Insight Toolkit
|
Go to the documentation of this file.
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
74 template <
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;
122 return (m_Edge == r.
m_Edge);
126 ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(
FrontAtom);
131 return (m_Cost < r.
m_Cost);
180 ITK_UNEQUAL_OPERATOR_MEMBER_FUNCTION(
Self);
188 return (this->
operator++());
207 virtual CoordinateType
239 template <
typename TMesh,
typename TQE>
259 return (this->m_CurrentEdge);
270 template <
typename TMesh,
typename TQE =
typename TMesh::QEType>
285 bool itkNotUsed(start) =
true,
302 return (this->m_CurrentEdge);
307 #include "itkQuadEdgeMeshFrontIterator.hxx"
virtual CoordinateType GetCost(QEType *)
SmartPointer< Self > Pointer
FrontAtom(QEType *e=(QEType *) 0, const CoordinateType c=0)
FrontType * FrontTypePointer
bool operator==(const Self &r) const
IsVisitedPointerType m_IsPointVisited
bool operator==(const FrontAtom &r) const
bool operator<(const Index< VDimension > &one, const Index< VDimension > &two)
Atomic information associated to each edge of the front.
QuadEdgeMeshConstFrontIterator(const MeshType *=(MeshType *) 0, bool=true, QEType *=(QEType *) nullptr)
std::list< FrontAtom > FrontType
MeshType * GetMesh() const
typename MeshType::CoordinateType CoordinateType
A wrapper of the STL "map" container.
typename IsVisitedContainerType::Pointer IsVisitedPointerType
Front iterator on Mesh class.
Non const quad edge front iterator.
FrontAtom & operator=(const FrontAtom &r)
QuadEdgeMeshFrontIterator(MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=nullptr)
Self & operator=(const Self &r)
const QEType * Value() const
Const quad edge mesh front iterator.
typename FrontType::iterator FrontTypeIterator
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
typename QEType::OriginRefType QEOriginType
static constexpr double e
Self & operator=(const NoConstType &r)