CGAL 6.1 - 2D Arrangements
Loading...
Searching...
No Matches
CGAL::Arrangement_2< Traits, Dcel > Class Template Reference

#include <CGAL/Arrangement_2.h>

Inherits 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/dual_with_data.cpp, and Arrangement_on_surface_2/face_extension.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.
 
 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 Typedef Documentation

◆ Base

The base arrangement on surface type.

◆ Ccb_halfedge_circulator

template<typename Traits , typename Dcel >
typedef Base::Ccb_halfedge_circulator CGAL::Arrangement_2< Traits, Dcel >::Ccb_halfedge_circulator

◆ Ccb_halfedge_const_circulator

template<typename Traits , typename Dcel >
typedef Base::Ccb_halfedge_circulator CGAL::Arrangement_2< Traits, Dcel >::Ccb_halfedge_const_circulator

◆ Curve_2

template<typename Traits , typename Dcel >
typedef Base::Curve_2 CGAL::Arrangement_2< Traits, Dcel >::Curve_2

◆ Edge_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Edge_iterator CGAL::Arrangement_2< Traits, Dcel >::Edge_const_iterator

◆ Edge_iterator

template<typename Traits , typename Dcel >
typedef Base::Edge_iterator CGAL::Arrangement_2< Traits, Dcel >::Edge_iterator

◆ Face

template<typename Traits , typename Dcel >
typedef Base::Face CGAL::Arrangement_2< Traits, Dcel >::Face

◆ Face_const_handle

template<typename Traits , typename Dcel >
typedef Base::Face_handle CGAL::Arrangement_2< Traits, Dcel >::Face_const_handle

◆ Face_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Face_iterator CGAL::Arrangement_2< Traits, Dcel >::Face_const_iterator

◆ Face_handle

template<typename Traits , typename Dcel >
typedef Base::Face_handle CGAL::Arrangement_2< Traits, Dcel >::Face_handle

◆ Face_iterator

template<typename Traits , typename Dcel >
typedef Base::Face_iterator CGAL::Arrangement_2< Traits, Dcel >::Face_iterator

◆ Geometry_traits

template<typename Traits , typename Dcel >
typedef Traits CGAL::Arrangement_2< Traits, Dcel >::Geometry_traits

the geometry traits class.

◆ Halfedge

template<typename Traits , typename Dcel >
typedef Base::Halfedge CGAL::Arrangement_2< Traits, Dcel >::Halfedge

◆ Halfedge_around_const_vertex_circulator

template<typename Traits , typename Dcel >
typedef Base::Halfedge_around_vertex_circulator CGAL::Arrangement_2< Traits, Dcel >::Halfedge_around_const_vertex_circulator

◆ Halfedge_around_vertex_circulator

template<typename Traits , typename Dcel >
typedef Base::Halfedge_around_vertex_circulator CGAL::Arrangement_2< Traits, Dcel >::Halfedge_around_vertex_circulator

◆ Halfedge_const_handle

template<typename Traits , typename Dcel >
typedef Base::Halfedge_handle CGAL::Arrangement_2< Traits, Dcel >::Halfedge_const_handle

◆ Halfedge_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Halfedge_iterator CGAL::Arrangement_2< Traits, Dcel >::Halfedge_const_iterator

◆ Halfedge_handle

template<typename Traits , typename Dcel >
typedef Base::Halfedge_handle CGAL::Arrangement_2< Traits, Dcel >::Halfedge_handle

◆ Halfedge_iterator

template<typename Traits , typename Dcel >
typedef Base::Halfedge_iterator CGAL::Arrangement_2< Traits, Dcel >::Halfedge_iterator

◆ Hole_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Hole_iterator CGAL::Arrangement_2< Traits, Dcel >::Hole_const_iterator

◆ Hole_iterator

template<typename Traits , typename Dcel >
typedef Base::Hole_iterator CGAL::Arrangement_2< Traits, Dcel >::Hole_iterator

◆ Isolated_vertex_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Isolated_vertex_iterator CGAL::Arrangement_2< Traits, Dcel >::Isolated_vertex_const_iterator

◆ Isolated_vertex_iterator

template<typename Traits , typename Dcel >
typedef Base::Isolated_vertex_iterator CGAL::Arrangement_2< Traits, Dcel >::Isolated_vertex_iterator

◆ Point_2

template<typename Traits , typename Dcel >
typedef Base::Point_2 CGAL::Arrangement_2< Traits, Dcel >::Point_2

◆ Size

template<typename Traits , typename Dcel >
typedef Base::Size CGAL::Arrangement_2< Traits, Dcel >::Size

◆ Topology_traits

template<typename Traits , typename Dcel >
typedef Default_planar_topology<Geometry_traits,Dcel>::Traits CGAL::Arrangement_2< Traits, Dcel >::Topology_traits

The topology traits.

◆ Unbounded_face_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Unbounded_face_iterator CGAL::Arrangement_2< Traits, Dcel >::Unbounded_face_const_iterator

◆ Unbounded_face_iterator

template<typename Traits , typename Dcel >
typedef Base::Unbounded_face_iterator CGAL::Arrangement_2< Traits, Dcel >::Unbounded_face_iterator

◆ Vertex

template<typename Traits , typename Dcel >
typedef Base::Vertex CGAL::Arrangement_2< Traits, Dcel >::Vertex

◆ Vertex_const_handle

template<typename Traits , typename Dcel >
typedef Base::Vertex_handle CGAL::Arrangement_2< Traits, Dcel >::Vertex_const_handle

◆ Vertex_const_iterator

template<typename Traits , typename Dcel >
typedef Base::Vertex_iterator CGAL::Arrangement_2< Traits, Dcel >::Vertex_const_iterator

◆ Vertex_handle

template<typename Traits , typename Dcel >
typedef Base::Vertex_handle CGAL::Arrangement_2< Traits, Dcel >::Vertex_handle

◆ Vertex_iterator

template<typename Traits , typename Dcel >
typedef Base::Vertex_iterator CGAL::Arrangement_2< Traits, Dcel >::Vertex_iterator

◆ X_monotone_curve_2

template<typename Traits , typename Dcel >
typedef Base::X_monotone_curve_2 CGAL::Arrangement_2< Traits, Dcel >::X_monotone_curve_2

Constructor & Destructor Documentation

◆ Arrangement_2() [1/3]

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

constructs an empty arrangement containing one unbounded face, which corresponds to the entire plane.

◆ Arrangement_2() [2/3]

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

copy constructor.

◆ Arrangement_2() [3/3]

template<typename Traits , typename Dcel >
CGAL::Arrangement_2< Traits, Dcel >::Arrangement_2 ( const Traits *  traits)

constructs an empty arrangement that uses the given traits instance for performing the geometric predicates.

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.