BWAPI
|
#include <boost/mpl/assert.hpp>
#include <CGAL/Arr_tags.h>
#include <CGAL/Arr_enums.h>
#include <CGAL/HalfedgeDS_iterator.h>
#include <CGAL/Arrangement_2/Arrangement_2_iterators.h>
#include <CGAL/In_place_list.h>
#include <CGAL/Arr_default_dcel.h>
#include <CGAL/Arr_observer.h>
#include <CGAL/Arr_accessor.h>
#include <CGAL/Arrangement_2/Arr_traits_adaptor_2.h>
#include <CGAL/function_objects.h>
#include <CGAL/Iterator_project.h>
#include <CGAL/Iterator_transform.h>
#include <map>
#include <vector>
#include <algorithm>
#include <CGAL/Arrangement_2/Arrangement_on_surface_2_impl.h>
#include <CGAL/Arrangement_2/Arrangement_on_surface_2_global.h>
Go to the source code of this file.
Classes | |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ > |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Is_concrete_vertex |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Is_valid_vertex |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Is_valid_halfedge |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Is_valid_face |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Is_unbounded_face |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Edge_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Edge_const_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Unbounded_face_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Unbounded_face_const_iterator |
struct | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Halfedge_to_ccb_circulator |
struct | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Const_halfedge_to_ccb_circulator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Isolated_vertex_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Isolated_vertex_const_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::_Valid_vertex_iterator |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Vertex |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Halfedge |
class | Arrangement_on_surface_2< GeomTraits_, TopTraits_ >::Face |
Functions | |
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 *=0) |
template<class GeomTraits , class TopTraits , class Curve > | |
void | insert (Arrangement_on_surface_2< GeomTraits, TopTraits > &arr, const Curve &c) |
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 > | |
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<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 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) |
The header file for the Arrangement_on_surface_2<Traits,Dcel> class.
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.
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 | ||
) |
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. |
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 | ||
) |
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. |
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. |