CGAL 4.7 - 2D Arrangements: CGAL Namespace Reference

\( \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.7 - 2D Arrangements

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Classes | Enumerations | Functions
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_polycurve_traits_2
| Note: The `GeometryTraits_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_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.