mirror of https://github.com/CGAL/cgal
fix the report of polyline in the visitor
the 2 first nodes were always reported twice
This commit is contained in:
parent
23e9095cbc
commit
fac4a6add5
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1771,7 +1771,7 @@ class Intersection_of_Polyhedra_3{
|
|||
//handle polylines
|
||||
while(terminal_nodes.any())
|
||||
{
|
||||
int i= static_cast<int>(terminal_nodes.find_first());
|
||||
int i = static_cast<int>(terminal_nodes.find_first());
|
||||
Graph_node& node_i = graph[i];
|
||||
std::vector<typename Kernel::Point_3> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<TriangleMesh,
|
||||
|
|
|
|||
|
|
@ -741,14 +741,12 @@ class Intersection_of_triangle_meshes
|
|||
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())
|
||||
|
|
@ -757,6 +755,7 @@ class Intersection_of_triangle_meshes
|
|||
}
|
||||
else{
|
||||
j=node_j.top();
|
||||
visitor.add_node_to_polyline(j);
|
||||
node_j.pop();
|
||||
CGAL_assertion(node_j.empty());
|
||||
interior_nodes.reset(i);
|
||||
|
|
@ -776,7 +775,6 @@ class Intersection_of_triangle_meshes
|
|||
visitor.start_new_polyline(i,j);
|
||||
interior_nodes.reset(i);
|
||||
polyline.push_back(nodes[i]);
|
||||
visitor.add_node_to_polyline(i);
|
||||
Node_id first=i;
|
||||
do{
|
||||
Graph_node& node_j=graph[j];
|
||||
|
|
@ -784,11 +782,10 @@ class Intersection_of_triangle_meshes
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue