mirror of https://github.com/CGAL/cgal
Add indexed sweep with isolated points
This commit is contained in:
parent
6022a74ac8
commit
b7583f43d5
|
|
@ -297,8 +297,16 @@ overlay(const Arrangement_on_surface_2<GeometryTraitsA_2, TopologyTraitsA>& arr1
|
|||
|
||||
// Clear the result arrangement and perform the sweep to construct it.
|
||||
arr.clear();
|
||||
surface_sweep.sweep(xcvs_vec.begin(), xcvs_vec.end(),
|
||||
pts_vec.begin(), pts_vec.end());
|
||||
if (std::is_same<typename Agt2::Base_traits_2::Bottom_side_category,
|
||||
Arr_contracted_side_tag>::value)
|
||||
surface_sweep.sweep(xcvs_vec.begin(), xcvs_vec.end(),
|
||||
pts_vec.begin(), pts_vec.end());
|
||||
else
|
||||
surface_sweep.indexed_sweep (xcvs_vec,
|
||||
Indexed_sweep_accessor
|
||||
<Arr_a, Arr_b, Ovl_x_monotone_curve_2>
|
||||
(arr1, arr2),
|
||||
pts_vec.begin(), pts_vec.end());
|
||||
xcvs_vec.clear();
|
||||
pts_vec.clear();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -322,6 +322,24 @@ public:
|
|||
m_visitor->after_sweep();
|
||||
}
|
||||
|
||||
template <typename EdgeRange, typename Accessor,
|
||||
typename PointInputIterator>
|
||||
void indexed_sweep (const EdgeRange& edges,
|
||||
const Accessor& accessor,
|
||||
PointInputIterator action_points_begin,
|
||||
PointInputIterator action_points_end)
|
||||
{
|
||||
m_visitor->before_sweep();
|
||||
accessor.before_init();
|
||||
_init_indexed_sweep(edges, accessor);
|
||||
accessor.after_init();
|
||||
_init_points(action_points_begin, action_points_end, Event::ACTION);
|
||||
//m_visitor->after_init();
|
||||
_sweep();
|
||||
_complete_sweep();
|
||||
m_visitor->after_sweep();
|
||||
}
|
||||
|
||||
/*! Get an iterator for the first subcurve in the status line. */
|
||||
Status_line_iterator status_line_begin() { return m_statusLine.begin(); }
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue