BWAPI
|
#include <Arr_overlay_sl_visitor.h>
A sweep-line visitor for overlaying a "red" arrangement and a "blue" arrangement, creating a result arrangement. All three arrangements are embedded on the same type of surface and use the same geometry traits.
typedef Overlay_helper::Arrangement_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Arrangement_2 |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Overlay_helper::Arrangement_blue_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Arrangement_blue_2 |
typedef Overlay_helper::Arrangement_red_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Arrangement_red_2 |
typedef Arr_construction_sl_visitor<Construction_helper> Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Base |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Reimplemented in Arr_spherical_topology_traits_2< GeomTraits, T_Dcel >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >.
typedef Arrangement_2::Ccb_halfedge_circulator Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Ccb_halfedge_circulator |
typedef Overlay_helper::Construction_helper Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Construction_helper |
typedef Overlay_helper::Event Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Event |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Reimplemented in Arr_spherical_topology_traits_2< GeomTraits, T_Dcel >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >.
typedef Base::Event_subcurve_iterator Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Event_subcurve_iterator |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Base::Event_subcurve_reverse_iterator Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Event_subcurve_reverse_iterator |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Arrangement_2::Face_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Face_handle |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Arrangement_blue_2::Face_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Face_handle_blue |
typedef Arrangement_red_2::Face_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Face_handle_red |
typedef Arrangement_2::Halfedge_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Halfedge_handle |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Arrangement_blue_2::Halfedge_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Halfedge_handle_blue |
typedef Arrangement_red_2::Halfedge_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Halfedge_handle_red |
typedef Unique_hash_map<Halfedge_handle, Halfedge_info> Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Halfedge_hash_map [protected] |
typedef std::pair<Halfedge_handle_red, Halfedge_handle_blue> Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Halfedge_info [protected] |
typedef Arrangement_2::Outer_ccb_iterator Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Outer_ccb_iterator |
typedef OverlayHelper_ Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Overlay_helper |
typedef OverlayTraits_ Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Overlay_traits |
Reimplemented in Arr_spherical_topology_traits_2< GeomTraits, T_Dcel >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >.
typedef Traits_2::Point_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Point_2 |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Base::Status_line_iterator Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Status_line_iterator |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Overlay_helper::Subcurve Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Subcurve |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Reimplemented in Arr_spherical_topology_traits_2< GeomTraits, T_Dcel >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >.
typedef Overlay_helper::Traits_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Traits_2 |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Reimplemented in Arr_spherical_topology_traits_2< GeomTraits, T_Dcel >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, Arr_unb_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >, and Arr_bounded_planar_topology_traits_2< GeomTraits_, Dcel_ >::Sweep_line_overlay_visitor< ArrangementA_, ArrangementB_, OverlayTraits_ >.
typedef Arrangement_2::Vertex_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Vertex_handle |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
typedef Arrangement_blue_2::Vertex_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Vertex_handle_blue |
typedef Arrangement_red_2::Vertex_const_handle Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Vertex_handle_red |
typedef Traits_2::X_monotone_curve_2 Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::X_monotone_curve_2 |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::Arr_overlay_sl_visitor | ( | const Arrangement_red_2 * | red_arr, |
const Arrangement_blue_2 * | blue_arr, | ||
Arrangement_2 * | res_arr, | ||
Overlay_traits * | overlay_traits | ||
) | [inline] |
Constructor
virtual Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::~Arr_overlay_sl_visitor | ( | ) | [inline, virtual] |
Destructor
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::_create_edge | ( | Subcurve * | sc, |
Halfedge_handle | res_he | ||
) | [protected] |
Update a newly created result edge using the overlay traits.
sc | The subcurve associated with the new edge. |
res_he | One of the new halfedges in the overlaid arrangement. |
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::_create_vertex | ( | Event * | event, |
Vertex_handle | res_v, | ||
Subcurve * | sc | ||
) | [protected] |
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::_map_halfedge_and_twin | ( | Halfedge_handle | he, |
Halfedge_handle_red | red_he, | ||
Halfedge_handle_blue | blue_he | ||
) | [protected] |
bool Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::after_handle_event | ( | Event * | event, |
Status_line_iterator | iter, | ||
bool | flag | ||
) |
A notification invoked after the sweep-line finishes handling the given event.
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::after_sweep | ( | ) |
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::before_handle_event | ( | Event * | event | ) |
A notification invoked before the sweep-line starts handling the given event.
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::before_sweep | ( | ) |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::Halfedge_handle Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::insert_at_vertices | ( | const X_monotone_curve_2 & | cv, |
Halfedge_handle | prev1, | ||
Halfedge_handle | prev2, | ||
Subcurve * | sc, | ||
bool & | new_face_created | ||
) | [virtual] |
Insert the given subcurve given its two end-vertices.
cv | The geometric subcurve. |
prev1 | The predecessor halfedge around the left vertex. |
prev2 | The predecessor halfedge around the right vertex. |
sc | The sweep-line subcurve information. |
new_face_created | Output: Whether a new face has been created. |
Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::Halfedge_handle Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::insert_from_left_vertex | ( | const X_monotone_curve_2 & | cv, |
Halfedge_handle | prev, | ||
Subcurve * | sc | ||
) | [virtual] |
Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::Halfedge_handle Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::insert_from_right_vertex | ( | const X_monotone_curve_2 & | cv, |
Halfedge_handle | prev, | ||
Subcurve * | sc | ||
) | [virtual] |
Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::Halfedge_handle Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::insert_in_face_interior | ( | const X_monotone_curve_2 & | cv, |
Subcurve * | sc | ||
) | [virtual] |
Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::Vertex_handle Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::insert_isolated_vertex | ( | const Point_2 & | pt, |
Status_line_iterator | iter | ||
) | [virtual] |
Insert an isolated vertex into the arrangement.
pt | The point associated with the vertex. |
iter | The location of the corresponding event in the status line. |
Reimplemented from Arr_construction_sl_visitor< OverlayHelper_::Construction_helper >.
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::update_event | ( | Event * | e, |
const Point_2 & | end_point, | ||
const X_monotone_curve_2 & | cv, | ||
Arr_curve_end | cv_end, | ||
bool | is_new | ||
) |
Update an event that corresponds to a curve endpoint.
void Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::update_event | ( | Event * | , |
const X_monotone_curve_2 & | , | ||
Arr_curve_end | , | ||
bool | |||
) | [inline] |
void Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::update_event | ( | Event * | , |
Subcurve * | , | ||
Subcurve * | , | ||
bool | CGAL_assertion_codeis_new | ||
) | [inline] |
Update an event that corresponds to an intersection between curves.
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::update_event | ( | Event * | e, |
Subcurve * | sc | ||
) |
Update an event.
void Arr_overlay_sl_visitor< OvlHlpr, OvlTr >::update_event | ( | Event * | e, |
const Point_2 & | p, | ||
bool | is_new | ||
) |
Update an event.
Halfedge_hash_map Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::m_halfedges_map [protected] |
Overlay_helper Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::m_overlay_helper [protected] |
Overlay_traits* Arr_overlay_sl_visitor< OverlayHelper_, OverlayTraits_ >::m_overlay_traits [protected] |