BWAPI
|
#include <boost/type_traits.hpp>
#include <boost/mpl/if.hpp>
#include <CGAL/Arrangement_on_surface_2.h>
#include <CGAL/Arr_accessor.h>
#include <CGAL/Basic_sweep_line_2.h>
#include <CGAL/Sweep_line_2.h>
#include <CGAL/Arrangement_zone_2.h>
#include <CGAL/Arrangement_2/Arr_compute_zone_visitor.h>
#include <CGAL/Arrangement_2/Arr_do_intersect_zone_visitor.h>
#include <CGAL/Arrangement_2/Arr_traits_adaptor_2.h>
#include <CGAL/Sweep_line_2/Sweep_line_2_utils.h>
#include <CGAL/Sweep_line_2/Sweep_line_2_visitors.h>
#include <list>
Go to the source code of this file.
Functions | |
template<class GeomTraits , class TopTraits , class PointLocation , class ZoneVisitor > | |
CGAL_BEGIN_NAMESPACE void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::Curve_2 &c, const PointLocation &pl, ZoneVisitor &visitor, boost::is_same< int, double >::type) |
template<class GeomTraits , class TopTraits , class PointLocation , class ZoneVisitor > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const PointLocation &pl, ZoneVisitor &visitor, boost::is_same< int, int >::type) |
template<class GeomTraits , class TopTraits , class Curve , class PointLocation , class ZoneVisitor > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c, const PointLocation &pl, ZoneVisitor &visitor) |
template<class GeomTraits , class TopTraits , class Curve , class PointLocation > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c, const PointLocation &pl, typename PointLocation::Point_2 *) |
template<class GeomTraits , class TopTraits , class Curve > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c) |
template<typename GeomTraits , typename TopTraits , typename InputIterator > | |
void | insert_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin_xcurves, InputIterator end_xcurves) |
template<typename GeomTraits , typename TopTraits , typename XcInputIterator , typename PInputIterator > | |
void | insert_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, XcInputIterator begin_xcurves, XcInputIterator end_xcurves, PInputIterator begin_points, PInputIterator end_points) |
template<typename GeomTraits , typename TopTraits , typename XcInputIterator , typename PInputIterator > | |
void | insert_non_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, XcInputIterator begin_xcurves, XcInputIterator end_xcurves, PInputIterator begin_points, PInputIterator end_points) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end, boost::is_same< int, double >::type) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end, boost::is_same< int, int >::type) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end) |
template<class GeomTraits , class TopTraits > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const Object &obj) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
CGAL_DEPRECATED void | insert_x_monotone_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const PointLocation &pl) |
template<class GeomTraits , class TopTraits > | |
CGAL_DEPRECATED void | insert_x_monotone_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
CGAL_DEPRECATED void | insert_x_monotone_curves (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end) |
template<class GeomTraits , class TopTraits > | |
CGAL_DEPRECATED void | insert_x_monotone_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const Object &obj) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
CGAL_DEPRECATED void | insert_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::Curve_2 &c, const PointLocation &pl) |
template<class GeomTraits , class TopTraits > | |
CGAL_DEPRECATED void | insert_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::Curve_2 &c) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
CGAL_DEPRECATED void | insert_curves (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
Arrangement_on_surface_2 < GeomTraits, TopTraits > ::Halfedge_handle | insert_non_intersecting_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const PointLocation &pl) |
template<class GeomTraits , class TopTraits > | |
Arrangement_on_surface_2 < GeomTraits, TopTraits > ::Halfedge_handle | insert_non_intersecting_curve (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c) |
template<typename GeomTraits , typename TopTraits , typename InputIterator > | |
void | non_intersecting_insert_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin_xcurves, InputIterator end_xcurves) |
template<typename GeomTraits , typename TopTraits , typename XcInputIterator , typename PInputIterator > | |
void | non_intersecting_insert_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, XcInputIterator begin_xcurves, XcInputIterator end_xcurves, PInputIterator begin_points, PInputIterator end_points) |
template<typename GeomTraits , typename TopTraits , typename XcInputIterator , typename PInputIterator > | |
void | non_intersecting_insert_non_empty (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, XcInputIterator begin_xcurves, XcInputIterator end_xcurves, PInputIterator begin_points, PInputIterator end_points) |
template<class GeomTraits , class TopTraits , class InputIterator > | |
void | insert_non_intersecting_curves (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, InputIterator begin, InputIterator end) |
template<class GeomTraits , class TopTraits > | |
Arrangement_on_surface_2 < GeomTraits, TopTraits > ::Face_handle | remove_edge (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, typename Arrangement_on_surface_2< GeomTraits, TopTraits >::Halfedge_handle e) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
Arrangement_on_surface_2 < GeomTraits, TopTraits > ::Vertex_handle | insert_point (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::Point_2 &p, const PointLocation &pl) |
template<class GeomTraits , class TopTraits > | |
Arrangement_on_surface_2 < GeomTraits, TopTraits > ::Vertex_handle | insert_point (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::Point_2 &p) |
template<class GeomTraits , class TopTraits > | |
bool | remove_vertex (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, typename Arrangement_on_surface_2< GeomTraits, TopTraits >::Vertex_handle v) |
template<class GeomTraits , class TopTraits > | |
bool | is_valid (const Arrangement_on_surface_2< GeomTraits, TopTraits > &arr) |
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) |
template<class GeomTraits , class TopTraits , class OutputIterator > | |
OutputIterator | zone (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, OutputIterator oi) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
bool | do_intersect (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const PointLocation &pl, boost::is_same< int, int >::type) |
template<class GeomTraits , class TopTraits , class PointLocation > | |
bool | do_intersect (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const typename GeomTraits::X_monotone_curve_2 &c, const PointLocation &pl, boost::is_same< int, double >::type) |
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) |
template<class GeomTraits , class TopTraits , class Curve > | |
bool | do_intersect (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c) |
Global insertion functions for the Arrangement_2 class.
bool do_intersect | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const PointLocation & | pl, | ||
boost::is_same< int, int >::type | |||
) |
bool do_intersect | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const PointLocation & | pl, | ||
boost::is_same< int, double >::type | |||
) |
bool do_intersect | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const Curve & | c, | ||
const PointLocation & | pl | ||
) |
Checks if the given curve/x-monotone curve intersects the existing arrangement.
arr | The arrangement. |
c | The curve/x-monotone curve. |
pi | The point location strategy that is used to locate the starting point. |
bool do_intersect | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const Curve & | c | ||
) |
Checks if the given curve/x-monotone curve intersects the existing arrangement. Overloaded version with no point location object - the walk point-location strategy is used as default.
CGAL_BEGIN_NAMESPACE void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::Curve_2 & | c, | ||
const PointLocation & | pl, | ||
ZoneVisitor & | visitor, | ||
boost::is_same< int, double >::type | |||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const PointLocation & | pl, | ||
ZoneVisitor & | visitor, | ||
boost::is_same< int, int >::type | |||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const Curve & | c, | ||
const PointLocation & | pl, | ||
ZoneVisitor & | visitor | ||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const Curve & | c, | ||
const PointLocation & | pl, | ||
typename PointLocation::Point_2 * | = 0 |
||
) |
Insert a curve or x-monotone curve into the arrangement (incremental insertion). The inserted curve can be x-monotone (or not) and may intersect the existing arrangement.
arr | The arrangement. |
cv | The curve to be inserted. |
pl | A point-location object associated with the arrangement. |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const Curve & | c | ||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end, | ||
boost::is_same< int, double >::type | |||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end, | ||
boost::is_same< int, int >::type | |||
) |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end | ||
) |
Insert a range of curves or x-monotone curves into the arrangement (aggregated insertion). The inserted curves may intersect one another and may also intersect the existing arrangement.
arr | The arrangement. |
begin | An iterator for the first curve in the range. |
end | A past-the-end iterator for the curve range. |
void insert | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const Object & | obj | ||
) |
Insert an x-monotone curve into the arrangement (incremental insertion) when the location of the left endpoint of the curve is known and is given as an isertion hint. The inserted x-monotone curve may intersect the existing arrangement.
arr | The arrangement. |
cv | The x-monotone curve to be inserted. |
obj | An object that represents the location of cv's left endpoint in the arrangement. |
CGAL_DEPRECATED void insert_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::Curve_2 & | c, | ||
const PointLocation & | pl | ||
) |
CGAL_DEPRECATED void insert_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::Curve_2 & | c | ||
) |
CGAL_DEPRECATED void insert_curves | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end | ||
) |
void insert_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin_xcurves, | ||
InputIterator | end_xcurves | ||
) |
Insert a range of x-monotone curves into an empty arrangement
arr | the resulting arrangement |
begin | the begining of the curve range |
end | past-the-end curve range |
void insert_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
XcInputIterator | begin_xcurves, | ||
XcInputIterator | end_xcurves, | ||
PInputIterator | begin_points, | ||
PInputIterator | end_points | ||
) |
Insert a range of x-monotone curves and a range of isolated points into an empty arrangement
arr | the resulting arrangement |
begin_xcurves | the begining of the curve range |
end_xcurves | past-the-end curve range |
begin_points | the begining of the point range |
end_points | past-the-end point range |
void insert_non_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
XcInputIterator | begin_xcurves, | ||
XcInputIterator | end_xcurves, | ||
PInputIterator | begin_points, | ||
PInputIterator | end_points | ||
) |
Insert a range of x-monotone curves into a non-empty arrangement
arr | the resulting arrangement |
begin | the begining of the curve range |
end | past-the-end curve range |
Arrangement_on_surface_2<GeomTraits, TopTraits>::Halfedge_handle insert_non_intersecting_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const PointLocation & | pl | ||
) |
Insert an x-monotone curve into the arrangement, such that the curve interior does not intersect with any existing edge or vertex in the arragement (incremental insertion).
arr | The arrangement. |
c | The x-monotone curve to be inserted. |
pl | A point-location object associated with the arrangement. |
Arrangement_on_surface_2<GeomTraits, TopTraits>::Halfedge_handle insert_non_intersecting_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c | ||
) |
Insert an x-monotone curve into the arrangement, such that the curve interior does not intersect with any existing edge or vertex in the arragement (incremental insertion). The default point-location strategy is used for the curve insertion.
void insert_non_intersecting_curves | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end | ||
) |
Insert a range of pairwise interior-disjoint x-monotone curves into the arrangement, such that the curve interiors do not intersect with any existing edge or vertex in the arragement (aggregated insertion).
arr | The arrangement. |
begin | An iterator for the first x-monotone curve in the range. |
end | A past-the-end iterator for the x-monotone curve range. |
Arrangement_on_surface_2<GeomTraits, TopTraits>::Vertex_handle insert_point | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::Point_2 & | p, | ||
const PointLocation & | pl | ||
) |
Insert a vertex that corresponds to a given point into the arrangement. The inserted point may lie on any existing arrangement feature.
arr | The arrangement. |
p | The point to be inserted. |
pl | A point-location object associated with the arrangement. |
Arrangement_on_surface_2<GeomTraits, TopTraits>::Vertex_handle insert_point | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::Point_2 & | p | ||
) |
CGAL_DEPRECATED void insert_x_monotone_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const PointLocation & | pl | ||
) |
CGAL_DEPRECATED void insert_x_monotone_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c | ||
) |
CGAL_DEPRECATED void insert_x_monotone_curve | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
const Object & | obj | ||
) |
CGAL_DEPRECATED void insert_x_monotone_curves | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin, | ||
InputIterator | end | ||
) |
bool is_valid | ( | const Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr | ) |
Check the validity of the arrangement. In particular, check that the edegs are disjoint-interior, and the holes are located in their proper position.
arr | The arrangement. |
void non_intersecting_insert_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
InputIterator | begin_xcurves, | ||
InputIterator | end_xcurves | ||
) |
Insert a range of x-monotone curves into an empty arrangement
arr | the resulting arrangement |
begin | the begining of the curve range |
end | past-the-end curve range |
void non_intersecting_insert_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
XcInputIterator | begin_xcurves, | ||
XcInputIterator | end_xcurves, | ||
PInputIterator | begin_points, | ||
PInputIterator | end_points | ||
) |
Insert a range of x-monotone curves into an empty arrangement
arr | the resulting arrangement |
begin | the begining of the curve range |
end | past-the-end curve range |
void non_intersecting_insert_non_empty | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
XcInputIterator | begin_xcurves, | ||
XcInputIterator | end_xcurves, | ||
PInputIterator | begin_points, | ||
PInputIterator | end_points | ||
) |
Insert a range of x-monotone curves into a non-empty arrangement
arr | the resulting arrangement |
begin | the begining of the curve range |
end | past-the-end curve range |
Arrangement_on_surface_2<GeomTraits, TopTraits>::Face_handle remove_edge | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
typename Arrangement_on_surface_2< GeomTraits, TopTraits >::Halfedge_handle | e | ||
) |
Remove an edge from the arrangement. In case it is possible to merge the edges incident to the end-vertices of the removed edge after its deletion, the function performs these merges as well.
bool remove_vertex | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
typename Arrangement_on_surface_2< GeomTraits, TopTraits >::Vertex_handle | v | ||
) |
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. Meaning, it output the arrangment's vertices, edges and faces that the x-monotone curve intersects.
arr | The arrangement. |
c | The x-monotone curve that its zone was computed. |
oi | Output iterator of CGAL::Object to insert the zone elements to. |
pi | The point location strategy that is used to locate the starting point. |
OutputIterator zone | ( | Arrangement_on_surface_2< GeomTraits, TopTraits > & | arr, |
const typename GeomTraits::X_monotone_curve_2 & | c, | ||
OutputIterator | oi | ||
) |
Compute the zone of the given x-monotone curve in the existing arrangement. Overloaded version with no point location object - the walk point-location strategy is used as default.
arr | The arrangement. |
c | The x-monotone curve that its zone was computed. |
oi | Output iterator of CGAL::Object to insert the zone elements to. |