CGAL 6.2 - 2D Arrangements

Loading...
Searching...
No Matches
List of all members
CGAL::Arrangement_2< Traits, Dcel > Class Template Reference
Reference Manual

`#include <CGAL/Arrangement_2.h>`

## Inherits from

CGAL::Arrangement_on_surface_2< Traits, Default_planar_topology< Traits, Dcel >::Traits >.

## Definition

template<typename Traits, typename Dcel>
class CGAL::Arrangement_2< Traits, Dcel >

An object `arr` of the class `Arrangement_2` represents the planar subdivision induced by a set of \(x\)-monotone curves and isolated points into maximally connected cells. The arrangement is represented as a doubly-connected edge-list (DCEL) such that each DCEL vertex is associated with a point of the plane and each edge is associated with an \( x\)-monotone curve whose interior is disjoint from all other edges and vertices. Recall that an arrangement edge is always comprised of a pair of twin Dcel halfedges.

The `Arrangement_2` template has two parameters:

- The `Traits` template-parameter should be instantiated with a model of the `AosBasicTraits_2` concept. The traits class defines the types of \(x\)-monotone curves and two-dimensional points, namely `AosBasicTraits_2::X_monotone_curve_2` and `AosBasicTraits_2::Point_2`, respectively, and supports basic geometric predicates on them.
- The `Dcel` template-parameter should be instantiated with a class that is a model of the `AosDcel` concept. The value of this parameter is by default `Arr_default_dcel<Traits>`.

The available traits classes and DCEL classes are described below.

See also
  `AosDcel`
  `Arr_default_dcel<Traits>`
  `AosBasicTraits_2`
  `CGAL::overlay()`
  `CGAL::is_valid()`

Insertion Functions

See also
  `CGAL::insert()`
  `CGAL::insert_non_intersecting_curve()`
  `CGAL::insert_non_intersecting_curves()`
  `CGAL::insert_point()`

Removal functions

See also
  `CGAL::remove_edge()`
  `CGAL::remove_vertex()`

Input/output functions

See also
  `CGAL::IO::read()`
  `CGAL::IO::write()`

Examples
  Arrangement_on_surface_2/algebraic_curves.cpp, Arrangement_on_surface_2/algebraic_segments.cpp, Arrangement_on_surface_2/bgl_dual_adapter.cpp, Arrangement_on_surface_2/consolidated_curve_data.cpp, Arrangement_on_surface_2/count_and_trace.cpp, Arrangement_on_surface_2/dcel_extension.cpp, Arrangement_on_surface_2/dcel_extension_io.cpp, Arrangement_on_surface_2/draw_arr.cpp, Arrangement_on_surface_2/dual_with_data.cpp, Arrangement_on_surface_2/face_extension.cpp, Arrangement_on_surface_2/face_extension_overlay.cpp, Arrangement_on_surface_2/generic_curve_data.cpp, Arrangement_on_surface_2/overlay_color.cpp, Arrangement_on_surface_2/overlay_unbounded.cpp, Arrangement_on_surface_2/polycurve_bezier.cpp, Arrangement_on_surface_2/polycurve_circular_arc.cpp, Arrangement_on_surface_2/polycurve_conic.cpp, and Arrangement_on_surface_2/predefined_kernel_non_intersecting.cpp.

## Types
typedef Traits | Geometry_traits
| the geometry traits class.
typedef Default_planar_topology< Geometry_traits, Dcel >::Traits | Topology_traits
| The topology traits.
typedef Arrangement_on_surface_2< Geometry_traits, Topology_traits > | Base
| The base arrangement on surface type.

## Types inherited from the base Arrangement_on_surface_2
typedef Base::Point_2 | Point_2
typedef Base::X_monotone_curve_2 | X_monotone_curve_2
typedef Base::Curve_2 | Curve_2
typedef Base::Size | Size
typedef Base::Vertex | Vertex
typedef Base::Halfedge | Halfedge
typedef Base::Face | Face
typedef Base::Vertex_handle | Vertex_handle
typedef Base::Halfedge_handle | Halfedge_handle
typedef Base::Face_handle | Face_handle
typedef Base::Vertex_iterator | Vertex_iterator
typedef Base::Halfedge_iterator | Halfedge_iterator
typedef Base::Edge_iterator | Edge_iterator
typedef Base::Face_iterator | Face_iterator
typedef Base::Unbounded_face_iterator | Unbounded_face_iterator
typedef Base::Halfedge_around_vertex_circulator | Halfedge_around_vertex_circulator
typedef Base::Ccb_halfedge_circulator | Ccb_halfedge_circulator
typedef Base::Hole_iterator | Hole_iterator
typedef Base::Isolated_vertex_iterator | Isolated_vertex_iterator
typedef Base::Vertex_handle | Vertex_const_handle
typedef Base::Halfedge_handle | Halfedge_const_handle
typedef Base::Face_handle | Face_const_handle
typedef Base::Vertex_iterator | Vertex_const_iterator
typedef Base::Halfedge_iterator | Halfedge_const_iterator
typedef Base::Edge_iterator | Edge_const_iterator
typedef Base::Face_iterator | Face_const_iterator
typedef Base::Unbounded_face_iterator | Unbounded_face_const_iterator
typedef Base::Halfedge_around_vertex_circulator | Halfedge_around_const_vertex_circulator
typedef Base::Ccb_halfedge_circulator | Ccb_halfedge_const_circulator
typedef Base::Hole_iterator | Hole_const_iterator
typedef Base::Isolated_vertex_iterator | Isolated_vertex_const_iterator

## Creation
| Arrangement_2 ()
| constructs an empty arrangement containing one unbounded face, which corresponds to the entire plane.
| Arrangement_2 (const Arrangement_2< Traits, Dcel > &other)
| copy constructor.
| Arrangement_2 (const Traits *traits)
| constructs an empty arrangement that uses the given `traits` instance for performing the geometric predicates.

## Assignment Methods
Arrangement_2< Traits, Dcel > & | operator= (other)
| assignment operator.
void | assign (const Arrangement_2< Traits, Dcel > &other)
| assigns the contents of another arrangement.
void | clear ()
| clears the arrangement.

## Access Functions
Traits * | traits ()
| obtains the traits object used by the arrangement instance.

## Member Function Documentation

## ◆ traits()

template<typename Traits , typename Dcel >

Traits * CGAL::Arrangement_2< Traits, Dcel >::traits | ( |  | ) |

obtains the traits object used by the arrangement instance.

A `const` version is also available.

Examples
  Arrangement_on_surface_2/draw_arr.cpp.