CGAL 4.14 - 2D Voronoi Diagram Adaptor
CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge Class Reference

#include <CGAL/Voronoi_diagram_2.h>

## Definition

The class Halfedge is the class provided by the Voronoi_diagram_2<DG,AT,AP> class for Voronoi halfedges.

Below we present its interface.

Is Model Of:

DefaultConstructible

CopyConstructible

Assignable

EqualityComparable

LessThanComparable

CGAL::Voronoi_diagram_2<DG,AT,AP>
CGAL::Voronoi_diagram_2<DG,AT,AP>::Vertex
CGAL::Voronoi_diagram_2<DG,AT,AP>::Face
DelaunayGraph_2

## Types

typedef unspecified_type Vertex
A type for the vertices of the Voronoi diagram.

typedef unspecified_type Face
A type for the faces of the Voronoi diagram.

typedef unspecified_type Vertex_handle
Handle for the vertices of the Voronoi diagram.

typedef unspecified_type Face_handle
Handle for the faces of the Voronoi diagram.

typedef unspecified_type Halfedge_handle
Handle for the halfedges of the Voronoi diagram.

typedef unspecified_type Ccb_halfedge_circulator
A type for a bidirectional circulator over the halfedges of the boundary of a Voronoi face. More...

typedef unspecified_type Delaunay_graph
A type for the Delaunay graph. More...

typedef Delaunay_graph::Edge Delaunay_edge
A type for the dual edge in the Delaunay graph.

typedef Delaunay_graph::Vertex_handle Delaunay_vertex_handle
A type for vertex handles in the Delaunay graph.

## Access Methods

Halfedge_handle twin ()
Returns the twin halfedge.

Halfedge_handle opposite ()
Same as e.twin().

Halfedge_handle next ()
Returns the next halfedge in the counterclockwise sense around the boundary of the face that e is incident to.

Halfedge_handle previous ()
Returns the previous halfedge in the counterclockwise sense around the boundary of the adjacent face.

Face_handle face ()
Returns the face that e is incident to.

Vertex_handle source ()
Returns the source vertex of e. More...

Vertex_handle target ()
Returns the target vertex of e. More...

Ccb_halfedge_circulator ccb ()
Returns a bidirectional circulator to traverse the halfedges on the boundary of the Voronoi face containing e. More...

Delaunay_edge dual ()
Returns the corresponding dual edge in the Delaunay graph.

In the four methods below we consider Voronoi halfedges to be "parallel" to the $$x$$-axis, oriented from left to right.

Delaunay_vertex_handle up ()
Returns a handle to the vertex in the Delaunay graph corresponding to the defining site above the Voronoi edge.

Delaunay_vertex_handle down ()
Returns a handle to the vertex in the Delaunay graph corresponding to the defining site below the Voronoi edge.

Delaunay_vertex_handle left ()
Returns a handle to the vertex in the Delaunay graph corresponding to the defining site to the left of the Voronoi edge. More...

Delaunay_vertex_handle right ()
Returns a handle to the vertex in the Delaunay graph corresponding to the defining site to the right of the Voronoi edge. More...

## Predicate Methods

bool has_source ()
Returns true iff the halfedge corresponds to a bisecting segment or a bisecting ray oriented appropriately so that its apex is its source.

bool has_target ()
Returns true iff the halfedge corresponds to a bisecting segment or a bisecting ray oriented appropriately so that its apex is its target.

bool is_unbounded ()
Returns true iff the source or the target of the halfedge does not exist, i.e., if either of has_source() or has_target() return false.

bool is_bisector ()
Returns true iff the Voronoi edge is an entire bisector.

bool is_segment ()
Returns true iff the Voronoi edge has both a source and a target Voronoi vertex.

bool is_ray ()
Returns true iff the Voronoi edge has either a source or a target Voronoi vertex, but not both; in other words it is a bisecting ray.

bool is_valid ()
Returns true if the following conditions are met: the halfedge is not a rejected edge with respect to the chosen adaptation policy; the twin edge of its twin edge is itself; its adjacent face is not a rejected face with respect to the chosen adaptation policy; its source and target vertices are valid (provided they exist, of course); the previous of its next halfedge is itself and the next of its previous halfedge is itself.

## ◆ Ccb_halfedge_circulator

template<typename DG , typename AT , typename AP >
 typedef unspecified_type CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::Ccb_halfedge_circulator

A type for a bidirectional circulator over the halfedges of the boundary of a Voronoi face.

The value type of the circulator is CGAL::Voronoi_diagram_2<DG,AT,AP>::Halfedge and is convertible to Halfedge_handle.

## ◆ Delaunay_graph

template<typename DG , typename AT , typename AP >
 typedef unspecified_type CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::Delaunay_graph

A type for the Delaunay graph.

It is a model of the DelaunayGraph_2 concept.

## ◆ ccb()

template<typename DG , typename AT , typename AP >
 Ccb_halfedge_circulator CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::ccb ( )

Returns a bidirectional circulator to traverse the halfedges on the boundary of the Voronoi face containing e.

The circulator is initialized to e. Applying operator++ (resp. operator-) to this circulator returns the next halfedge on the boundary of the face containing e in the counterclockwise (resp. clockwise) sense.

## ◆ left()

template<typename DG , typename AT , typename AP >
 Delaunay_vertex_handle CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::left ( )

Returns a handle to the vertex in the Delaunay graph corresponding to the defining site to the left of the Voronoi edge.

Precondition
has_source() must be true.

## ◆ right()

template<typename DG , typename AT , typename AP >
 Delaunay_vertex_handle CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::right ( )

Returns a handle to the vertex in the Delaunay graph corresponding to the defining site to the right of the Voronoi edge.

Precondition
has_target() must be true.

## ◆ source()

template<typename DG , typename AT , typename AP >
 Vertex_handle CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::source ( )

Returns the source vertex of e.

Precondition
The source vertex must exist, i.e., has_source() must return true.

## ◆ target()

template<typename DG , typename AT , typename AP >
 Vertex_handle CGAL::Voronoi_diagram_2< DG, AT, AP >::Halfedge::target ( )

Returns the target vertex of e.

Precondition
The target vertex must exist, i.e., has_target() must return true.