diff --git a/Installation/changes.html b/Installation/changes.html index 7b0da4867ed..2cc801ae86a 100644 --- a/Installation/changes.html +++ b/Installation/changes.html @@ -1,4 +1,4 @@ - + @@ -146,7 +146,9 @@ and src/ directories). caused the kd-tree to get linear.
  • - Improved performance of orthogonal_k_neighbor_search. + Improved performance of Orthogonal_k_neighbor_search. + Note that VC 2013 does not compile boost::container::deque of Boost 1_55 + and does hence have a workaround which does not have the improvement.
  • Breaking change: The concept OrthogonalDistance has diff --git a/Spatial_searching/include/CGAL/Kd_tree.h b/Spatial_searching/include/CGAL/Kd_tree.h index 462c12e2cf4..7ced569e6d7 100644 --- a/Spatial_searching/include/CGAL/Kd_tree.h +++ b/Spatial_searching/include/CGAL/Kd_tree.h @@ -76,8 +76,16 @@ public: private: SearchTraits traits_; Splitter split; + + + // wokaround for https://svn.boost.org/trac/boost/ticket/9332 +#if (_MSC_VER == 1800) && (BOOST_VERSION == 105500) + std::deque internal_nodes; + std::deque leaf_nodes; +#else boost::container::deque internal_nodes; boost::container::deque leaf_nodes; +#endif Node_handle tree_root; diff --git a/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h b/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h index c95a37aaee8..a86585826ae 100644 --- a/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h +++ b/Spatial_searching/include/CGAL/Orthogonal_incremental_neighbor_search.h @@ -162,10 +162,9 @@ namespace CGAL { if (search_nearest){ distance_to_root= - Orthogonal_distance_instance.min_distance_to_rectangle(q, - tree.bounding_box(),dists); + Orthogonal_distance_instance.min_distance_to_rectangle(q, tree.bounding_box(),dists); Node_with_distance *The_Root = new Node_with_distance(tree.root(), - distance_to_root,dists); + distance_to_root, dists); PriorityQueue.push(The_Root); // rd is the distance of the top of the priority queue to q @@ -177,7 +176,7 @@ namespace CGAL { Orthogonal_distance_instance.max_distance_to_rectangle(q, tree.bounding_box()); Node_with_distance *The_Root = new Node_with_distance(tree.root(), - distance_to_root,dists); + distance_to_root, dists); PriorityQueue.push(The_Root); // rd is the distance of the top of the priority queue to q @@ -293,7 +292,7 @@ namespace CGAL { CGAL_assertion(new_rd >= copy_rd); dists[new_cut_dim] = diff1; Node_with_distance *Upper_Child = - new Node_with_distance(node->upper(), new_rd,dists); + new Node_with_distance(node->upper(), new_rd, dists); PriorityQueue.push(Upper_Child); dists[new_cut_dim] = dst; N=node->lower(); @@ -304,7 +303,7 @@ namespace CGAL { CGAL_assertion(new_rd >= copy_rd); dists[new_cut_dim] = diff2; Node_with_distance *Lower_Child = - new Node_with_distance(node->lower(), new_rd,dists); + new Node_with_distance(node->lower(), new_rd, dists); PriorityQueue.push(Lower_Child); dists[new_cut_dim] = dst; N=node->upper(); @@ -378,7 +377,7 @@ namespace CGAL { CGAL_assertion(new_rd >= copy_rd); Node_with_distance *Lower_Child = - new Node_with_distance(node->lower(), copy_rd,dists); + new Node_with_distance(node->lower(), copy_rd, dists); PriorityQueue.push(Lower_Child); N=node->upper(); dists[new_cut_dim] = diff1; @@ -389,7 +388,7 @@ namespace CGAL { new_rd=Orthogonal_distance_instance.new_distance(copy_rd,dst,diff2,new_cut_dim); CGAL_assertion(new_rd >= copy_rd); Node_with_distance *Upper_Child = - new Node_with_distance(node->upper(), copy_rd); + new Node_with_distance(node->upper(), copy_rd, dists); PriorityQueue.push(Upper_Child); N=node->lower(); dists[new_cut_dim] = diff2;