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

Requirements for a Halfedge

Definition

A halfedge must store a pointer to the next halfedge and a pointer to its opposite halfedge. It optionally stores pointers 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. A halfedge is an oriented edge between two vertices. It is always paired with its counterpart that has the opposite direction. They are mutually linked with the opposite() member function.

Types

Halfedge::Vertex
corresponding vertex type.

Halfedge::Halfedge
self.

Halfedge::Facet
corresponding facet type.

Operations

Halfedge* h.opposite () the opposite halfedge.
const Halfedge* h.opposite () const
Halfedge* h.next () the next halfedge around the facet.
const Halfedge* h.next () const
Halfedge* h.prev () the previous halfedge around the facet.
const Halfedge* h.prev () const
Vertex* h.vertex () the incident vertex.
const Vertex* h.vertex () const
Facet* h.facet () the incident facet. If h is a border halfedge the result might be NULL or a unique facet representing this hole or a unique facet representing all holes.
const Facet* h.facet () const
bool h.is_border () const
is true if h is a border halfedge.
void h.set_next ( Halfedge* next)
void h.set_prev ( Halfedge* prev)
void h.set_vertex ( Vertex* v)
void h.set_facet ( Facet* f)
if f == NULL h becomes a border edge.

Types for Tagging Optional Features

The nested types below are either equal to CGAL_Tag_true or CGAL_Tag_false, depending on whether the named member function is supported or not.

Halfedge::Supports_halfedge_prev
prev().

Halfedge::Supports_halfedge_vertex
vertex().

Halfedge::Supports_halfedge_facet
facet().


Next: Class declaration of Facet
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
The CGAL Project. 22 January, 1999.