Base class for the implementation of a quad-edge data structure as proposed in "Guibas and Stolfi 1985". More...
#include <itkQuadEdge.h>
Public Types | |
typedef QuadEdgeMeshConstIterator < Self > | ConstIterator |
typedef QuadEdgeMeshIterator < Self > | Iterator |
typedef QuadEdge | Self |
Public Member Functions | |
itkQEDefineIteratorMethodsMacro (Onext) | |
QuadEdge () | |
virtual | ~QuadEdge () |
void | SetOnext (Self *onext) |
void | SetRot (Self *rot) |
Self * | GetOnext () |
Self * | GetRot () |
const Self * | GetOnext () const |
const Self * | GetRot () const |
void | Splice (Self *b) |
Self * | GetSym () |
const Self * | GetSym () const |
Self * | GetLnext () |
const Self * | GetLnext () const |
Self * | GetRnext () |
const Self * | GetRnext () const |
Self * | GetDnext () |
const Self * | GetDnext () const |
Self * | GetOprev () |
const Self * | GetOprev () const |
Self * | GetLprev () |
const Self * | GetLprev () const |
Self * | GetRprev () |
const Self * | GetRprev () const |
Self * | GetDprev () |
const Self * | GetDprev () const |
Self * | GetInvRot () |
Self * | GetInvOnext () |
Self * | GetInvLnext () |
Self * | GetInvRnext () |
Self * | GetInvDnext () |
const Self * | GetInvRot () const |
const Self * | GetInvOnext () const |
const Self * | GetInvLnext () const |
const Self * | GetInvRnext () const |
const Self * | GetInvDnext () const |
bool | IsHalfEdge () const |
bool | IsIsolated () const |
bool | IsEdgeInOnextRing (Self *testEdge) const |
bool | IsLnextGivenSizeCyclic (const int size) const |
unsigned int | GetOrder () const |
Base class for the implementation of a quad-edge data structure as proposed in "Guibas and Stolfi 1985".
This implementation was contributed as a paper to the Insight Journal http://insight-journal.org/midas/handle.php?handle=1926/306
Definition at line 224 of file itkQuadEdge.h.
Definition at line 232 of file itkQuadEdge.h.
typedef QuadEdgeMeshIterator< Self > itk::QuadEdge::Iterator |
Iterator types.
Definition at line 231 of file itkQuadEdge.h.
typedef QuadEdge itk::QuadEdge::Self |
Hierarchy typedefs & values.
Reimplemented in itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >.
Definition at line 228 of file itkQuadEdge.h.
itk::QuadEdge::QuadEdge | ( | ) |
Object creation methods.
virtual itk::QuadEdge::~QuadEdge | ( | ) | [virtual] |
Object creation methods.
Self* 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").
const Self* itk::QuadEdge::GetDnext | ( | ) | const |
Returns next edge with same right face and same Destination. The first edge encountered when moving counter-clockwise from e (see "Accessing adjacent edges").
Self* 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").
Referenced by GetInvDnext().
const Self* itk::QuadEdge::GetDprev | ( | ) | const |
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").
const Self* itk::QuadEdge::GetInvDnext | ( | ) | const [inline] |
Self* itk::QuadEdge::GetInvDnext | ( | ) | [inline] |
const Self* itk::QuadEdge::GetInvLnext | ( | ) | const [inline] |
Self* itk::QuadEdge::GetInvLnext | ( | ) | [inline] |
Self* itk::QuadEdge::GetInvOnext | ( | ) | [inline] |
const Self* itk::QuadEdge::GetInvOnext | ( | ) | const [inline] |
const Self* itk::QuadEdge::GetInvRnext | ( | ) | const [inline] |
Self* itk::QuadEdge::GetInvRnext | ( | ) | [inline] |
Self* itk::QuadEdge::GetInvRot | ( | ) | [inline] |
Inverse operators
Definition at line 374 of file itkQuadEdge.h.
References GetRot().
Referenced by itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GetLeft(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::SetLeft(), and itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::UnsetLeft().
const Self* itk::QuadEdge::GetInvRot | ( | ) | const [inline] |
Self* itk::QuadEdge::GetLnext | ( | ) |
Returns next edge with same Left face (see "Accessing adjacent edges").
const Self* itk::QuadEdge::GetLnext | ( | ) | const |
Returns next edge with same Left face (see "Accessing adjacent edges").
Self* 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").
Referenced by GetInvLnext().
const Self* itk::QuadEdge::GetLprev | ( | ) | const |
Returns previous edge with same Left face. The first edge encountered when moving clockwise from e around e->Left. (see "Accessing adjacent edges").
Self* itk::QuadEdge::GetOnext | ( | ) | [inline] |
Sub-algebra Get methods. Returns edge with same Origin (see "Accessing adjacent edges").
Definition at line 263 of file itkQuadEdge.h.
Referenced by IsIsolated(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsOriginDisconnected(), and Splice().
const Self* itk::QuadEdge::GetOnext | ( | ) | const [inline] |
Sub-algebra Get methods. Returns edge with same Origin (see "Accessing adjacent edges").
Definition at line 265 of file itkQuadEdge.h.
Self* itk::QuadEdge::GetOprev | ( | ) |
Returns previous edge with same Origin (see "Accessing adjacent edges").
Referenced by GetInvOnext().
const Self* itk::QuadEdge::GetOprev | ( | ) | const |
Returns previous edge with same Origin (see "Accessing adjacent edges").
unsigned int itk::QuadEdge::GetOrder | ( | ) | const |
Queries.
Self* 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").
const Self* itk::QuadEdge::GetRnext | ( | ) | const |
Returns next edge with same Right face. The first edge encountered when moving counter-clockwise from e around e->Right. (see "Accessing adjacent edges").
Self* itk::QuadEdge::GetRot | ( | ) | [inline] |
Sub-algebra Get methods. Returns edge with same Origin (see "Accessing adjacent edges").
Definition at line 264 of file itkQuadEdge.h.
Referenced by itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GetDualData(), GetInvRot(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GetRight(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsDualDataSet(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::SetDualData(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::SetRight(), Splice(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::UnsetDualData(), and itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::UnsetRight().
const Self* itk::QuadEdge::GetRot | ( | ) | const [inline] |
Sub-algebra Get methods. Returns edge with same Origin (see "Accessing adjacent edges").
Definition at line 266 of file itkQuadEdge.h.
const Self* itk::QuadEdge::GetRprev | ( | ) | const |
Returns the previous edge with same Right face. The first edge encountered when moving clockwise from e around e->Right. (see "Accessing adjacent edges").
Self* 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").
Referenced by GetInvRnext().
Self* itk::QuadEdge::GetSym | ( | ) | [inline] |
Returns the symetric edge (see "Accessing adjacent edges").
Definition at line 308 of file itkQuadEdge.h.
Referenced by itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::GetDestination(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::IsDestinationDisconnected(), itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::SetDestination(), and itk::GeometricalQuadEdge< TVRef, TFRef, TPrimalData, TDualData, PrimalDual >::UnsetDestination().
const Self* itk::QuadEdge::GetSym | ( | ) | const [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.
Definition at line 316 of file itkQuadEdge.h.
bool itk::QuadEdge::IsEdgeInOnextRing | ( | Self * | testEdge | ) | const |
Queries.
bool itk::QuadEdge::IsHalfEdge | ( | ) | const [inline] |
bool itk::QuadEdge::IsIsolated | ( | ) | const [inline] |
bool itk::QuadEdge::IsLnextGivenSizeCyclic | ( | const int | size | ) | const |
Queries.
itk::QuadEdge::itkQEDefineIteratorMethodsMacro | ( | Onext | ) | [inline] |
Basic iterators methods.
void itk::QuadEdge::SetOnext | ( | Self * | onext | ) | [inline] |
void itk::QuadEdge::SetRot | ( | Self * | rot | ) | [inline] |
Sub-algebra Set methods.
Definition at line 257 of file itkQuadEdge.h.
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.
Definition at line 287 of file itkQuadEdge.h.
References GetOnext(), GetRot(), and SetOnext().