replace BOOST_FOREACH by a simple for loop

the BOOST_FOREACH loop was either crashing after one loop,
of entering an infinite loop on the first vertex of the range,
and this fixes the bug

it happened on vs2015 and vs2017, in Release mode, and only Release mode
This commit is contained in:
Jane Tournois 2017-07-28 17:48:37 +02:00
parent bb175cdc66
commit aeb9a72843
1 changed files with 4 additions and 1 deletions

View File

@ -46,6 +46,7 @@ void copy_face_graph_impl(const SourceMesh& sm, TargetMesh& tm,
{
typedef typename boost::graph_traits<SourceMesh>::vertex_descriptor sm_vertex_descriptor;
typedef typename boost::graph_traits<TargetMesh>::vertex_descriptor tm_vertex_descriptor;
typedef typename boost::graph_traits<TargetMesh>::vertex_iterator tm_vertex_iterator;
typedef typename boost::graph_traits<SourceMesh>::face_descriptor sm_face_descriptor;
typedef typename boost::graph_traits<TargetMesh>::face_descriptor tm_face_descriptor;
@ -153,8 +154,10 @@ void copy_face_graph_impl(const SourceMesh& sm, TargetMesh& tm,
}
// update halfedge vertex of all but the vertex halfedge
BOOST_FOREACH(tm_vertex_descriptor v, vertices(tm))
for(tm_vertex_iterator vit = vertices(tm).first;
vit != vertices(tm).second; ++vit)
{
tm_vertex_descriptor v = *vit;
tm_halfedge_descriptor h = halfedge(v, tm);
tm_halfedge_descriptor next_around_vertex=h;
do{