CGAL 5.4.1 - 2D Arrangements
CGAL::Arrangement_2< Traits, Dcel > Class Template Reference

#include <CGAL/Arrangement_2.h>

Inherits from

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

Definition

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 available traits classes and DCEL classes are described below.

See also
ArrangementDcel
Arr_default_dcel<Traits>
ArrangementBasicTraits_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/dcel_extension.cpp, Arrangement_on_surface_2/dcel_extension_io.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, 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_traitsBase
 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. More...
 
 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. More...
 
void assign (const Arrangement_2< Traits, Dcel > &other)
 assigns the contents of another arrangement. More...
 
void clear ()
 clears the arrangement. More...
 

Access Functions

Traits * traits ()
 obtains the traits object used by the arrangement instance. More...
 

Constructor & Destructor Documentation

◆ Arrangement_2()

template<typename Traits , typename Dcel >
CGAL::Arrangement_2< Traits, Dcel >::Arrangement_2 ( const Arrangement_2< Traits, Dcel > &  other)

copy constructor.

Member Function Documentation

◆ assign()

template<typename Traits , typename Dcel >
void CGAL::Arrangement_2< Traits, Dcel >::assign ( const Arrangement_2< Traits, Dcel > &  other)

assigns the contents of another arrangement.

◆ clear()

template<typename Traits , typename Dcel >
void CGAL::Arrangement_2< Traits, Dcel >::clear ( )

clears the arrangement.

◆ operator=()

template<typename Traits , typename Dcel >
Arrangement_2<Traits, Dcel>& CGAL::Arrangement_2< Traits, Dcel >::operator= ( other  )

assignment operator.

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