\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D Boolean Operations on Nef Polygons

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Nef_polyhedron_2< T >::Explorer Class Reference
2D Boolean Operations on Nef Polygons Reference

`#include <CGAL/Nef_polyhedron_2.h>`

## Inherits from

CGAL::Nef_polyhedron_2< T >::Topological_explorer.

## Definition

a decorator to examine the underlying plane map.

An instance `E` of the data type `Explorer` is a decorator to explore the structure of the plane map underlying the Nef polyhedron. It inherits all topological adjacency exploration operations from `Topological_explorer`. `Explorer` additionally allows one to explore the geometric embedding.

The position of each vertex is given by a so-called extended point, which is either a standard affine point or the tip of a ray touching an infinimaximal square frame centered at the origin. A vertex `v` is called a standard vertex if its embedding is a standard point and non-standard if its embedding is a non-standard point. By the straightline embedding of their source and target vertices, edges correspond to either affine segments, rays or lines or are part of the bounding frame.

Extended geometry: standard vertices are marked by S, non-standard vertices are marked by N. A: The possible embeddings of edges: an affine segment s1, an affine ray s2, an affine line s3. B: A plane map embedded by extended geometry: note that the frame is arbitrarily large, the 6 vertices on the frame are at infinity, the two faces represent a geometrically unbounded area, however they are topologically closed by the frame edges. No standard point can be placed outside the frame.

Creation

`Explorer` is copy constructable and assignable. An object can be obtained via the `Nef_polyhedron_2::explorer()` method of `Nef_polyhedron_2`.

## Types
Iterators, handles, and circulators are inherited from `Topological_explorer`.
typedef unspecified_type | Point
| the point type of finite vertices.
typedef unspecified_type | Ray
| the ray type of vertices on the frame.

## Operations
bool | is_standard (Vertex_const_handle v)
| returns true iff `v`'s position is a standard point.
Point | point (Vertex_const_handle v)
| returns the standard point that is the embedding of `v`. More...
Ray | ray (Vertex_const_handle v)
| returns the ray defining the non-standard point on the frame. More...
bool | is_frame_edge (Halfedge_const_handle e)
| returns true iff `e` is part of the infinimaximal frame.

## Additional Inherited Members
Public Types inherited from CGAL::Nef_polyhedron_2< T >::Topological_explorer
typedef unspecified_type | Plane_map
| The underlying plane map type.
typedef unspecified_type | Point
| The point type of vertices.
typedef unspecified_type | Mark
| All objects (vertices, edges, faces) are attributed by a `Mark` object.
typedef unspecified_type | Size_type
| The size type.
typedef unspecified_type | Halfedge_around_vertex_const_circulator
| circulating the outgoing halfedges in \( A(v)\).
typedef unspecified_type | Halfedge_around_face_const_circulator
| circulating the halfedges in the face cycle of a face `f`.
typedef unspecified_type | Hole_const_iterator
| iterating all holes of a face `f`. More...
typedef unspecified_type | Isolated_vertex_const_iterator
| iterating all isolated vertices of a face `f`. More...
Public Member Functions inherited from CGAL::Nef_polyhedron_2< T >::Topological_explorer
Vertex_const_handle | source (Halfedge_const_handle e)
| returns the source of `e`.
Vertex_const_handle | target (Halfedge_const_handle e)
| returns the target of `e`.
Halfedge_const_handle | twin (Halfedge_const_handle e)
| returns the twin of `e`.
bool | is_isolated (Vertex_const_handle v)
| returns `true` iff \( A(v) = \emptyset\).
Halfedge_const_handle | first_out_edge (Vertex_const_handle v)
| returns one halfedge with source `v`. More...
Halfedge_const_handle | last_out_edge (Vertex_const_handle v)
| returns the halfedge with source `v` that is the last in the circular iteration before encountering `first_out_edge(v)` again. More...
Halfedge_const_handle | cyclic_adj_succ (Halfedge_const_handle e)
| returns the edge after `e` in the cyclic ordered adjacency list of `source(e)`.
Halfedge_const_handle | cyclic_adj_pred (Halfedge_const_handle e)
| returns the edge before `e` in the cyclic ordered adjacency list of `source(e)`.
Halfedge_const_handle | next (Halfedge_const_handle e)
| returns the next edge in the face cycle containing `e`.
Halfedge_const_handle | previous (Halfedge_const_handle e)
| returns the previous edge in the face cycle containing `e`.
Face_const_handle | face (Halfedge_const_handle e)
| returns the face incident to `e`.
Face_const_handle | face (Vertex_const_handle v)
| returns the face incident to `v`. More...
Halfedge_const_handle | halfedge (Face_const_handle f)
| returns a halfedge in the bounding face cycle of `f` (`Halfedge_const_handle()` if there is no bounding face cycle).
Vertex_const_iterator | vertices_begin ()
| iterator over vertices of the map.
Vertex_const_iterator | vertices_end ()
| past-the-end iterator for vertices.
Halfedge_const_iterator | halfedges_begin ()
| iterator over halfedges of the map.
Halfedge_const_iterator | halfedges_end ()
| past-the-end iterator for halfedges.
Face_const_iterator | faces_begin ()
| iterator over faces of the map.
Face_const_iterator | faces_end ()
| past-the-end iterator for faces
Halfedge_around_vertex_const_circulator | out_edges (Vertex_const_handle v)
| returns a circulator for the cyclic adjacency list of `v`.
Halfedge_around_face_const_circulator | face_cycle (Face_const_handle f)
| returns a circulator for the outer face cycle of `f`.
Hole_const_iterator | holes_begin (Face_const_handle f)
| returns an iterator for all holes in the interior of `f`. More...
Hole_const_iterator | holes_end (Face_const_handle f)
| returns the past-the-end iterator of `f`.
Isolated_vertex_const_iterator | isolated_vertices_begin (Face_const_handle f)
| returns an iterator for all isolated vertices in the interior of `f`.
Isolated_vertex_const_iterator | isolated_vertices_end (Face_const_handle f)
| returns the past the end iterator of `f`.
const Point & | point (Vertex_const_handle v)
| returns the embedding of `v`.
const Mark & | mark (Vertex_const_handle v)
| returns the mark of `v`.
const Mark & | mark (Halfedge_const_handle e)
| returns the mark of `e`.
const Mark & | mark (Face_const_handle f)
| returns the mark of `f`.
Size_type | number_of_vertices ()
| returns the number of vertices.
Size_type | number_of_halfedges ()
| returns the number of halfedges.
Size_type | number_of_edges ()
| returns the number of halfedge pairs.
Size_type | number_of_faces ()
| returns the number of faces.
Size_type | number_of_face_cycles ()
| returns the number of face cycles.
Size_type | number_of_connected_components ()
| calculates the number of connected components of `P`.
void | print_statistics (std::ostream &os=std::cout)
| print the statistics of `P`: the number of vertices, edges, and faces.
void | check_integrity_and_topological_planarity (bool faces=true)
| checks the link structure and the genus of `P`.

## Member Function Documentation

template<typename T>

Point CGAL::Nef_polyhedron_2< T >::Explorer::point | ( | Vertex_const_handle | v) |  |

returns the standard point that is the embedding of `v`.

Precondition
  `E.is_standard(v)`.

template<typename T>

Ray CGAL::Nef_polyhedron_2< T >::Explorer::ray | ( | Vertex_const_handle | v) |  |

returns the ray defining the non-standard point on the frame.

Precondition
  `!E.is_standard(v)`.