CGAL 4.7 - 2D Arrangements: CGAL::insert()

\( \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
Functions
CGAL::insert()
Free Functions

##

## Functions

template<typename Traits , typename Dcel , typename PointLocation >
Arrangement_with_history_2 < Traits, Dcel >::Curve_handle | CGAL::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 | CGAL::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 , class Curve , class PointLocation >
void | CGAL::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 | CGAL::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 | CGAL::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.

## Function Documentation

template<typename Traits , typename Dcel , typename PointLocation >

Arrangement_with_history_2<Traits,Dcel>::Curve_handle CGAL::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.

`c` is subdivided into \( x\)-monotone subcurves (and perhaps isolated points). Each subcurve is in turn inserted into the arrangement by locating its left endpoint and computing its zone until reaching the right endpoint.

The given point-location object `pl` is used to locate the left endpoints of the \( x\)-monotone curves. By default, the function uses the "walk along line" point-location strategy - namely an instance of the class `Arr_walk_along_line_point_location<Arrangement_2<Traits,Dcel> >`.

Precondition
  If provided, `pl` is attached to the given arrangement `arr`.

`#include <CGAL/Arrangement_with_history_2.h>`

template<class Traits , class Dcel , class Curve , class PointLocation >

void CGAL::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.

If an inserted curve is not \( x\)-monotone curve, it is subdivided into \( x\)-monotone subcurves (and perhaps isolated points), which are inserted into the arrangement.

Requirements

- If the curve is \( x\)-monotone curve then The instantiated `Traits` class must model the `ArrangementXMonotoneTraits_2` concept. In case that the curve is not \( x\)-monotone then the instantiated `Traits` class must model the `ArrangementTraits_2` concept. That is, it should define the `Curve_2` type, and support its subdivision into \( x\)-monotone subcurves (and perhaps isolated points).
- The point-location object `pl`, must model the `ArrangementPointLocation_2` concept.

Inserts the given curve `c` into the arrangement `arr`. `c` is subdivided into \( x\)-monotone subcurves (and perhaps isolated points). Each subcurve is in turn inserted into the arrangement by locating its left endpoint and computing its zone until reaching the right endpoint.

The given point-location object `pl` is used to locate the left endpoints of the \( x\)-monotone curves. By default, the function uses the "walk along line" point-location strategy - namely an instance of the class `Arr_walk_along_line_point_location<Arrangement_2<Traits,Dcel> >`.

Precondition
  If provided, `pl` must be attached to the given arrangement `arr`.

`#include <CGAL/Arrangement_2.h>`

Examples:
  Arrangement_on_surface_2/aggregated_insertion.cpp, Arrangement_on_surface_2/algebraic_curves.cpp, Arrangement_on_surface_2/algebraic_segments.cpp, Arrangement_on_surface_2/Bezier_curves.cpp, Arrangement_on_surface_2/bgl_dual_adapter.cpp, Arrangement_on_surface_2/bgl_primal_adapter.cpp, Arrangement_on_surface_2/circles.cpp, Arrangement_on_surface_2/circular_arcs.cpp, Arrangement_on_surface_2/conic_multiplicities.cpp, Arrangement_on_surface_2/conics.cpp, Arrangement_on_surface_2/consolidated_curve_data.cpp, Arrangement_on_surface_2/curve_history.cpp, Arrangement_on_surface_2/dcel_extension.cpp, Arrangement_on_surface_2/dcel_extension_io.cpp, Arrangement_on_surface_2/dual_lines.cpp, Arrangement_on_surface_2/dual_with_data.cpp, Arrangement_on_surface_2/edge_manipulation_curve_history.cpp, Arrangement_on_surface_2/face_extension.cpp, Arrangement_on_surface_2/generic_curve_data.cpp, Arrangement_on_surface_2/global_insertion.cpp, Arrangement_on_surface_2/global_removal.cpp, Arrangement_on_surface_2/incremental_insertion.cpp, Arrangement_on_surface_2/io_curve_history.cpp, Arrangement_on_surface_2/observer.cpp, Arrangement_on_surface_2/overlay_unbounded.cpp, Arrangement_on_surface_2/polylines.cpp, Arrangement_on_surface_2/predefined_kernel.cpp, Arrangement_on_surface_2/rational_functions.cpp, and Arrangement_on_surface_2/unbounded_rational_functions.cpp.

template<typename Traits , typename Dcel >

void CGAL::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`.

The object `obj`, which either wraps a `Vertex_const_handle`, a `Halfedge_const_handle`, or a `Face_const_handle`, represents the location of `xc`'s left endpoint in the arrangement. The zone of `xc` is computed starting from the feature represented by `obj`. As in the case above, the zone computation terminates, when the right endpoint is reached. Thus, point-location is not required.

`#include <CGAL/Arrangement_2.h>`