18 #ifndef itkQuadEdgeMeshFrontIterator_h 19 #define itkQuadEdgeMeshFrontIterator_h 24 #define itkQEDefineFrontIteratorMethodsMacro(MeshTypeArg) \ 28 typedef typename MeshTypeArg::QEDual QEDualType; \ 29 typedef typename MeshTypeArg::QEPrimal QEPrimalType; \ 30 typedef QuadEdgeMeshFrontIterator< MeshTypeArg, \ 31 QEDualType > FrontDualIterator; \ 32 typedef QuadEdgeMeshConstFrontIterator< MeshTypeArg, \ 34 ConstFrontDualIterator; \ 35 typedef QuadEdgeMeshFrontIterator< MeshTypeArg, \ 36 QEPrimalType > FrontIterator; \ 37 typedef QuadEdgeMeshConstFrontIterator< MeshTypeArg, \ 41 virtual FrontIterator BeginFront(QEPrimalType * seed = (QEPrimalType *)0) \ 43 return ( FrontIterator(this, true, seed) ); \ 46 virtual ConstFrontIterator BeginFront(QEPrimalType * seed) const \ 47 { return ( ConstFrontIterator(this, true, seed) ); } \ 49 virtual FrontIterator EndFront() \ 51 return ( FrontIterator(this, false) ); \ 54 virtual ConstFrontIterator EndFront() const \ 55 { return ( ConstFrontIterator(this, false) ); } \ 57 virtual FrontDualIterator BeginDualFront(QEDualType * seed = (QEDualType *)0) \ 59 return ( FrontDualIterator(this, true, seed) ); \ 62 virtual ConstFrontDualIterator BeginDualFront(QEDualType * seed) const \ 63 { return ( ConstFrontDualIterator(this, true, seed) ); } \ 65 virtual FrontDualIterator EndDualFront() \ 67 return ( FrontDualIterator(this, false) ); \ 70 virtual ConstFrontDualIterator EndDualFront() const \ 71 { return ( ConstFrontDualIterator(this, false) ); } 88 template<
typename TMesh,
typename TQE >
117 FrontAtom(QEType *
e = (QEType *)0,
const CoordRepType c = 0):
153 QEType *seed = (QEType *)0);
184 return ( !( this->
operator==(r) ) );
189 return ( !( this->
operator==(r) ) );
207 virtual CoordRepType
GetCost(QEType *edge){ (void)edge;
return ( 1 ); }
235 template<
typename TMesh,
typename TQE >
251 QEType *seed = (QEType *)0):
252 Superclass(mesh, start, seed) {}
264 template<
typename TMesh,
typename TQE =
typename TMesh::QEType >
281 QEType *seed = (QEType *)0)
302 #include "itkQuadEdgeMeshFrontIterator.hxx" bool operator!=(const Self &r) const
bool operator!=(const FrontAtom &r) const
bool operator==(const FrontAtom &r) const
Self & operator=(const NoConstType &r)
IsVisitedContainerType::Pointer IsVisitedPointerType
Superclass::MeshType MeshType
A wrapper of the STL "map" container.
MapContainer< QEOriginType, bool > IsVisitedContainerType
Self & operator=(const Self &r)
MeshType * GetMesh() const
bool operator==(const Self &r) const
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
const QEType * Value() const
QuadEdgeMeshFrontIterator Self
QuadEdgeMeshConstFrontIterator Self
IsVisitedPointerType m_IsPointVisited
bool operator<(const FrontAtom &r) const
FrontAtom(QEType *e=(QEType *) 0, const CoordRepType c=0)
QuadEdgeMeshFrontIterator< MeshType, QEType > NoConstType
Front iterator on Mesh class.
Superclass::QEType QEType
Const quad edge mesh front iterator.
QuadEdgeMeshConstFrontIterator(const MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=(QEType *) 0)
static ITK_CONSTEXPR double e
The base of the natural logarithm or Euler's number
QuadEdgeMeshFrontBaseIterator< TMesh, TQE > Superclass
MeshType::CoordRepType CoordRepType
QuadEdgeMeshFrontBaseIterator Self
Superclass::MeshType MeshType
QEType * FindDefaultSeed()
virtual ~QuadEdgeMeshFrontIterator()
Superclass::QEType QEType
QuadEdgeMeshFrontIterator(MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=(QEType *) 0)
QuadEdgeMeshFrontBaseIterator(MeshType *mesh=(MeshType *) 0, bool start=true, QEType *seed=(QEType *) 0)
Atomic information associated to each edge of the front.
QEType::OriginRefType QEOriginType
QuadEdgeMeshFrontBaseIterator< TMesh, TQE > Superclass
Non const quad edge front iterator.
virtual ~QuadEdgeMeshFrontBaseIterator()
FrontAtom & operator=(const FrontAtom &r)
virtual CoordRepType GetCost(QEType *edge)
FrontType * FrontTypePointer
FrontType::iterator FrontTypeIterator
virtual ~QuadEdgeMeshConstFrontIterator()
std::list< FrontAtom > FrontType