From 39df59901b9342f23dfb638ae0e1e88126de2369 Mon Sep 17 00:00:00 2001 From: Sven Oesau Date: Fri, 22 Apr 2022 15:36:38 +0200 Subject: [PATCH] Fixed degenerated case of plane fitting to a linear set of points. --- Principal_component_analysis/include/CGAL/PCA_util.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Principal_component_analysis/include/CGAL/PCA_util.h b/Principal_component_analysis/include/CGAL/PCA_util.h index dc456f2d84a..9e3508a68a6 100644 --- a/Principal_component_analysis/include/CGAL/PCA_util.h +++ b/Principal_component_analysis/include/CGAL/PCA_util.h @@ -723,7 +723,11 @@ fitting_plane_3(typename DiagonalizeTraits::Covariance_matrix& covariance, // co eigen_vectors[1], eigen_vectors[2]); plane = Plane(c,normal); - return FT(1) - eigen_values[0] / eigen_values[1]; + + if (eigen_values[1] == 0) + return FT(0); // line case + else + return FT(1) - eigen_values[0] / eigen_values[1]; // regular case } // end regular case }