diff --git a/Maintenance/public_release/announcement/mailing.eml b/Maintenance/public_release/announcement/mailing.eml index dbb43600fd1..615f359c4f7 100644 --- a/Maintenance/public_release/announcement/mailing.eml +++ b/Maintenance/public_release/announcement/mailing.eml @@ -1,51 +1,14 @@ -Subject: CGAL 4.8 Released, Computational Geometry Algorithms Library +Subject: CGAL 4.8.1 Released, Computational Geometry Algorithms Library Content-Type: text/plain; charset="utf-8" Body: -The CGAL Open Source Project is pleased to announce the release 4.8 +The CGAL Open Source Project is pleased to announce the release 4.8.1 of CGAL, the Computational Geometry Algorithms Library. -Besides fixes to existing packages, the following has changed since -CGAL 4.7: +Version 4.8.1 is a bug-fix release for version 4.8. The list of fixed bugs +can be seen on Github: - o General - - - The support for Qt3 is dropped and all demos using it got removed. - - - o Installation - - - Starting with Visual C++ 2015 we no longer require Boost.Thread as we - use the C++11 keyword thread_local and the C+11 class std::mutex. - - - The same holds for g++ 4.8 or later when the C++11 standard is used. - - - o Optimal Transportation Curve Reconstruction (new package) - - - This package implements a method to reconstruct and simplify 2D point - sets. The input is a set of 2D points with mass attributes, possibly - hampered by noise and outliers. The output is a set of line segments - and isolated points which approximate the input points. - - o 3D Mesh Generation - - - Add support of 3D gray level images as input for the tetrahedral mesh - generation. - - o Polygon Mesh Processing - - - Add a new triangle-based isotropic remeshing algorithm for - triangulated surface meshes. - - o Point Set Processing - - - Add Concurrency_tag to the functions compute_average_spacing(), - edge_aware_upsample_point_set(), jet_estimate_normals(), - jet_smooth_point_set(), and pca_estimate_normals(). - - -See http://www.cgal.org/releases.html for a complete list of changes. + https://github.com/CGAL/cgal/issues?q=milestone%3A4.8.1 The CGAL project is a collaborative effort to develop a robust, diff --git a/Spatial_searching/include/CGAL/Euclidean_distance.h b/Spatial_searching/include/CGAL/Euclidean_distance.h index f67359df9ed..d6d952d85dd 100644 --- a/Spatial_searching/include/CGAL/Euclidean_distance.h +++ b/Spatial_searching/include/CGAL/Euclidean_distance.h @@ -131,7 +131,7 @@ namespace CGAL { } inline FT min_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { FT distance = FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it=traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Cartesian_const_iterator_d qit = construct_it(q), @@ -166,7 +166,7 @@ namespace CGAL { } inline FT max_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists ) { + const Kd_tree_rectangle& r,std::vector& dists ) const { FT distance=FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it=traits.construct_cartesian_const_iterator_d_object(); typename SearchTraits::Cartesian_const_iterator_d qit = construct_it(q), diff --git a/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h b/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h index 180cd93d93a..eea140821b0 100644 --- a/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h +++ b/Spatial_searching/include/CGAL/Euclidean_distance_sphere_point.h @@ -88,7 +88,7 @@ namespace CGAL { } inline FT min_distance_to_rectangle(const Sphere_d& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { Point_d c= Construct_center_d()(q); FT distance = FT(0); Construct_cartesian_const_iterator_d construct_it=traits.construct_cartesian_const_iterator_d_object(); @@ -129,7 +129,7 @@ namespace CGAL { } inline FT max_distance_to_rectangle(const Sphere_d& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { Construct_center_d construct_center_d; Point_d c = construct_center_d(q); FT distance=FT(0); diff --git a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h index d2eb7d8d054..9ead32a8d5f 100644 --- a/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h +++ b/Spatial_searching/include/CGAL/Manhattan_distance_iso_box_point.h @@ -85,7 +85,7 @@ namespace CGAL { } inline FT min_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { FT distance = FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it= traits.construct_cartesian_const_iterator_d_object(); @@ -131,7 +131,7 @@ namespace CGAL { inline FT max_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { FT distance=FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it= traits.construct_cartesian_const_iterator_d_object(); diff --git a/Spatial_searching/include/CGAL/Search_traits_adapter.h b/Spatial_searching/include/CGAL/Search_traits_adapter.h index 125bc0b4057..0a408e13f3f 100644 --- a/Spatial_searching/include/CGAL/Search_traits_adapter.h +++ b/Spatial_searching/include/CGAL/Search_traits_adapter.h @@ -92,27 +92,29 @@ public: struct Construct_cartesian_const_iterator_d: public Base_traits::Construct_cartesian_const_iterator_d{ PointPropertyMap ppmap; using Base_traits::Construct_cartesian_const_iterator_d::operator(); + typedef typename Base_traits::Construct_cartesian_const_iterator_d Base; Construct_cartesian_const_iterator_d(const typename Base_traits::Construct_cartesian_const_iterator_d& base, const PointPropertyMap& ppmap_) :Base_traits::Construct_cartesian_const_iterator_d(base), ppmap(ppmap_){} typename Base_traits::Cartesian_const_iterator_d operator()(const Point_with_info& p) const - { return this->operator() (get(ppmap,p)); } + { return Base::operator() (get(ppmap,p)); } typename Base_traits::Cartesian_const_iterator_d operator()(const Point_with_info& p, int) const - { return this->operator() (get(ppmap,p),0); } + { return Base::operator() (get(ppmap,p),0); } }; struct Construct_iso_box_d: public Base::Construct_iso_box_d{ PointPropertyMap ppmap; typedef typename Base_traits::FT FT; // needed for VC++, because otherwise it is taken from the private typedef of the base class + typedef typename Base::Construct_iso_box_d Base_functor; Iso_box_d operator() () const { - return static_cast(this)->operator() (); + return Base_functor::operator() (); } Iso_box_d operator() (const Point_with_info& p, const Point_with_info& q) const { - return static_cast(this)->operator() (get(ppmap,p),get(ppmap,q)); + return Base_functor::operator() (get(ppmap,p),get(ppmap,q)); } }; @@ -120,7 +122,7 @@ public: Construct_cartesian_const_iterator_d construct_cartesian_const_iterator_d_object() const { return Construct_cartesian_const_iterator_d( - static_cast(this)->construct_cartesian_const_iterator_d_object(), + Base::construct_cartesian_const_iterator_d_object(), ppmap); } }; @@ -148,30 +150,30 @@ public: FT transformed_distance(const Query_item& p1, const Point_with_info& p2) const { - return this->transformed_distance(p1,get(ppmap,p2)); + return Base_distance::transformed_distance(p1,get(ppmap,p2)); } template FT min_distance_to_rectangle(const Query_item& p, const CGAL::Kd_tree_rectangle& b) const { - return static_cast(this)->min_distance_to_rectangle(p,b); + return Base_distance::min_distance_to_rectangle(p,b); } template - FT min_distance_to_rectangle(const Query_item& p, const CGAL::Kd_tree_rectangle& b,std::vector& dists) + FT min_distance_to_rectangle(const Query_item& p, const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { - return static_cast(this)->min_distance_to_rectangle(p,b,dists); + return Base_distance::min_distance_to_rectangle(p,b,dists); } template FT max_distance_to_rectangle(const Query_item& p,const CGAL::Kd_tree_rectangle& b) const { - return static_cast(this)->max_distance_to_rectangle(p,b); + return Base_distance::max_distance_to_rectangle(p,b); } template - FT max_distance_to_rectangle(const Query_item& p,const CGAL::Kd_tree_rectangle& b,std::vector& dists) + FT max_distance_to_rectangle(const Query_item& p,const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { - return static_cast(this)->max_distance_to_rectangle(p,b,dists); + return Base_distance::max_distance_to_rectangle(p,b,dists); } }; diff --git a/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h b/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h index 9b00dc0ff5b..2c3f1af7302 100644 --- a/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h +++ b/Spatial_searching/include/CGAL/Weighted_Minkowski_distance.h @@ -246,7 +246,7 @@ namespace CGAL { inline FT min_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { FT distance = FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it= traits.construct_cartesian_const_iterator_d_object(); @@ -326,7 +326,7 @@ namespace CGAL { inline FT max_distance_to_rectangle(const Query_item& q, - const Kd_tree_rectangle& r,std::vector& dists) { + const Kd_tree_rectangle& r,std::vector& dists) const { FT distance=FT(0); typename SearchTraits::Construct_cartesian_const_iterator_d construct_it= traits.construct_cartesian_const_iterator_d_object(); diff --git a/Spatial_searching/test/Spatial_searching/Distance.h b/Spatial_searching/test/Spatial_searching/Distance.h index 772621b864b..b5cf20adfff 100644 --- a/Spatial_searching/test/Spatial_searching/Distance.h +++ b/Spatial_searching/test/Spatial_searching/Distance.h @@ -26,7 +26,7 @@ struct Distance { template double min_distance_to_rectangle(const Point& p, - const CGAL::Kd_tree_rectangle& b,std::vector& dists){ + const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { double distance(0.0), h = p.x(); if (h < b.min_coord(0)){ dists[0] = (b.min_coord(0)-h); @@ -76,7 +76,7 @@ struct Distance { template double max_distance_to_rectangle(const Point& p, - const CGAL::Kd_tree_rectangle& b,std::vector& dists){ + const CGAL::Kd_tree_rectangle& b,std::vector& dists) const { double h = p.x(); dists[0] = (h >= (b.min_coord(0)+b.max_coord(0))/2.0) ? @@ -98,6 +98,6 @@ struct Distance { double transformed_distance(double d) const { return d*d; } - double inverse_of_transformed_distance(double d) { return std::sqrt(d); } + double inverse_of_transformed_distance(double d) const { return std::sqrt(d); } }; // end of struct Distance