From a7eb7cfe040e57dfda8fc004a00488abd4e1f404 Mon Sep 17 00:00:00 2001 From: Ahmed Essam Date: Thu, 12 Mar 2020 23:14:42 +0200 Subject: [PATCH] Fix bug in point_position in the brazier traits --- .../include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h index ae06841ffea..ded1a7cf313 100644 --- a/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h +++ b/Arrangement_on_surface_2/include/CGAL/Arr_geometry_traits/Bezier_x_monotone_2.h @@ -959,11 +959,12 @@ _Bezier_x_monotone_2::point_position if ( p.is_rational() ){ - const Rational& px = ((Rat_point_2) p).x(); + const Rational px = ((Rat_point_2) p).x(); Integer denom_px=nt_traits.denominator(px); Integer numer_px=nt_traits.numerator(px); - Polynomial poly_px = CGAL::sign(numer_px) == ZERO ? Polynomial() : nt_traits.construct_polynomial(&numer_px,0); + Integer poly_px_scale = numer_px * _curve.x_norm(); + Polynomial poly_px = CGAL::sign(numer_px) == ZERO ? Polynomial() : nt_traits.construct_polynomial(&poly_px_scale,0); Polynomial poly_x = nt_traits.scale(_curve.x_polynomial(),denom_px) - poly_px; std::vector roots;