diff --git a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h index aa9bdaa56eb..03aa32fb5ad 100644 --- a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h +++ b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h @@ -24,6 +24,7 @@ // #define LAZY #include +#include #include #include #include @@ -1260,7 +1261,17 @@ namespace CGAL { value = lazy_squared_radius(cc); #else // qualified with CGAL, to avoid a compilation error with clang - value = CGAL::squared_radius(pp0, pp1, pp2, pp3); + if(volume(pp0, pp1, pp2, pp3) != 0){ + value = CGAL::squared_radius(pp0, pp1, pp2, pp3); + } else { + typedef Exact_predicates_exact_constructions_kernel EK; + Cartesian_converter to_exact; + Cartesian_converter back_from_exact; + value = back_from_exact(CGAL::squared_radius(to_exact(pp0), + to_exact(pp1), + to_exact(pp2), + to_exact(pp3))); + } #endif } else