\( \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.4 - 2D Boolean Operations on Nef Polygons
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Nef_polyhedron_2< T >::Explorer Class 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.

extsegs.png
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. More...
 
typedef unspecified_type Ray
 the ray type of vertices on the frame. More...
 

Operations

bool is_standard (Vertex_const_handle v)
 returns true iff v's position is a standard point. More...
 
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. More...
 

Member Typedef Documentation

template<typename T>
typedef unspecified_type CGAL::Nef_polyhedron_2< T >::Explorer::Point

the point type of finite vertices.

template<typename T>
typedef unspecified_type CGAL::Nef_polyhedron_2< T >::Explorer::Ray

the ray type of vertices on the frame.

Member Function Documentation

template<typename T>
bool CGAL::Nef_polyhedron_2< T >::Explorer::is_frame_edge ( Halfedge_const_handle  e)

returns true iff e is part of the infinimaximal frame.

template<typename T>
bool CGAL::Nef_polyhedron_2< T >::Explorer::is_standard ( Vertex_const_handle  v)

returns true iff v's position is a standard point.

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).