Navigation: Up, Table of Contents, Bibliography, Index, Title Page

Requirements for Halfedge_base

Definition

A halfedge must store pointers for the next halfedge and its opposite halfedge. It optionally stores pointer to its incident vertex and incident facet. Type tags indicate whether these member functions are supported. Figure  reference arrow depicts the relationship between a halfedge and its incident halfedges, vertices, and facets. The is_border() predicate is mandatory, but may return always false.

Creation

Halfedge_base h;
default constructor.

Halfedge_base h ( const Halfedge&);
copy constructor.

Operations

void* h.opposite () the opposite halfedge.
const void* h.opposite () const
void* h.next () the next halfedge around the facet.
const void* h.next () const
void* h.prev () the previous halfedge around the facet.
const void* h.prev () const
void* h.vertex () the incident vertex.
const void* h.vertex () const
void* h.facet () the incident facet. If h is a border halfedge the result might be NULL or a unique facet representing this open region or a unique facet representing all open regions at once.
const void* h.facet () const

bool h.is_border () const
is true if h is a border halfedge.

void h.set_next ( void* next)
void h.set_prev ( void* prev)
void h.set_opposite ( void* h)
void h.set_vertex ( void* v)
void h.set_facet ( void* f)
if f == NULL h becomes a border edge.

Types for Tagging Optional Features

The following types are equal to either Tag_true or Tag_false, depending on whether the named member function is supported or not.

Halfedge_base::Supports_halfedge_prev
prev().

Halfedge_base::Supports_halfedge_vertex
vertex().

Halfedge_base::Supports_halfedge_facet
facet().


Next: Class declaration of Facet_base
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
The GALIA project. Jan 18, 2000.