CGAL::Voronoi_diagram_2<DG,AT,AP>::Halfedge

Definition

The class Voronoi_diagram_2<DG,AT,AP>::Halfedge is the class provided by the Voronoi_diagram_2<DG,AT,AP> class for Voronoi halfedges. Below we present its interface.

Is Model for the Concepts

DefaultConstructible, CopyConstructible, Assignable, EqualityComparable, LessThanComparable

Types

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Vertex
A type for the vertices of the Voronoi diagram.

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Face
A type for the faces of the Voronoi diagram.

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Vertex_handle
Handle for the vertices of the Voronoi diagram.

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Face_handle
Handle for the faces of the Voronoi diagram.

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Halfedge_handle
Handle for the halfedges of the Voronoi diagram.

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.

Voronoi_diagram_2<DG,AT,AP>::Halfedge::Delaunay_graph
A type for the Delaunay graph. It is a model of the DelaunayGraph_2 concept.

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 e.twin () Returns the twin halfedge.
Halfedge_handle e.opposite () Same as e.twin().
Halfedge_handle e.next () Returns the next halfedge in the counterclockwise sense around the boundary of the face that e is incident to.
Halfedge_handle e.previous () Returns the previous halfedge in the counterclockwise sense around the boundary of the adjacent face.
Face_handle e.face () Returns the face that e is incident to.
Vertex_handle e.source () Returns the source vertex of e.
Precondition: The source vertex must exist, i.e., has_source() must return true.
Vertex_handle e.target () Returns the target vertex of e.
Precondition: The target vertex must exist, i.e., has_target() must return true.
Ccb_halfedge_circulator e.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.
Delaunay_edge e.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 e.up () Returns a handle to the vertex in the Delaunay graph corresponding to the defining site above the Voronoi edge.
Delaunay_vertex_handle e.down () Returns a handle to the vertex in the Delaunay graph corresponding to the defining site below the Voronoi edge.
Delaunay_vertex_handle e.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.
Delaunay_vertex_handle e.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.

Predicate Methods

bool e.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 e.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 e.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 e.is_bisector () Returns true iff the Voronoi edge is an entire bisector.
bool e.is_segment () Returns true iff the Voronoi edge has both a source and a target Voronoi vertex.
bool e.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 e.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.

See Also

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