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.
|
// Clear the result arrangement and perform the sweep to construct it.
|
||||||
arr.clear();
|
arr.clear();
|
||||||
surface_sweep.sweep(xcvs_vec.begin(), xcvs_vec.end(),
|
if (std::is_same<typename Agt2::Base_traits_2::Bottom_side_category,
|
||||||
pts_vec.begin(), pts_vec.end());
|
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();
|
xcvs_vec.clear();
|
||||||
pts_vec.clear();
|
pts_vec.clear();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -322,6 +322,24 @@ public:
|
||||||
m_visitor->after_sweep();
|
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. */
|
/*! Get an iterator for the first subcurve in the status line. */
|
||||||
Status_line_iterator status_line_begin() { return m_statusLine.begin(); }
|
Status_line_iterator status_line_begin() { return m_statusLine.begin(); }
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue