From 010ae7e63b492863bfb18f46cdee706bc29faf6c Mon Sep 17 00:00:00 2001 From: Pedro Machado Manhaes de Castro Date: Sun, 13 Aug 2006 17:31:25 +0000 Subject: [PATCH] Fixing the case: 2 equal circular_arcs --- .../internal_functions_on_circular_arc_2.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Curved_kernel/include/CGAL/Curved_kernel/internal_functions_on_circular_arc_2.h b/Curved_kernel/include/CGAL/Curved_kernel/internal_functions_on_circular_arc_2.h index 1f51f8be5ab..f5275d95161 100644 --- a/Curved_kernel/include/CGAL/Curved_kernel/internal_functions_on_circular_arc_2.h +++ b/Curved_kernel/include/CGAL/Curved_kernel/internal_functions_on_circular_arc_2.h @@ -537,7 +537,9 @@ namespace CircularFunctors { bool t1_in_a2 = has_on(a2,a1.target(),true); bool s1_in_a2 = has_on(a2,a1.source(),true); if(t1_in_a2 && s1_in_a2) { - if(CircularFunctors::compare_xy(a1.source(), a2.source()) < 0) { + const Comparison_result comp = + CircularFunctors::compare_xy(a1.source(), a2.source()); + if(comp < 0) { if(a1.source() == a2.target()) { *res++ = make_object(std::make_pair(a1.source(),1u)); } else { @@ -552,7 +554,7 @@ namespace CircularFunctors { Circular_arc_2(a1.supporting_circle(),a2.source(),a1.target()); *res++ = make_object(arc); } - } else { + } else if (comp > 0) { if(a2.source() == a1.target()) { *res++ = make_object(std::make_pair(a2.source(),1u)); } else { @@ -567,7 +569,9 @@ namespace CircularFunctors { Circular_arc_2(a1.supporting_circle(),a1.source(),a2.target()); *res++ = make_object(arc); } - } //return res; + } else { + *res++ = make_object(a1); + } } else { *res++ = make_object(a2); //return res;