diff --git a/AABB_tree/include/CGAL/AABB_tree.h b/AABB_tree/include/CGAL/AABB_tree.h index 52150f28352..95933a614c3 100644 --- a/AABB_tree/include/CGAL/AABB_tree.h +++ b/AABB_tree/include/CGAL/AABB_tree.h @@ -633,9 +633,9 @@ public: typename AABB_tree::Self& AABB_tree::operator=(Self&& tree) noexcept { m_traits = std::move(tree.traits); - m_primitives = std::exchange(tree.m_primitives, {}); - m_p_nodes = std::exchange(tree.m_p_nodes, {}); - m_p_search_tree = std::exchange(tree.m_p_search_tree, nullptr); + m_primitives = std::move(tree.m_primitives); + m_p_nodes = std::move(tree.m_p_nodes); + m_p_search_tree = std::move(tree.m_p_search_tree); m_search_tree_constructed = std::exchange(tree.m_search_tree_constructed, false); m_default_search_tree_constructed = std::exchange(tree.m_default_search_tree_constructed, true); m_need_build = std::exchange(tree.m_need_build, false); diff --git a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h index f50afaf4f03..9ba3cf2481b 100644 --- a/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h +++ b/AABB_tree/include/CGAL/internal/AABB_tree/AABB_search_tree.h @@ -13,8 +13,6 @@ #ifndef CGAL_AABB_SEARCH_TREE_H #define CGAL_AABB_SEARCH_TREE_H -#include - #include @@ -85,7 +83,7 @@ namespace CGAL typedef typename CGAL::Orthogonal_k_neighbor_search Neighbor_search; typedef typename Neighbor_search::Tree Tree; private: - std::unique_ptr m_p_tree; + Tree m_tree; Point_and_primitive_id get_p_and_p(const Point_and_primitive_id& p) @@ -100,22 +98,22 @@ namespace CGAL public: template AABB_search_tree(ConstPointIterator begin, ConstPointIterator beyond) - : m_p_tree(nullptr) + : m_tree{} { - typedef typename Add_decorated_point::Point_3 Decorated_point; + typedef typename Add_decorated_point::Point_3 Decorated_point; std::vector points; while(begin != beyond) { Point_and_primitive_id pp = get_p_and_p(*begin); - points.emplace_back(pp.first,pp.second); + points.emplace_back(pp.first, pp.second); ++begin; } - m_p_tree = std::make_unique(points.begin(), points.end()); - m_p_tree->build(); + m_tree.insert(points.begin(), points.end()); + m_tree.build(); } Point_and_primitive_id closest_point(const Point& query) const { - Neighbor_search search(*m_p_tree, query, 1); + Neighbor_search search(m_tree, query, 1); return Point_and_primitive_id(static_cast(search.begin()->first), search.begin()->first.id()); } };