\( \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 Arrangements
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL Namespace Reference

Classes

class  Arr_accessor
 
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_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...
 
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...
 
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_base
 
class  Arr_default_dcel
 The default Dcel class used by the Arrangement_2 class-template is parameterized by a traits class, which is a model of the ArrangementBasicTraits_2 concept. 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_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_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_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_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_landmarks_point_location
 
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
 
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...
 
class  Arr_observer
 
class  Arr_point_location_result
 A unary metafunction to determine the return type of a point-location or vertical ray-shoot query. 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_oblivious_side_tag
 The categories Left_side_category, Right_side_category, Bottom_side_category, and Top_side_category, nested in any model of the ArrangementBasicTraits_2, must be convertible to Arr_oblivious_side_tag. More...
 
class  Arr_open_side_tag
 All the four types Left_side_category, Right_side_category, Bottom_side_category, and Top_side_category nested in any model of the concept ArrangementOpenBoundaryTraits must be convertible to Arr_open_side_tag, which derives from Arr_oblivious_side_tag. More...
 
class  Arr_trapezoid_ric_point_location
 
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
 
class  Arrangement_2
 
class  Arrangement_with_history_2
 
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_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_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_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...
 

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...
 
enum  Arr_parameter_space {
  ARR_LEFT_BOUNDARY, ARR_RIGHT_BOUNDARY, ARR_BOTTOM_BOUNDARY, ARR_TOP_BOUNDARY,
  ARR_INTERIOR
}
 

Functions

template<typename Traits , typename Dcel , typename InputIterator , typename OutputIterator >
OutputIterator locate (const Arrangement_2< Traits, Dcel > &arr, InputIterator points_begin, InputIterator points_end, OutputIterator oi)
 Performs a batched point-location operation on a given arrangement. More...
 
template<typename Traits , typename Dcel , typename Formatter >
std::istream & read (Arrangement_2< Traits, Dcel > &arr, std::istream &is, Formatter &formatter)
 Reads the arrangement object arr from the given input stream is using a specific input format defined by "formatter".
 
template<typename Traits , typename Dcel , typename Formatter >
std::ostream & write (const Arrangement_2< Traits, Dcel > &arr, std::ostream &os, Formatter &formatter)
 Writes the arrangement object arr into the given output stream os using a specific output format defined by formatter.
 
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. More...
 
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<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. More...
 
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. More...
 
template<typename Traits , typename Dcel , typename OutputIterator >
OutputIterator decompose (const Arrangement_2< Traits, Dcel > &arr, OutputIterator oi)
 Produces the symbolic vertical decomposition of a given arrangement, performing a batched vertical ray-shooting query from all arrangement vertices, such that every vertex is associated with a pair of objects, one corresponds to the arrangement feature that lies below it, and the other corresponds to the feature that lies above it. More...
 
template<typename Traits , typename Dcel , typename WithHistoryFormatter >
std::istream & read (Arrangement_with_history_2< Traits, Dcel > &arr, std::istream &is, WithHistoryFormatter &formatter)
 Reads the arrangement-with-history object arr from the given input stream is using a specific input format defined by "formatter".
 
template<typename Traits , typename Dcel , typename WithHistoryFormatter >
std::ostream & write (const Arrangement_with_history_2< Traits, Dcel > &arr, std::ostream &os, WithHistoryFormatter &formatter)
 Writes the arrangement-with-history object arr into the given output stream os using a specific output format defined by formatter.
 
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. More...
 
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.
 
template<class GeomTraits , class TopTraits , class Curve , class PointLocation >
bool do_intersect (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c, const PointLocation &pl)
 Checks if a given curve or \( x\)-monotone curve intersects an existing arrangement's edges or vertices. More...
 
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. More...
 
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. More...
 
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. More...
 
template<typename Traits , typename Dcel >
bool is_valid (const Arrangement_2< Traits, Dcel > &arr)
 Checks the validity of a given arrangement. More...
 
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. More...
 
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. More...
 
template<class GeomTraits , class TopTraits , class OutputIterator , class PointLocation >
OutputIterator zone (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, OutputIterator oi, const PointLocation &pl)
 Compute the zone of the given \( x\)-monotone curve in the existing arrangement. More...
 
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. More...
 
template<class Traits , class Dcel , 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<class Traits , class Dcel >
Size remove_curve (Arrangement_with_history_2< Traits, Dcel > &arr, typename Arrangement_with_history_2< Traits, Dcel >::Curve_handle ch)
 Removes a given curve from a given arrangement. More...
 
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 SegmentTraits >
Qt_widget & operator<< (std::ostream &os, const Polyline_2< SegmentTraits > &polyline)
 Inserts a polyline into a given Qt_widget stream. More...
 
template<class Traits , class Dcel , class Curve , class 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. More...
 
template<typename Traits , typename Dcel >
void insert (Arrangement_2< Traits, Dcel > &arr, const typename Traits::X_monotone_curve_2 &xc, const Object &obj)
 Inserts the \( x\)-monotone (only) curve xc into the arrangement arr. More...
 
template<class Traits , class 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.