CGAL 5.1.2 - 2D Arrangements

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

◆ insert() [1/3]

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() [2/3]

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 
)

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

◆ insert() [3/3]

template<typename Traits , typename Dcel >
void CGAL::insert ( Arrangement_2< Traits, Dcel > &  arr,
const typename Traits::X_monotone_curve_2 &  xc,
const Object obj 
)

#include <CGAL/Arrangement_2.h>

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.