An object e of the class Arrangement_2<Traits,Dcel>::Halfedge represents a halfedge in the arrangement. A halfedge is directed from its source vertex to its target vertex, and has an incident face lying to its right. Each halfedge has a twin halfedge directed in the opposite direction, where the pair of twin halfedges form together an arrangement edge, that is - a 1-dimensional cell, associated with planar x-monotone curve.

Halfedges are sotred in doubly-connected lists and form chains. These chains define the inner and outer boundaries of connceted components.

Inherits From

typename Dcel::Halfedge


Arrangement_2<Traits,Dcel>::Halfedge e;
default constructor.

Access Functions

All non-const methods listed below also have const counterparts that return constant handles, iterators or circulators:

bool e.is_fictitious () returns whether the halfedge is fictitious (i.e., connects two vertices at infinity and is not associated with a valid curve).

Vertex_handle e.source () returns a handle for the source vertex of e.
Vertex_handle () returns a handle for the target vertex of e.

bool e.source_at_infinity () returns whether the source vertex of e lies at infinity.
bool e.target_at_infinity () returns whether the target vertex of e lies at infinity.

Comparison_result e.direction () returns the direction of the halfedge: SMALLER if e's source vertex is lexicographically smaller than it target (so the halfedge is directed from left to right), and LARGER if it is lexicographically larger than the target (so the halfedge is directed from right to left).

Face_handle e.face () returns the face that e is incident to (The face lies to the left of e).

Halfedge_handle e.twin () returns the twin halfedge.

Halfedge_handle e.prev () returns e's predecessor in the connected component it belongs to.
Halfedge_handle () returns e's successor in the connected component it belongs to.

Ccb_halfedge_circulator e.ccb () returns a circulator that allows traversing the halfedges of the connected component boundary (CCB) that contains e. The circulator is initialized to point to e.

typename Traits::X_monotone_curve_2
e.curve () returns the x-monotone curve associated with e.
Precondition: e is not a fictitious halfedge.