From 9abb55125bd3aa039174d851e3ff9e70ee8bfd11 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 24 Jul 2015 12:09:04 +0200 Subject: [PATCH 1/3] use get() instead of operator[] for vertex point map Conflicts: Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/remesh_impl.h --- .../include/CGAL/Polygon_mesh_processing/compute_normal.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h index 49ed3e120cc..b6bc017ddfe 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h @@ -47,9 +47,9 @@ void sum_normals(const PM& pmesh, halfedge_descriptor end = he; do { - const Point& prv = vpmap[target(prev(he, pmesh), pmesh)]; - const Point& curr = vpmap[target(he, pmesh)]; - const Point& nxt = vpmap[target(next(he, pmesh), pmesh)]; + const Point& prv = get(vpmap, target(prev(he, pmesh), pmesh)); + const Point& curr = get(vpmap, target(he, pmesh)); + const Point& nxt = get(vpmap, target(next(he, pmesh), pmesh)); Vector n = CGAL::cross_product(nxt - curr, prv - curr); sum = sum + n; From 2a6ddd38a4522ce5747f92b04fe8be8b023a4f94 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 24 Jul 2015 12:31:50 +0200 Subject: [PATCH 2/3] use get() instead of [] to access vertex point map --- .../self_intersections.h | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h index 47c281b3f4e..9fc381ae2c0 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h @@ -142,17 +142,17 @@ struct Intersect_facets // found shared vertex: CGAL_assertion(target(h,m_tmesh) == target(v,m_tmesh)); // geometric check if the opposite segments intersect the triangles - Triangle t1 = triangle_functor( m_vpmap[target(h,m_tmesh)], - m_vpmap[target(next(h,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); - Triangle t2 = triangle_functor( m_vpmap[target(v,m_tmesh)], - m_vpmap[target(next(v,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(v,m_tmesh),m_tmesh),m_tmesh)]); + Triangle t1 = triangle_functor( get(m_vpmap,target(h,m_tmesh)), + get(m_vpmap, target(next(h,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh))); + Triangle t2 = triangle_functor( get(m_vpmap, target(v,m_tmesh)), + get(m_vpmap, target(next(v,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh))); - Segment s1 = segment_functor( m_vpmap[target(next(h,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); - Segment s2 = segment_functor( m_vpmap[target(next(v,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(v,m_tmesh),m_tmesh),m_tmesh)]); + Segment s1 = segment_functor( get(m_vpmap, target(next(h,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh))); + Segment s2 = segment_functor( get(m_vpmap, target(next(v,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh))); if(do_intersect_3_functor(t1,s2)){ *m_iterator_wrapper++ = std::make_pair(b->info(), c->info()); @@ -163,12 +163,12 @@ struct Intersect_facets } // check for geometric intersection - Triangle t1 = triangle_functor( m_vpmap[target(h,m_tmesh)], - m_vpmap[target(next(h,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); - Triangle t2 = triangle_functor( m_vpmap[target(g,m_tmesh)], - m_vpmap[target(next(g,m_tmesh),m_tmesh)], - m_vpmap[target(next(next(g,m_tmesh),m_tmesh),m_tmesh)]); + Triangle t1 = triangle_functor( get(m_vpmap, target(h,m_tmesh)), + get(m_vpmap, target(next(h,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh))); + Triangle t2 = triangle_functor( get(m_vpmap, target(g,m_tmesh)), + get(m_vpmap, target(next(g,m_tmesh),m_tmesh)), + get(m_vpmap, target(next(next(g,m_tmesh),m_tmesh),m_tmesh))); if(do_intersect_3_functor(t1, t2)){ *m_iterator_wrapper++ = std::make_pair(b->info(), c->info()); } @@ -312,9 +312,9 @@ self_intersections( const FaceRange& face_range, BOOST_FOREACH(face_descriptor f, face_range) { - boxes.push_back(Box( vpmap[target(halfedge(f,tmesh),tmesh)].bbox() - + vpmap[target(next(halfedge(f, tmesh), tmesh), tmesh)].bbox() - + vpmap[target(next(next(halfedge(f, tmesh), tmesh), tmesh), tmesh)].bbox(), + boxes.push_back(Box( get(vpmap, target(halfedge(f,tmesh),tmesh)).bbox() + + get(vpmap, target(next(halfedge(f, tmesh), tmesh), tmesh)).bbox() + + get(vpmap, target(next(next(halfedge(f, tmesh), tmesh), tmesh), tmesh)).bbox(), f)); } // generate box pointers From fb1714154ffcd511c47e527c3ed1d0636bfa698c Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 24 Jul 2015 12:33:27 +0200 Subject: [PATCH 3/3] fix documentation this template parameter is not needed! --- .../include/CGAL/Polygon_mesh_processing/self_intersections.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h index 9fc381ae2c0..528b21c468c 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h @@ -357,8 +357,6 @@ OutputIterator self_intersections(const FaceRange& face_range, * * @tparam TriangleMesh a model of `FaceListGraph` that has an internal property map * for `CGAL::vertex_point_t` - * @tparam OutputIterator a model of `OutputIterator` holding objects of type - * `std::pair::%face_descriptor, boost::graph_traits::%face_descriptor>` * @tparam NamedParameters a sequence of \ref namedparameters * * @param tmesh the triangulated surface mesh to be tested