Orfeo Toolbox  3.16
Public Types | Public Member Functions | Private Attributes
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:

List of all members.

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.

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://insight-journal.org/midas/handle.php?handle=1926/306

See also:
"Accessing adjacent edges."

Definition at line 223 of file itkQuadEdge.h.


Member Typedef Documentation

Definition at line 231 of file itkQuadEdge.h.

Iterator types.

Definition at line 230 of file itkQuadEdge.h.

Hierarchy typedefs & values.

Reimplemented in itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >.

Definition at line 227 of file itkQuadEdge.h.


Constructor & Destructor Documentation

itk::QuadEdge::QuadEdge ( )

Object creation methods.

Definition at line 26 of file itkQuadEdge.cxx.

References NULL.

itk::QuadEdge::~QuadEdge ( )
virtual

Definition at line 35 of file itkQuadEdge.cxx.

References NULL.


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 168 of file itkQuadEdge.cxx.

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

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

Definition at line 199 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 392 of file itkQuadEdge.cxx.

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

Referenced by GetInvDnext().

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

Definition at line 423 of file itkQuadEdge.cxx.

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

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

Definition at line 377 of file itkQuadEdge.h.

References GetDprev().

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

Definition at line 395 of file itkQuadEdge.h.

References GetDprev().

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

Definition at line 375 of file itkQuadEdge.h.

References GetLprev().

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

Definition at line 393 of file itkQuadEdge.h.

References GetLprev().

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

Definition at line 374 of file itkQuadEdge.h.

References GetOprev().

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

Definition at line 392 of file itkQuadEdge.h.

References GetOprev().

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

Definition at line 376 of file itkQuadEdge.h.

References GetRprev().

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

Definition at line 394 of file itkQuadEdge.h.

References GetRprev().

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

Definition at line 378 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 44 of file itkQuadEdge.cxx.

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

Referenced by IsLnextGivenSizeCyclic().

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

Definition at line 75 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 292 of file itkQuadEdge.cxx.

References GetSym(), and NULL.

Referenced by GetInvLnext().

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

Definition at line 317 of file itkQuadEdge.cxx.

References GetSym(), and NULL.

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

Definition at line 261 of file itkQuadEdge.h.

References m_Onext.

QuadEdge * itk::QuadEdge::GetOprev ( )

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

Definition at line 230 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 261 of file itkQuadEdge.cxx.

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

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

Definition at line 488 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 106 of file itkQuadEdge.cxx.

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

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

Definition at line 137 of file itkQuadEdge.cxx.

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

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

Definition at line 262 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 342 of file itkQuadEdge.cxx.

References GetOnext(), and NULL.

Referenced by GetInvRnext().

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

Definition at line 367 of file itkQuadEdge.cxx.

References GetOnext(), and NULL.

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

Definition at line 310 of file itkQuadEdge.h.

References m_Rot.

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

Definition at line 452 of file itkQuadEdge.cxx.

References NULL, and itk::QuadEdgeMeshConstIterator< TQuadEdge >::Value().

bool itk::QuadEdge::IsHalfEdge ( ) const
inline

Queries.

Definition at line 398 of file itkQuadEdge.h.

References m_Onext, m_Rot, and NULL.

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

Definition at line 475 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 253 of file itkQuadEdge.h.

References m_Onext.

Referenced by Splice().

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

Definition at line 254 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 282 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 405 of file itkQuadEdge.h.

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

Self* itk::QuadEdge::m_Rot
private

Rot ring

Definition at line 406 of file itkQuadEdge.h.

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


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

Generated at Sun Feb 3 2013 02:21:35 for Orfeo Toolbox with doxygen 1.8.1.1