CGAL 5.4.1 - 2D Arrangements
CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge Class Reference

#include <CGAL/Arrangement_on_surface_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. More...
 

Access Functions

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

bool is_fictitious () const
 determines whether the halfedge is fictitious (i.e., connects two vertices at infinity and is not associated with a valid curve).
 
Vertex_handle source ()
 obtains a handle for the source vertex of e. More...
 
Vertex_handle target ()
 obtains a handle for the target vertex of e. More...
 
Arr_halfedge_direction direction () const
 obtains 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 ()
 obtains the face that e is incident to (The face lies to the left of e).
 
Halfedge_handle twin ()
 obtains the twin halfedge. More...
 
Halfedge_handle prev ()
 obtains e's predecessor in the connected component it belongs to. More...
 
Halfedge_handle next ()
 obtains e's successor in the connected component it belongs to. More...
 
Ccb_halfedge_circulator ccb ()
 obtains 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
 obtains the \( x\)-monotone curve associated with e. More...
 

Constructor & Destructor Documentation

◆ Halfedge()

template<typename GeometryTraits, typename TopologyTraits>
CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::Halfedge ( )

default constructor.

Member Function Documentation

◆ ccb()

template<typename GeometryTraits, typename TopologyTraits>
Ccb_halfedge_circulator CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::ccb ( )

obtains a circulator that allows traversing the halfedges of the connected component boundary (CCB) that contains e.

The circulator is initialized to point to e.

◆ curve()

template<typename GeometryTraits, typename TopologyTraits>
const Traits::X_monotone_curve_2& CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::curve ( ) const

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

Precondition
e is not a fictitious halfedge.

◆ next()

template<typename GeometryTraits, typename TopologyTraits>
Halfedge_handle CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::next ( )

obtains e's successor in the connected component it belongs to.

◆ prev()

template<typename GeometryTraits, typename TopologyTraits>
Halfedge_handle CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::prev ( )

obtains e's predecessor in the connected component it belongs to.

◆ source()

template<typename GeometryTraits, typename TopologyTraits>
Vertex_handle CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::source ( )

obtains a handle for the source vertex of e.

◆ target()

template<typename GeometryTraits, typename TopologyTraits>
Vertex_handle CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::target ( )

obtains a handle for the target vertex of e.

◆ twin()

template<typename GeometryTraits, typename TopologyTraits>
Halfedge_handle CGAL::Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge::twin ( )

obtains the twin halfedge.