Orfeo Toolbox  4.2
Public Types | Public Member Functions | Private Attributes | List of all members
itk::QuadEdge Class Reference

Base class for the implementation of a quad-edge data structure as proposed in "Guibas and Stolfi 1985". More...

#include <itkQuadEdge.h>

+ Inheritance diagram for itk::QuadEdge:
+ Collaboration diagram for itk::QuadEdge:

Public Types

typedef
QuadEdgeMeshConstIterator
< Self
ConstIterator
 
typedef QuadEdgeMeshIterator
< Self
Iterator
 
typedef QuadEdge Self
 

Public Member Functions

 QuadEdge ()
 
virtual ~QuadEdge ()
 
SelfGetDnext ()
 
const SelfGetDnext () const
 
SelfGetDprev ()
 
const SelfGetDprev () const
 
SelfGetInvDnext ()
 
const SelfGetInvDnext () const
 
SelfGetInvLnext ()
 
const SelfGetInvLnext () const
 
SelfGetInvOnext ()
 
const SelfGetInvOnext () const
 
SelfGetInvRnext ()
 
const SelfGetInvRnext () const
 
SelfGetInvRot ()
 
const SelfGetInvRot () const
 
SelfGetLnext ()
 
const SelfGetLnext () const
 
SelfGetLprev ()
 
const SelfGetLprev () const
 
SelfGetOnext ()
 
const SelfGetOnext () const
 
SelfGetOprev ()
 
const SelfGetOprev () const
 
unsigned int GetOrder () const
 
SelfGetRnext ()
 
const SelfGetRnext () const
 
SelfGetRot ()
 
const SelfGetRot () const
 
SelfGetRprev ()
 
const SelfGetRprev () const
 
SelfGetSym ()
 
const SelfGetSym () const
 
bool IsEdgeInOnextRing (Self *testEdge) const
 
bool IsHalfEdge () const
 
bool IsIsolated () const
 
bool IsLnextGivenSizeCyclic (const int size) const
 
 itkQEDefineIteratorMethodsMacro (Onext)
 
void SetOnext (Self *onext)
 
void SetRot (Self *rot)
 
void Splice (Self *b)
 Basic quad-edge topological method. More...
 

Private Attributes

Selfm_Onext
 
Selfm_Rot
 

Detailed Description

Base class for the implementation of a quad-edge data structure as proposed in "Guibas and Stolfi 1985".

Author
Alexandre Gouaillard, Leonardo Florez-Valencia, Eric Boix

This implementation was contributed as a paper to the Insight Journal http://hdl.handle.net/1926/306

See Also
"Accessing adjacent edges."

Definition at line 222 of file itkQuadEdge.h.

Member Typedef Documentation

Definition at line 230 of file itkQuadEdge.h.

Iterator types.

Definition at line 229 of file itkQuadEdge.h.

Hierarchy typedefs & values.

Definition at line 226 of file itkQuadEdge.h.

Constructor & Destructor Documentation

itk::QuadEdge::QuadEdge ( )

Object creation methods.

Definition at line 24 of file itkQuadEdge.cxx.

itk::QuadEdge::~QuadEdge ( )
virtual

Definition at line 32 of file itkQuadEdge.cxx.

Member Function Documentation

QuadEdge * itk::QuadEdge::GetDnext ( )

Returns next edge with same right face and same Destination. The first edge encountered when moving counter-clockwise from e (see "Accessing adjacent edges").

Definition at line 161 of file itkQuadEdge.cxx.

References GetOnext(), GetSym(), and NULL.

const QuadEdge * itk::QuadEdge::GetDnext ( ) const

Definition at line 191 of file itkQuadEdge.cxx.

References GetOnext(), GetSym(), and NULL.

QuadEdge * itk::QuadEdge::GetDprev ( )

Returns the previous edge with same Right face and same Destination. The first edge encountered when moving clockwise from e around e->Dest. (see "Accessing adjacent edges").

Definition at line 377 of file itkQuadEdge.cxx.

References GetInvRot(), GetOnext(), and NULL.

Referenced by GetInvDnext().

const QuadEdge * itk::QuadEdge::GetDprev ( ) const

Definition at line 407 of file itkQuadEdge.cxx.

References GetInvRot(), GetOnext(), and NULL.

Self* itk::QuadEdge::GetInvDnext ( )
inline

Definition at line 384 of file itkQuadEdge.h.

References GetDprev().

const Self* itk::QuadEdge::GetInvDnext ( ) const
inline

Definition at line 403 of file itkQuadEdge.h.

References GetDprev().

Self* itk::QuadEdge::GetInvLnext ( )
inline

Definition at line 382 of file itkQuadEdge.h.

References GetLprev().

const Self* itk::QuadEdge::GetInvLnext ( ) const
inline

Definition at line 401 of file itkQuadEdge.h.

References GetLprev().

Self* itk::QuadEdge::GetInvOnext ( )
inline

Definition at line 381 of file itkQuadEdge.h.

References GetOprev().

const Self* itk::QuadEdge::GetInvOnext ( ) const
inline

Definition at line 400 of file itkQuadEdge.h.

References GetOprev().

Self* itk::QuadEdge::GetInvRnext ( )
inline

Definition at line 383 of file itkQuadEdge.h.

References GetRprev().

const Self* itk::QuadEdge::GetInvRnext ( ) const
inline

Definition at line 402 of file itkQuadEdge.h.

References GetRprev().

Self* itk::QuadEdge::GetInvRot ( )
inline
const Self* itk::QuadEdge::GetInvRot ( ) const
inline

Definition at line 385 of file itkQuadEdge.h.

References GetRot(), and NULL.

QuadEdge * itk::QuadEdge::GetLnext ( )

Returns next edge with same Left face (see "Accessing adjacent edges").

Definition at line 41 of file itkQuadEdge.cxx.

References GetOnext(), GetRot(), and NULL.

Referenced by IsLnextGivenSizeCyclic().

const QuadEdge * itk::QuadEdge::GetLnext ( ) const

Definition at line 71 of file itkQuadEdge.cxx.

References GetOnext(), GetRot(), and NULL.

QuadEdge * itk::QuadEdge::GetLprev ( )

Returns previous edge with same Left face. The first edge encountered when moving clockwise from e around e->Left. (see "Accessing adjacent edges").

Definition at line 281 of file itkQuadEdge.cxx.

References GetSym(), and NULL.

Referenced by GetInvLnext().

const QuadEdge * itk::QuadEdge::GetLprev ( ) const

Definition at line 305 of file itkQuadEdge.cxx.

References GetSym(), and NULL.

Self* itk::QuadEdge::GetOnext ( )
inline
const Self* itk::QuadEdge::GetOnext ( ) const
inline

Definition at line 260 of file itkQuadEdge.h.

References m_Onext.

QuadEdge * itk::QuadEdge::GetOprev ( )

Returns previous edge with same Origin (see "Accessing adjacent edges").

Definition at line 221 of file itkQuadEdge.cxx.

References GetOnext(), GetRot(), and NULL.

Referenced by GetInvOnext(), and itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::ReorderOnextRingBeforeAddFace().

const QuadEdge * itk::QuadEdge::GetOprev ( ) const

Definition at line 251 of file itkQuadEdge.cxx.

References GetOnext(), GetRot(), and NULL.

unsigned int itk::QuadEdge::GetOrder ( ) const

Definition at line 473 of file itkQuadEdge.cxx.

References GetOnext().

QuadEdge * itk::QuadEdge::GetRnext ( )

Returns next edge with same Right face. The first edge encountered when moving counter-clockwise from e around e->Right. (see "Accessing adjacent edges").

Definition at line 101 of file itkQuadEdge.cxx.

References GetInvRot(), GetOnext(), and NULL.

const QuadEdge * itk::QuadEdge::GetRnext ( ) const

Definition at line 131 of file itkQuadEdge.cxx.

References GetInvRot(), GetOnext(), and NULL.

Self* itk::QuadEdge::GetRot ( )
inline
const Self* itk::QuadEdge::GetRot ( ) const
inline

Definition at line 261 of file itkQuadEdge.h.

References m_Rot.

QuadEdge * itk::QuadEdge::GetRprev ( )

Returns the previous edge with same Right face. The first edge encountered when moving clockwise from e around e->Right. (see "Accessing adjacent edges").

Definition at line 329 of file itkQuadEdge.cxx.

References GetOnext(), and NULL.

Referenced by GetInvRnext().

const QuadEdge * itk::QuadEdge::GetRprev ( ) const

Definition at line 353 of file itkQuadEdge.cxx.

References GetOnext(), and NULL.

Self* itk::QuadEdge::GetSym ( )
inline
const Self* itk::QuadEdge::GetSym ( ) const
inline

Definition at line 309 of file itkQuadEdge.h.

References m_Rot.

bool itk::QuadEdge::IsEdgeInOnextRing ( Self testEdge) const
bool itk::QuadEdge::IsHalfEdge ( ) const
inline

Queries.

Definition at line 406 of file itkQuadEdge.h.

References m_Onext, and m_Rot.

bool itk::QuadEdge::IsIsolated ( ) const
inline
bool itk::QuadEdge::IsLnextGivenSizeCyclic ( const int  size) const

Definition at line 459 of file itkQuadEdge.cxx.

References GetLnext().

itk::QuadEdge::itkQEDefineIteratorMethodsMacro ( Onext  )
inline

Basic iterators methods.

void itk::QuadEdge::SetOnext ( Self onext)
inline

Sub-algebra Set methods.

Definition at line 252 of file itkQuadEdge.h.

References m_Onext.

Referenced by Splice().

void itk::QuadEdge::SetRot ( Self rot)
inline

Definition at line 253 of file itkQuadEdge.h.

References m_Rot.

void itk::QuadEdge::Splice ( Self b)
inline

Basic quad-edge topological method.

This method describes all possible topological operations on an edge.

It is its own inverse. It works in two ways:

  1. If this->GetOrg() != b->GetOrg(), it slice a face in two.
  2. If this->GetOrg() == b->GetOrg(), it unifies two faces.
Warning
This class only handles of the connectivity and is not aware of the geometry that lies at the GeometricalQuadEdge level. It is strongly discouraged to use this method. Instead you should use itk::QuadEdgeMesh::Splice it's geometry aware version.

Definition at line 281 of file itkQuadEdge.h.

References GetOnext(), GetRot(), and SetOnext().

Referenced by itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::Disconnect(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::InsertAfterNextBorderEdgeWithUnsetLeft(), and itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::ReorderOnextRingBeforeAddFace().

Member Data Documentation

Self* itk::QuadEdge::m_Onext
private

Onext ring

Definition at line 415 of file itkQuadEdge.h.

Referenced by GetOnext(), IsHalfEdge(), and SetOnext().

Self* itk::QuadEdge::m_Rot
private

Rot ring

Definition at line 416 of file itkQuadEdge.h.

Referenced by GetRot(), GetSym(), IsHalfEdge(), and SetRot().


The documentation for this class was generated from the following files:

Generated at Sat Aug 30 2014 17:48:29 for Orfeo Toolbox with doxygen 1.8.3.1