Developer Documentation
RAVL, Recognition And Vision Library
USER HOME PAGE CLASS LIST CONTENTS
Ravl - 3D - Half Edge Mesh - HEMeshEdgeBodyC
 

  PUBLIC
HEMeshEdgeBodyC::Next(void)
HEMeshEdgeBodyC::Prev(void)
HEMeshEdgeBodyC::Next(void) const
HEMeshEdgeBodyC::Prev(void) const
HEMeshEdgeBodyC::Pair(void)
HEMeshEdgeBodyC::Pair(void) const
HEMeshEdgeBodyC::HasPair(void) const
HEMeshEdgeBodyC::SetPair(HEMeshEdgeBodyC &)
HEMeshEdgeBodyC::SetFace(HEMeshFaceBodyC &)
HEMeshEdgeBodyC::Face(void)
HEMeshEdgeBodyC::LinkAfter(HEMeshEdgeBodyC &)
HEMeshEdgeBodyC::LinkBefore(HEMeshEdgeBodyC &)
HEMeshEdgeBodyC::CutPaste(HEMeshEdgeBodyC &,HEMeshEdgeBodyC &)
HEMeshEdgeBodyC::Vertex(void) const
HEMeshEdgeBodyC::SourceVertex(void) const
HEMeshEdgeBodyC::CollapseEdge(void)
HEMeshEdgeBodyC::OpenEdge(void)
HEMeshEdgeBodyC::operator ==(const HEMeshEdgeBodyC &) const
HEMeshEdgeBodyC::operator !=(const HEMeshEdgeBodyC &) const
HEMeshEdgeBodyC::HEMeshEdgeBodyC(void)
HEMeshEdgeBodyC::HEMeshEdgeBodyC(HEMeshVertexBodyC &,HEMeshFaceBodyC &)
HEMeshEdgeBodyC::RemoveHalfEdge(void)
HEMeshEdgeBodyC::CorrectVertexEdgePtr(void)
DLinkC::SetSelfPointing(void)
DLinkC::IsSelfPointing(void) const
DLinkC::Next(void) const
DLinkC::Prev(void) const
DLinkC::Next(void)
DLinkC::Prev(void)
DLinkC::Reverse(void)
DLinkC::LinkBef(DLinkC &)
DLinkC::LinkAft(DLinkC &)
DLinkC::Unlink(void)
DLinkC::CutPaste(DLinkC &,DLinkC &)

   HEMeshEdgeBodyC   
 
Half edge in mesh.
 
include "Ravl/3D/HEMeshEdge.hh"
Created:24/4/2002 
Source file:Ravl/3D/Mesh/HEMeshEdge.hh
User Level:Develop
Library:Ravl3D
In Scope:Ravl3DN

Parent Classes: Variables:
HEMeshVertexBodyC * vertex;

HEMeshFaceBodyC * face;
Adjacent face.

HEMeshEdgeBodyC * pair;
Other edge in pair, is its zero this in an edge

Methods:
HEMeshEdgeBodyC & Next()
Get next edge on face.

HEMeshEdgeBodyC & Prev()
Get previous edge on face.

const HEMeshEdgeBodyC & Next() const
Get next edge on face.

const HEMeshEdgeBodyC & Prev() const
Get previous edge on face.

HEMeshEdgeBodyC & Pair()
Edge pair.
HasPair() must have return true before using this method.

const HEMeshEdgeBodyC & Pair() const
Edge pair.
HasPair() must have return true before using this method.

bool HasPair() const
Does this edge have a pair.

void SetPair(HEMeshEdgeBodyC & edge)
Set edge pair.

void SetFace(HEMeshFaceBodyC & aface)
Set the face associated with the edge.

HEMeshFaceBodyC & Face()
Access the face the edge lies on.

void LinkAfter(HEMeshEdgeBodyC & edge)
Link 'edge' after this one.
If the edge is already in a chain it MUST be unlinked first with Unlink().

void LinkBefore(HEMeshEdgeBodyC & edge)
Link 'edge' before this one.
If the edge is already in a chain it MUST be unlinked first with Unlink().

void CutPaste(HEMeshEdgeBodyC & firstCut,HEMeshEdgeBodyC & firstNotCut)
Splice edges between firstCut, and firstNotCut into this list.
Cuts the chain of edges starting at 'firstCut' and ending at the edge before 'firstNotCut' from the chain. The rest of the chain is linked together again. The cut part is linked in after this edge.

HEMeshVertexC Vertex() const
Access vertex this edge goes to

HEMeshVertexC SourceVertex() const
Access vertex this edge comes from.

HEMeshVertexC CollapseEdge()
Collapse edge to zero length.
This deletes the edge from the mesh and merges the vertex's at either end. The remaining vertex is returned.

HEMeshFaceC OpenEdge()
Open an edge, merging the faces on either side.
This deletes the edge from the mesh and returns a handle to the new face.

NOT IMPLEMENTED


bool operator ==(const HEMeshEdgeBodyC & bod) const
Is this the same body ?

bool operator !=(const HEMeshEdgeBodyC & bod) const
Is this the same body ?

HEMeshEdgeBodyC()
Default cosntructor.
the contents are left undefined.

HEMeshEdgeBodyC(HEMeshVertexBodyC & vert,HEMeshFaceBodyC & nface)
Cosntructor.
the contents are left undefined.

void RemoveHalfEdge()
Remove this half edge.
The use must ensure that the matching half is also removed. The memory of for this edge is not free'd, so if it is no longer needed it must be done by the caller.

void CorrectVertexEdgePtr()
Correct edge's vertex pointer.
This ensures the vertex's edge pointer doesn't point to this edge. Usefull if your about to delete the edge or restructure the mesh.

#include "Ravl/DLink.hh"
void SetSelfPointing()
Set both links to point to this object.

bool IsSelfPointing() const
Returns TRUE if the next element is this element.

const DLinkC & Next() const
Returns the next element in a constant list.

const DLinkC & Prev() const
Returns the previous element in a constant list.

DLinkC & Next()
Returns the next element in a list.

DLinkC & Prev()
Returns the previous element in a list.

void Reverse()
Swap links.
Swaps the links in all chain elements exchanging meaning of "successor" and "predecessor".

DLinkC & LinkBef(DLinkC & elm)
Links 'elm' before the element.
The links of 'elm' need not to be proper links.

DLinkC & LinkAft(DLinkC & elm)
Links 'elm' after this element.
The links of 'elm' need not to be proper links.

DLinkC & Unlink()
Unlinks the list element from the list.
The predecessor and the successor of this element will be linked to each other. However, the links of this element stay unchanged. Returns this list element.

void CutPaste(DLinkC & firstCut,DLinkC & firstNotCut)
Splice list elements between firstCut, and firstNotCut into this list.
Cuts the chain of double links elements starting at 'firstCut' and ending at the element previous of 'firstNotCut' from a chain. The rest of the chain is linked together again. The cut part is linked in after this element.


Maintainer:Charles Galambos, Created: 24/4/2002, Documentation by CxxDoc: Tue Aug 13 09:59:30 2002