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.

Arr_halfedge_direction e.direction () returns the direction of the halfedge: ARR_LEFT_TO_RIGHT if e's source vertex is lexicographically smaller than it target (so the halfedge is directed from left to right), and ARR_RIGHT_TO_LEFT 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.