CGAL 4.7 - 2D Arrangements: CGAL::Arrangement_2< Traits, Dcel >::Halfedge Class Reference

\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.7 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Arrangement_2< Traits, Dcel >::Halfedge Class Reference
DCEL

`#include <CGAL/Arrangement_2.h>`

## Inherits from

Halfedge.

## Definition

An object \( e\) of the class `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 left. 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 stored in doubly-connected lists and form chains. These chains define the inner and outer boundaries of connected components.

## Creation

| Halfedge ()
| default constructor.

## Access Functions

All non-const methods listed below also have `const` counterparts that return constant handles, iterators or circulators:
bool | is_fictitious () const
| returns whether the halfedge is fictitious (i.e., connects two vertices at infinity and is not associated with a valid curve).
Vertex_handle | source ()
| returns a handle for the source vertex of `e`.
Vertex_handle | target ()
| returns a handle for the target vertex of `e`.
Arr_halfedge_direction | direction () const

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 | face ()
| returns the face that `e` is incident to (The face lies to the left of `e`).
Halfedge_handle | twin ()
| returns the twin halfedge.
Halfedge_handle | prev ()
| returns `e`'s predecessor in the connected component it belongs to.
Halfedge_handle | next ()
| returns `e`'s successor in the connected component it belongs to.
Ccb_halfedge_circulator | ccb ()
| returns a circulator that allows traversing the halfedges of the connected component boundary (CCB) that contains `e`. More...
const Traits::X_monotone_curve_2 & | curve () const
| returns the \( x\)-monotone curve associated with `e`. More...

## Member Function Documentation

template<typename Traits , typename Dcel >

Ccb_halfedge_circulator CGAL::Arrangement_2< Traits, Dcel >::Halfedge::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`.

template<typename Traits , typename Dcel >

const Traits::X_monotone_curve_2& CGAL::Arrangement_2< Traits, Dcel >::Halfedge::curve | ( | ) |  | const

returns the \( x\)-monotone curve associated with `e`.

Precondition
  `e` is not a fictitious halfedge.