CGAL 6.0.1 - 2D Arrangements
Loading...
Searching...
No Matches
CGAL Namespace Reference

Namespaces

namespace  IO
 

Classes

class  Aos_observer
  More...
 
class  Arr_accessor
  More...
 
class  Arr_algebraic_segment_traits_2
 The traits class Arr_algebraic_segment_traits_2 is a model of the ArrangementTraits_2 concept that handles planar algebraic curves of arbitrary degree, and \( x\)-monotone of such curves. More...
 
class  Arr_Bezier_curve_traits_2
 The traits class Arr_Bezier_curve_traits_2 is a model of the ArrangementTraits_2 concept that handles planar Bézier curves. More...
 
class  Arr_bounded_planar_topology_traits_2
  More...
 
class  Arr_circle_segment_traits_2
 The class Arr_circle_segment_traits_2 is a model of the ArrangementTraits_2 concept and can be used to construct and maintain arrangements of circular arcs and line segments. More...
 
class  Arr_circular_arc_traits_2
 This class is a traits class for CGAL arrangements, built on top of a model of concept CircularKernel. More...
 
class  Arr_circular_line_arc_traits_2
 This class is a traits class for CGAL arrangements, built on top of a model of concept CircularKernel. More...
 
struct  Arr_closed_side_tag
 This type tag is used to indicate that a side of the parameter space, either left, right, bottom, or top, is closed, and curves that reach this side might be inserted into the arrangement. More...
 
class  Arr_conic_traits_2
 The class Arr_conic_traits_2 is a model of the ArrangementTraits_2 concept and can be used to construct and maintain arrangements of bounded segments of algebraic curves of degree \(2\) at most, also known as conic curves. More...
 
class  Arr_consolidated_curve_data_traits_2
 The class Arr_consolidated_curve_data_traits_2 is a model of the concept ArrangementTraits_2, and serves as a decorator class that enables the extension of the curve type defined by the Traits parameter. More...
 
struct  Arr_contracted_side_tag
 This type tag is used to indicate that a side of the parameter space, either left, right, bottom, or top, is contracted, and curves that approach this side might be inserted into the arrangement. More...
 
class  Arr_curve_data_traits_2
 The class Arr_curve_data_traits_2 is a model of the ArrangementTraits_2 concept and serves as a decorator class that allows the extension of the curves defined by the base traits-class (the Tr parameter), which serves as a geometric traits-class (a model of the ArrangementTraits_2 concept), with extraneous (non-geometric) data fields. More...
 
class  Arr_dcel
 The DCEL class used by the Arrangement_2, Arr_bounded_planar_topology_traits_2, Arr_unb_planar_topology_traits_2 class templates and other templates. More...
 
class  Arr_dcel_base
  More...
 
class  Arr_default_overlay_traits
 An instance of Arr_default_overlay_traits should be used for overlaying two arrangements of type Arrangement that store no auxiliary data with their DCEL records, where the resulting overlaid arrangement stores no auxiliary DCEL data as well. More...
 
class  Arr_extended_dcel
 The Arr_extended_dcel class-template extends the topological-features of the DCEL namely the vertex, halfedge, and face types. More...
 
class  Arr_extended_dcel_text_formatter
 Arr_extended_dcel_text_formatter defines the format of an arrangement in an input or output stream (typically a file stream), thus enabling reading and writing an Arrangement instance using a simple text format. More...
 
class  Arr_extended_face
 The Arr_extended_face class-template extends the face topological-features of the DCEL. More...
 
class  Arr_extended_halfedge
 The Arr_extended_halfedge class-template extends the halfedge topological-features of the DCEL. More...
 
class  Arr_extended_vertex
 The Arr_extended_vertex class-template extends the vertex topological-features of the DCEL. More...
 
class  Arr_face_extended_dcel
 The Arr_face_extended_dcel class-template extends the DCEL face-records, making it possible to store extra (non-geometric) data with the arrangement faces. More...
 
class  Arr_face_extended_text_formatter
 Arr_face_extended_text_formatter defines the format of an arrangement in an input or output stream (typically a file stream), thus enabling reading and writing an Arrangement instance using a simple text format. More...
 
class  Arr_face_index_map
 Arr_face_index_map maintains a mapping of face handles of an attached arrangement object to indices (of type unsigned int). More...
 
class  Arr_face_overlay_traits
 An instance of Arr_face_overlay_traits should be used for overlaying two arrangements of types Arr_A and Arr_B, which are instantiated using the same geometric traits-class and with the DCEL classes Dcel_A and Dcel_B respectively, in order to store their overlay in an arrangement of type Arr_R, which is instantiated using a third DCEL class Dcel_R. More...
 
class  Arr_geodesic_arc_on_sphere_traits_2
 The traits class Arr_geodesic_arc_on_sphere_traits_2 is a model of the ArrangementTraits_2 concept. More...
 
struct  Arr_identified_side_tag
 This type tag is used to indicate that a side of the parameter space, either left, right, bottom, or top, is identified, and curves that approach this side might be inserted into the arrangement. More...
 
class  Arr_landmarks_point_location
  More...
 
class  Arr_line_arc_traits_2
 This class is a traits class for CGAL arrangements, built on top of a model of concept CircularKernel. More...
 
class  Arr_linear_traits_2
 The traits class Arr_linear_traits_2 is a model of the ArrangementTraits_2 concept, which enables the construction and maintenance of arrangements of linear objects. More...
 
class  Arr_naive_point_location
  More...
 
class  Arr_non_caching_segment_basic_traits_2
 The traits class Arr_non_caching_segment_basic_traits_2 is a model of the ArrangementTraits_2 concept that allow the construction and maintenance of arrangements of sets of pairwise interior-disjoint line segments. More...
 
class  Arr_non_caching_segment_traits_2
 The traits class Arr_non_caching_segment_traits_2 is a model of the ArrangementTraits_2 concept that allows the construction and maintenance of arrangements of line segments. More...
 
struct  Arr_oblivious_side_tag
 This type tag is used to indicate that the condition of a boundary side of the parameter space is irrelevant. More...
 
struct  Arr_open_side_tag
 This type tag is used to indicate that a side of the parameter space, either left, right, bottom, or top, is open, and curves that approach this side might be inserted into the arrangement. More...
 
struct  Arr_point_location_result
 A unary metafunction to determine the return type of a point-location or vertical ray-shoot query. More...
 
class  Arr_polycurve_traits_2
 Note: The SubcurveTraits_2 can comprise of Line_segments, Conic_arcs, Circular_arc, Bezier_curves, or Linear_curves. More...
 
class  Arr_polyline_traits_2
 The traits class Arr_polyline_traits_2 handles piecewise linear curves, commonly referred to as polylines. More...
 
class  Arr_rational_function_traits_2
 The traits class Arr_rational_function_traits_2 is a model of the ArrangementTraits_2 concept. More...
 
class  Arr_segment_traits_2
 The traits class Arr_segment_traits_2 is a model of the ArrangementTraits_2 concept, which allows the construction and maintenance of arrangements of line segments. More...
 
class  Arr_spherical_topology_traits_2
  More...
 
class  Arr_text_formatter
 Arr_text_formatter defines the format of an arrangement in an input or output stream (typically a file stream), thus enabling reading and writing an Arrangement instance using a simple text format. More...
 
class  Arr_trapezoid_ric_point_location
  More...
 
class  Arr_triangulation_point_location
  More...
 
class  Arr_unb_planar_topology_traits_2
  More...
 
class  Arr_vertex_index_map
 Arr_vertex_index_map maintains a mapping of vertex handles of an attached arrangement object to indices (of type unsigned int). More...
 
class  Arr_walk_along_line_point_location
  More...
 
class  Arr_with_history_text_formatter
 Arr_with_history_text_formatter defines the format of an arrangement in an input or output stream (typically a file stream), thus enabling reading and writing an arrangement-with-history instance using a simple text format. More...
 
class  Arrangement_2
  More...
 
class  Arrangement_on_surface_2
  More...
 
class  Arrangement_on_surface_with_history_2
  More...
 
class  Arrangement_with_history_2
  More...
 
class  CORE_algebraic_number_traits
 CORE_algebraic_number_traits is a traits class for CORE's algebraic number types. More...
 

Typedefs

template<typename Traits >
using Arr_default_dcel = Arr_dcel< Traits >
 The default DCEL class used by the Arrangement_2, Arr_bounded_planar_topology_traits_2, Arr_unb_planar_topology_traits_2 class templates and other templates.
 
typedef Box_parameter_space_2 Arr_parameter_space
 
template<typename Arrangement_ >
using Arr_observer = typename Arrangement_::Observer
 Arr_observer<Arrangement_2> is an alias for Aos_observer<Arrangement_on_surface_2>, whereArrangement_2derives fromArrangement_on_surface_2` and the latter is an instance of the template CGAL::Arrangement_on_surface_2<GeometryTraits, TopologyTraits>.
 

Enumerations

enum  Arr_curve_end { ARR_MIN_END , ARR_MAX_END }
 The enumeration Arr_curve_end is used to indicate one of the two ends of an \(x\)-monotone curve. More...
 
enum  Arr_halfedge_direction { ARR_LEFT_TO_RIGHT , ARR_RIGHT_TO_LEFT }
 The enumeration Arr_halfedge_direction is defined by CGAL::Arrangement_2::Halfedge to specify the direction of the halfedge. More...
 

Functions

template<typename Traits , typename Dcel , typename InputIterator , typename OutputIterator >
OutputIterator locate (const Arrangement_2< Traits, Dcel > &arr, InputIterator begin, InputIterator end, OutputIterator oi)
 performs a batched point-location operation on a given arrangement.
 
template<class GeomTraitsA , class GeomTraitsB , class GeomTraitsRes , class TopTraitsA , class TopTraitsB , class TopTraitsRes , class OverlayTraits >
void overlay (const Arrangement_2< GeomTraitsA, TopTraitsA > &arr1, const Arrangement_2< GeomTraitsB, TopTraitsB > &arr2, Arrangement_2< GeomTraitsRes, TopTraitsRes > &arr_res, OverlayTraits &ovl_tr)
 Computes the overlay of two arrangements arr1 and arr2, and sets the output arrangement res to represent the overlaid arrangement.
 
template<typename Traits , typename Dcel1 , typename Dcel2 , typename ResDcel , typename OverlayTraits >
void overlay (const Arrangement_with_history_2< Traits, Dcel1 > &arr1, const Arrangement_with_history_2< Traits, Dcel2 > &arr2, Arrangement_with_history_2< Traits, ResDcel > &res, OverlayTraits &ovl_tr)
 Computes the overlay of two arrangements with history arr1 and arr2, and sets the output arrangement with history res to represent the overlaid arrangement.
 
template<typename Traits , typename TopologyTraits , typename OutputIterator >
OutputIterator decompose (const Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, OutputIterator oi)
 produces the symbolic vertical decomposition of a given arrangement.
 
template<typename Traits , typename Dcel , typename PointLocation >
Arrangement_2< Traits, Dcel >::Halfedge_handle insert_non_intersecting_curve (Arrangement_2< Traits, Dcel > &arr, const typename Traits::X_monotone_curve_2 &xc, const PointLocation &pl=walk_pl)
 Inserts a given \( x\)-monotone curve into a given arrangement, where the interior of the given curve is disjoint from all existing arrangement vertices and edges.
 
template<typename Traits , typename Dcel , InputIterator >
void insert_non_intersecting_curves (Arrangement_2< Traits, Dcel > &arr, InputIterator first, InputIterator last)
 Inserts a set of \( x\)-monotone curves in a given range into a given arrangement.
 
template<typename Traits , typename Dcel , typename PointLocation >
Arrangement_2< Traits, Dcel >::Vertex_handle insert_point (Arrangement_2< Traits, Dcel > &arr, const typename Traits::Point_2 &p, const PointLocation &pl=walk_pl)
 Inserts a given point into a given arrangement.
 
template<typename Traits , typename Dcel >
bool is_valid (const Arrangement_2< Traits, Dcel > &arr)
 Checks the validity of a given arrangement.
 
template<typename Traits , typename Dcel >
Arrangement_2< Traits, Dcel >::Face_handle remove_edge (Arrangement_2< Traits, Dcel > &arr, typename Arrangement_2< Traits, Dcel >::Halfedge_handle e)
 Removes an edge given by one of the twin halfedges that forms it, from a given arrangement.
 
template<typename Traits , typename Dcel >
bool remove_vertex (Arrangement_2< Traits, Dcel > &arr, typename Arrangement_2< Traits, Dcel >::Vertex_handle v)
 Attempts to removed a given vertex from a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits , typename Curve , typename PointLocation >
bool do_intersect (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const Curve &c, const PointLocation &pl)
 Checks if a given curve or \(x\)-monotone curve intersects an existing arrangement's edges or vertices.
 
template<typename GeometryTraits , typename TopologyTraits , typename PointLocation >
Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge_handle insert_non_intersecting_curve (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const typename Traits::X_monotone_curve_2 &xc, const PointLocation &pl=walk_pl)
 Inserts a given \( x\)-monotone curve into a given arrangement, where the given curve and the existing arrangement edges (more precisely, the curves geometric mappings of the edges) must be pairwise disjoint in their interiors, and the interior of the input curve must not contain existing arrangement vertices (more precisely, the points geometric mappings of the vertices).
 
template<typename GeometryTraits , typename TopologyTraits , typename InputIterator >
void insert_non_intersecting_curves (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, InputIterator first, InputIterator last)
 Inserts a set of \( x\)-monotone curves in a given range into a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits , typename PointLocation >
Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Vertex_handle insert_point (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const typename Traits::Point_2 &p, const PointLocation &pl=walk_pl)
 Inserts a given point into a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits >
bool is_valid (const Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr)
 Checks the validity of a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits >
Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Face_handle remove_edge (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, typename Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Halfedge_handle e)
 Removes an edge given by one of the twin halfedges that forms it, from a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits >
bool remove_vertex (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, typename Arrangement_on_surface_2< GeometryTraits, TopologyTraits >::Vertex_handle v)
 Attempts to removed a given vertex from a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits , typename OutputIterator , typename PointLocation >
OutputIterator zone (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const typename GeometryTraits::X_monotone_curve_2 &c, OutputIterator oi, const PointLocation &pl)
 computes the zone of the given \(x\)-monotone curve in a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits , typename PointLocation >
Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits >::Curve_handle insert (Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits > &arr, const typename Traits::Curve_2 &c, const PointLocation &pl=walk_pl)
 Inserts the given curve c into the arrangement with history arr, and returns a handle to the inserted curve.
 
template<typename GeometryTraits , typename TopologyTraits , typename InputIterator >
void insert (Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits > &arr, InputIterator first, InputIterator last)
 Aggregately inserts the curves in the range [first,last) into the arrangement with history arr using the sweep-line framework.
 
template<typename GeometryTraits , typename TopologyTraits >
Size remove_curve (Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits > &arr, typename Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits >::Curve_handle ch)
 Removes a given curve from a given arrangement.
 
template<typename GeometryTraits , typename TopologyTraits1 , typename TopologyTraits12 , typename ResTopologyTraits , typename OverlayTraits >
void overlay (const Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits1 > &arr1, const Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits12 > &arr2, Arrangement_on_surface_with_history_2< GeometryTraits, ResTopologyTraits > &res, OverlayTraits &ovl_tr)
 
template<typename GeometryTraits , typename TopologyTraits1 , typename TopologyTraits2 , typename ResTopologyTraits >
void overlay (const Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits1 > &arr1, const Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits2 > &arr2, Arrangement_on_surface_with_history_2< GeometryTraits, ResTopologyTraits > &res)
 
template<typename Traits , typename Dcel , typename PointLocation >
Arrangement_with_history_2< Traits, Dcel >::Curve_handle insert (Arrangement_with_history_2< Traits, Dcel > &arr, const typename Traits::Curve_2 &c, const PointLocation &pl=walk_pl)
 Inserts the given curve c into the arrangement with history arr, and returns a handle to the inserted curve.
 
template<typename Traits , typename Dcel , typename InputIterator >
void insert (Arrangement_with_history_2< Traits, Dcel > &arr, InputIterator first, InputIterator last)
 Aggregately inserts the curves in the range [first,last) into the arrangement with history arr using the sweep-line framework.
 
template<typename Traits , typename Dcel >
Size remove_curve (Arrangement_with_history_2< Traits, Dcel > &arr, typename Arrangement_with_history_2< Traits, Dcel >::Curve_handle ch)
 Removes a given curvespecified by its handle ch, from a given arrangement arr, deleting all the edges it induces.
 
template<typename Traits , typename Dcel1 , typename Dcel2 , typename ResDcel >
void overlay (const Arrangement_with_history_2< Traits, Dcel1 > &arr1, const Arrangement_with_history_2< Traits, Dcel2 > &arr2, Arrangement_with_history_2< Traits, ResDcel > &res)
 
template<typename GeometryTraits_2 , typename Dcel , typename GSOptions >
void draw (const Arrangement_2< GeometryTraits_2, Dcel > &arr, const GSOptions &gso)
 opens a new window and draws arr, an instance of the CGAL::Arrangement_2 class template.
 
template<typename GeometryTraits_2 , typename Dcel >
void draw (const Arrangement_2< GeometryTraits_2, Dcel > &arr)
 A shortcut to CGAL::draw(arr, Graphics_scene_options{}).
 
template<typename GeometryTraits_2 , typename Dcel , typename GSOptions >
void add_to_graphics_scene (const Arrangement_2< GeometryTraits_2, Dcel > &arr, CGAL::Graphics_scene &gs, const GSOptions &gso)
 adds the vertices, edges and faces of arr into the given graphic scene gs.
 
template<typename GeometryTraits_2 , typename Dcel >
void add_to_graphics_scene (const Arrangement_2< GeometryTraits_2, Dcel > &arr, CGAL::Graphics_scene &gs)
 A shortcut to CGAL::add_to_graphics_scene(arr, gs, Graphics_scene_options{}).
 
template<typename Traits , typename Dcel >
std::ostream & operator<< (std::ostream &os, const Arrangement_2< Traits, Dcel > &arr)
 Inserts the arrangement object arr into the output stream os using the output format defined by the Arr_text_formatter class.
 
template<class Traits , class Dcel >
std::istream & operator>> (std::istream &is, Arrangement_2< Traits, Dcel > &arr)
 Extracts an arrangement from a given input stream using the input format defined by the Arr_text_formatter class - that is, only the basic geometric and topological features of the arrangement are read and no auxiliary data is attached to the Dcel features.
 
template<typename Traits , typename Dcel >
std::ostream & operator<< (std::ostream &os, const Arrangement_with_history_2< Traits, Dcel > &arr)
 Inserts the arrangement-with-history object arr into the output stream os using the output format defined by the Arr_with_history_text_formatter class.
 
template<class Traits , class Dcel >
std::istream & operator>> (std::istream &is, Arrangement_with_history_2< Traits, Dcel > &arr)
 Extracts an arrangement-with-history from a given input stream using the default input format.
 

Variables

const Arr_parameter_space ARR_LEFT_BOUNDARY = LEFT_BOUNDARY
 
const Arr_parameter_space ARR_RIGHT_BOUNDARY = RIGHT_BOUNDARY
 
const Arr_parameter_space ARR_BOTTOM_BOUNDARY = BOTTOM_BOUNDARY
 
const Arr_parameter_space ARR_TOP_BOUNDARY = TOP_BOUNDARY
 
const Arr_parameter_space ARR_INTERIOR = INTERIOR
 
template<typename Traits , typename Dcel , typename Curve , typename PointLocation >
void insert (Arrangement_2< Traits, Dcel > &arr, const Curve &c, const PointLocation &pl=walk_pl)
 The function insert inserts one or more curves or \( x\)-monotone curves into a given arrangement, where no restrictions are imposed on the inserted curves.
 
template<typename Traits , typename Dcel >
void insert (Arrangement_2< Traits, Dcel > &arr, const typename Traits::X_monotone_curve_2 &xc, typename Arr_point_location_result< Arrangement_2< Traits, Dcel > >::type obj)
 Inserts the \( x\)-monotone (only) curve xc into the arrangement arr.
 
template<typename Traits , typename Dcel , class InputIterator >
void insert (Arrangement_2< Traits, Dcel > &arr, InputIterator first, InputIterator last)
 Aggregately inserts the curves or \( x\)-monotone curves in the range [first,last) into the arrangement arr using the sweep-line framework.
 
template<typename GeometryTraits , typename TopologyTraits , typename Curve , typename PointLocation >
void insert (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const Curve &c, const PointLocation &pl=walk_pl)
 The function insert inserts one or more curves or \( x\)-monotone curves into a given arrangement, where no restrictions are imposed on the inserted curves.
 
template<typename GeometryTraits , typename TopologyTraits >
void insert (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, const typename Traits::X_monotone_curve_2 &xc, typename Arr_point_location_result< Arrangement_on_surface_2< GeometryTraits, TopologyTraits > >::type obj)
 Inserts the \( x\)-monotone (only) curve xc into the arrangement arr.
 
template<typename GeometryTraits , typename TopologyTraits , typename InputIterator >
void insert (Arrangement_on_surface_2< GeometryTraits, TopologyTraits > &arr, InputIterator first, InputIterator last)
 Aggregately inserts the curves or \( x\)-monotone curves in the range [first,last) into the arrangement arr using the sweep-line framework.