CGAL 5.1 - 2D Boolean Operations on Nef Polygons Embedded on the Sphere
CGAL::Nef_polyhedron_S2< Traits >::SHalfedge Class Reference

#include <CGAL/Nef_polyhedron_S2.h>

Definition

template<typename Traits>
class CGAL::Nef_polyhedron_S2< Traits >::SHalfedge

A shalfedge is a great arc on a sphere map. The figure below depicts the relationship between a shalfedge and its incident shalfedges, svertices, and sfaces on a sphere map. A shalfedge is an oriented sedge between two svertices. It is always paired with a shalfedge pointing in the opposite direction. The twin() member function returns this shalfedge of opposite orientation.

Incidences of an SHalfedge

The snext() member function points to the successor shalfedge around this sface while the sprev() member function points to the preceding shalfedge. An successive assignments of the form se = se->snext() cycles counterclockwise around the sface (or hole).

Similarly, the successive assignments of the form se = se->snext()->twin() cycle clockwise around the svertex and traverse all halfedges incident to this svertex. The assignment se = se->cyclic_adj_succ() can be used as a shortcut.

A const circulator is provided for each of the two circular orders. The circulators are bidirectional and assignable to SHalfedge_const_handle.

Creation

There is no need for a user to create a SHalfedge explicitly. The class Nef_polyhedron_S2<Traits> manages the needed shalfedges internally.

See also
CGAL::Nef_polyhedron_S2::SVertex
CGAL::Nef_polyhedron_S2::SFace
CGAL::Nef_polyhedron_S2::Sphere_circle

Types

The following types are the same as in Nef_polyhedron_S2<Traits>.

typedef unspecified_type Mark
 type of mark. More...
 
typedef unspecified_type Sphere_circle
 sphere circle type stored in SHalfedge. More...
 
typedef unspecified_type SVertex_const_handle
 const handle to SVertex. More...
 
typedef unspecified_type SHalfedge_const_handle
 const handle to SHalfedge. More...
 
typedef unspecified_type SFace_const_handle
 const handle to SFace. More...
 

Operations

const Markmark () const
 the mark of the sedge. More...
 
const Sphere_circlecircle () const
 the sphere circle of the sedge. More...
 
SHalfedge_const_handle twin () const
 the twin of the sedge. More...
 
SVertex_const_handle source () const
 the source svertex of the sedge. More...
 
SVertex_const_handle target () const
 equals twin()->source(). More...
 
SHalfedge_const_handle sprev () const
 the SHalfedge previous to the sedge in a sface cycle. More...
 
SHalfedge_const_handle snext () const
 the next SHalfedge of the sedge in a sface cycle. More...
 
SHalfedge_const_handle cyclic_adj_pred () const
 the edge before the sedge in the cyclic ordered adjacency list of source(). More...
 
SHalfedge_const_handle cyclic_adj_succ () const
 the edge after the sedge in the cyclic ordered adjacency list of source(). More...
 
SFace_const_handle incident_sface () const
 the incident sface of the sedge. More...
 
bool in_outer_sface_cycle () const
 determines whether the sedge is in an outer sface cycle. More...
 
bool in_inner_sface_cycle () const
 determines whether the sedge is in an inner sface cycle. More...
 

Member Typedef Documentation

◆ Mark

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::Mark

type of mark.

◆ SFace_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::SFace_const_handle

const handle to SFace.

◆ SHalfedge_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::SHalfedge_const_handle

const handle to SHalfedge.

◆ Sphere_circle

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::Sphere_circle

sphere circle type stored in SHalfedge.

◆ SVertex_const_handle

template<typename Traits >
typedef unspecified_type CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::SVertex_const_handle

const handle to SVertex.

Member Function Documentation

◆ circle()

template<typename Traits >
const Sphere_circle& CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::circle ( ) const

the sphere circle of the sedge.

◆ cyclic_adj_pred()

template<typename Traits >
SHalfedge_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::cyclic_adj_pred ( ) const

the edge before the sedge in the cyclic ordered adjacency list of source().

◆ cyclic_adj_succ()

template<typename Traits >
SHalfedge_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::cyclic_adj_succ ( ) const

the edge after the sedge in the cyclic ordered adjacency list of source().

◆ in_inner_sface_cycle()

template<typename Traits >
bool CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::in_inner_sface_cycle ( ) const

determines whether the sedge is in an inner sface cycle.

◆ in_outer_sface_cycle()

template<typename Traits >
bool CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::in_outer_sface_cycle ( ) const

determines whether the sedge is in an outer sface cycle.

◆ incident_sface()

template<typename Traits >
SFace_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::incident_sface ( ) const

the incident sface of the sedge.

◆ mark()

template<typename Traits >
const Mark& CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::mark ( ) const

the mark of the sedge.

◆ snext()

template<typename Traits >
SHalfedge_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::snext ( ) const

the next SHalfedge of the sedge in a sface cycle.

◆ source()

template<typename Traits >
SVertex_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::source ( ) const

the source svertex of the sedge.

◆ sprev()

template<typename Traits >
SHalfedge_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::sprev ( ) const

the SHalfedge previous to the sedge in a sface cycle.

◆ target()

template<typename Traits >
SVertex_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::target ( ) const

equals twin()->source().

◆ twin()

template<typename Traits >
SHalfedge_const_handle CGAL::Nef_polyhedron_S2< Traits >::SHalfedge::twin ( ) const

the twin of the sedge.