diff --git a/Operations_on_polyhedra/include/CGAL/internal/corefinement/Polyhedra_output_builder.h b/Operations_on_polyhedra/include/CGAL/internal/corefinement/Polyhedra_output_builder.h index 27f711bf00d..a4c5e2f23f8 100644 --- a/Operations_on_polyhedra/include/CGAL/internal/corefinement/Polyhedra_output_builder.h +++ b/Operations_on_polyhedra/include/CGAL/internal/corefinement/Polyhedra_output_builder.h @@ -2203,7 +2203,7 @@ public: P_polylines.push_back(phedge); Q_polylines.push_back(qhedge); - polyline_lengths.push_back(polyline_info.second-1); + polyline_lengths.push_back(polyline_info.second+1); } //store the patch description in a container to avoid recomputing it several times diff --git a/Operations_on_polyhedra/include/CGAL/intersection_of_Polyhedra_3.h b/Operations_on_polyhedra/include/CGAL/intersection_of_Polyhedra_3.h index 1ef348e47b8..2fa63da8c9a 100644 --- a/Operations_on_polyhedra/include/CGAL/intersection_of_Polyhedra_3.h +++ b/Operations_on_polyhedra/include/CGAL/intersection_of_Polyhedra_3.h @@ -1771,7 +1771,7 @@ class Intersection_of_Polyhedra_3{ //handle polylines while(terminal_nodes.any()) { - int i= static_cast(terminal_nodes.find_first()); + int i = static_cast(terminal_nodes.find_first()); Graph_node& node_i = graph[i]; std::vector polyline; @@ -1782,14 +1782,12 @@ class Intersection_of_Polyhedra_3{ if (node_i.empty()) terminal_nodes.reset(i); polyline.push_back(nodes[i]); - visitor->add_node_to_polyline(i); while(true){ Graph_node& node_j=graph[j]; CGAL_assertion(!node_j.empty()); node_j.erase(i); i=j; polyline.push_back(nodes[i]); - visitor->add_node_to_polyline(i); if (node_j.is_terminal()) { if (node_j.empty()) @@ -1798,6 +1796,7 @@ class Intersection_of_Polyhedra_3{ } else{ j=node_j.top(); + visitor->add_node_to_polyline(j); node_j.pop(); CGAL_assertion(node_j.empty()); interior_nodes.reset(i); @@ -1817,7 +1816,6 @@ class Intersection_of_Polyhedra_3{ visitor->start_new_polyline(i,j); interior_nodes.reset(i); polyline.push_back(nodes[i]); - visitor->add_node_to_polyline(i); int first=i; do{ Graph_node& node_j=graph[j]; @@ -1825,11 +1823,10 @@ class Intersection_of_Polyhedra_3{ node_j.erase(i); i=j; polyline.push_back(nodes[i]); - visitor->add_node_to_polyline(i); j=node_j.top(); + visitor->add_node_to_polyline(j); }while(j!=first); polyline.push_back(nodes[j]);// we duplicate first point for cycles - visitor->add_node_to_polyline(j); *out++=polyline; } } diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h index e89ed6b09f9..786e95da07a 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Corefinement/Face_graph_output_builder.h @@ -1006,7 +1006,7 @@ public: tm1_polylines.push_back(h1); tm2_polylines.push_back(h2); - polyline_lengths.push_back(polyline_info.second-1); + polyline_lengths.push_back(polyline_info.second+1); } typedef Patch_container