CGAL 6.1 - 2D Arrangements

Loading...
Searching...
No Matches
Functions
CGAL::insert()
Reference Manual » Free Functions

##

## Functions
template<typename GeometryTraits , typename TopologyTraits , typename PointLocation >
Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits >::Curve_handle | CGAL::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 | CGAL::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 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.
template<typename Traits , typename Dcel , typename 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<typename Traits , typename Dcel , typename Curve , typename 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.
template<typename Traits , typename Dcel >
void | CGAL::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 | 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.
template<typename GeometryTraits , typename TopologyTraits , typename Curve , typename PointLocation >
void | CGAL::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 | CGAL::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 | CGAL::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.

## Function Documentation

## ◆ insert() [1/10]

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

void CGAL::insert | ( | Arrangement_2< Traits, Dcel > & | arr,
|  | const Curve & | c,
|  | const PointLocation & | pl = `walk_pl`
| ) |  |

`#include <CGAL/Arrangement_2.h>`

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 `AosXMonotoneTraits_2` concept. In case that the curve is not \(x\)-monotone then the instantiated `Traits` class must model the `ArrtTraits_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 `AosPointLocation_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`.

Examples
  Arrangement_on_surface_2/Bezier_curves.cpp, Arrangement_on_surface_2/algebraic_curves.cpp, Arrangement_on_surface_2/algebraic_segments.cpp, Arrangement_on_surface_2/count_and_trace.cpp, Arrangement_on_surface_2/draw_arr.cpp, Arrangement_on_surface_2/ellipses.cpp, Arrangement_on_surface_2/hyperbolas.cpp, Arrangement_on_surface_2/linear_conics.cpp, Arrangement_on_surface_2/parabolas.cpp, and Arrangement_on_surface_2/spherical_insert.cpp.

## ◆ insert() [2/10]

template<typename Traits , typename Dcel >

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

`#include <CGAL/Arrangement_2.h>`

Inserts the \(x\)-monotone (only) curve `xc` into the arrangement `arr`.

The object `obj`, which 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.

## ◆ insert() [3/10]

template<typename Traits , typename Dcel , class InputIterator >

void CGAL::insert | ( | Arrangement_2< Traits, Dcel > & | arr,
|  | InputIterator | first,
|  | InputIterator | last
| ) |  |

`#include <CGAL/Arrangement_2.h>`

Aggregately inserts the curves or \(x\)-monotone curves in the range `[first,last)` into the arrangement `arr` using the sweep-line framework.

Parameters

  arr | the target arrangement.
  first | the iterator to the first element in the range of curves.
  last | the past-the-end iterator of the range of curves.

## ◆ insert() [4/10]

template<typename GeometryTraits , typename TopologyTraits , typename Curve , typename PointLocation >

void CGAL::insert | ( | Arrangement_on_surface_2< GeometryTraits, TopologyTraits > & | arr,
|  | const Curve & | c,
|  | const PointLocation & | pl = `walk_pl`
| ) |  |

`#include <CGAL/Arrangement_on_surface_2.h>`

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 `AosXMonotoneTraits_2` concept. In case that the curve is not \(x\)-monotone then the instantiated `Traits` class must model the `AosTraits_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 `AosPointLocation_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_on_surface_2<GeometryTraits, TopologyTraits> >`.

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

## ◆ insert() [5/10]

template<typename GeometryTraits , typename TopologyTraits >

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

`#include <CGAL/Arrangement_on_surface_2.h>`

Inserts the \( x\)-monotone (only) curve `xc` into the arrangement `arr`.

The object `obj`, which 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.

## ◆ insert() [6/10]

template<typename GeometryTraits , typename TopologyTraits , typename InputIterator >

void CGAL::insert | ( | Arrangement_on_surface_2< GeometryTraits, TopologyTraits > & | arr,
|  | InputIterator | first,
|  | InputIterator | last
| ) |  |

`#include <CGAL/Arrangement_on_surface_2.h>`

Aggregately inserts the curves or \(x\)-monotone curves in the range `[first,last)` into the arrangement `arr` using the sweep-line framework.

Parameters

  arr | the target arrangement.
  first | the iterator to the first element in the range of curves.
  last | the past-the-end iterator of the range of curves.

## ◆ insert() [7/10]

template<typename GeometryTraits , typename TopologyTraits , typename PointLocation >

Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits >::Curve_handle CGAL::insert | ( | Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits > & | arr,
|  | const typename Traits::Curve_2 & | c,
|  | const PointLocation & | pl = `walk_pl`
| ) |  |

`#include <CGAL/Arrangement_on_surface_with_history_2.h>`

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`.

## ◆ insert() [8/10]

template<typename GeometryTraits , typename TopologyTraits , typename InputIterator >

void CGAL::insert | ( | Arrangement_on_surface_with_history_2< GeometryTraits, TopologyTraits > & | arr,
|  | InputIterator | first,
|  | InputIterator | last
| ) |  |

`#include <CGAL/Arrangement_on_surface_with_history_2.h>`

Aggregately inserts the curves in the range `[first,last)` into the arrangement with history `arr` using the sweep-line framework.

Parameters

  arr | the target arrangement with history.
  first | the iterator to the first element in the range of curves.
  last | the past-the-end iterator of the range of curves.

## ◆ insert() [9/10]

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`
| ) |  |

`#include <CGAL/Arrangement_with_history_2.h>`

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`.

## ◆ insert() [10/10]

template<typename Traits , typename Dcel , typename InputIterator >

void CGAL::insert | ( | Arrangement_with_history_2< Traits, Dcel > & | arr,
|  | InputIterator | first,
|  | InputIterator | last
| ) |  |

`#include <CGAL/Arrangement_with_history_2.h>`

Aggregately inserts the curves in the range `[first,last)` into the arrangement with history `arr` using the sweep-line framework.

Parameters

  arr | the target arrangement with history.
  first | the iterator to the first element in the range of curves.
  last | the past-the-end iterator of the range of curves.