CGAL 6.1.2 - 3D Boolean Operations on Nef Polyhedra

Loading...
Searching...
No Matches
List of all members
CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SHalfedge Class Reference
Reference Manual

`#include <CGAL/Nef_polyhedron_3.h>`

## Definition

template<class Nef_polyhedronTraits_3, class Nef_polyhedronItems_3 = CGAL::Default_items<Nef_polyhedronTraits_3> class Nef_polyhedronMarks = bool>
class CGAL::Nef_polyhedron_3< Nef_polyhedronTraits_3, Nef_polyhedronItems_3 >::SHalfedge

A shalfedge is a great arc on a sphere map.

Figure figureNef3HalfedgeIncidences 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.

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.

The role of shalfedges in a facet is illustrated in Figure figureNef3FacetIncidences. The `facet()` member function returns the facet in which the shalfedge is part of one of the facet cycles. The successive assignment of the form `se = se->next()` cycles counterclockwise around the facet (or a hole of the facet).

A const circulators is provided for each of the three 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_3<Traits>` manages the needed shalfedges internally.

See also
  `CGAL::Nef_polyhedron_3::Halfedge`
  `CGAL::Nef_polyhedron_3::Halffacet`
  `CGAL::Nef_polyhedron_3::SFace`
  `CGAL::Nef_polyhedron_S2::Sphere_circle`

## Types
The following types are the same as in `Nef_polyhedron_3<Traits>`.
typedef unspecified_type | Mark
| type of mark.
typedef unspecified_type | Sphere_circle
| sphere circle type stored in SHalfedge.
typedef unspecified_type | Halffacet_const_handle
| const handle to Halffacet.
typedef unspecified_type | SVertex_const_handle
| const handle to SVertex.
typedef unspecified_type | SHalfedge_const_handle
| const handle to SHalfedge.
typedef unspecified_type | SFace_const_handle
| const handle to SFace.

## Operations
const Mark & | mark () const
| the mark of `se` .
const Sphere_circle & | circle () const
| the sphere circle of `se` .
SHalfedge_const_handle | twin () const
| the twin of `se` .
SVertex_const_handle | source () const
| the source svertex of `se` .
SVertex_const_handle | target () const
| equals `twin()->source()`.
SHalfedge_const_handle | prev () const
| the SHalfedge previous to `se` in a facet cycle.
SHalfedge_const_handle | next () const
| the next SHalfedge of `se` in a facet cycle.
SHalfedge_const_handle | sprev () const
| the SHalfedge previous to `se` in a sface cycle.
SHalfedge_const_handle | snext () const
| the next SHalfedge of `se` in a sface cycle.
SHalfedge_const_handle | cyclic_adj_pred () const
| the edge before `se` in the cyclic ordered adjacency list of source().
SHalfedge_const_handle | cyclic_adj_succ () const
| the edge after `se` in the cyclic ordered adjacency list of source().
Halffacet_const_handle | facet () const
| the facet that corresponds to `se` in the 3D incidence structure.
SFace_const_handle | incident_sface () const
| the incident sface of `se` .
bool | in_outer_sface_cycle () const
| determines whether `se` is in an outer sface cycle.
bool | in_inner_sface_cycle () const
| determines whether `se` is in an inner sface cycle.
bool | in_outer_facet_cycle () const
| determines whether `se` is in an outer facet cycle.
bool | in_inner_facet_cycle () const
| determines whether `se` is in an inner facet cycle.