Merge pull request #196 from janetournois/Polygon_mesh_processing-GF

Polygon mesh processing - small fixes
This commit is contained in:
Sebastien Loriot 2015-07-28 17:16:36 +02:00
commit 1ebc5f75b5
2 changed files with 22 additions and 24 deletions

View File

@ -47,9 +47,9 @@ void sum_normals(const PM& pmesh,
halfedge_descriptor end = he; halfedge_descriptor end = he;
do do
{ {
const Point& prv = vpmap[target(prev(he, pmesh), pmesh)]; const Point& prv = get(vpmap, target(prev(he, pmesh), pmesh));
const Point& curr = vpmap[target(he, pmesh)]; const Point& curr = get(vpmap, target(he, pmesh));
const Point& nxt = vpmap[target(next(he, pmesh), pmesh)]; const Point& nxt = get(vpmap, target(next(he, pmesh), pmesh));
Vector n = CGAL::cross_product(nxt - curr, prv - curr); Vector n = CGAL::cross_product(nxt - curr, prv - curr);
sum = sum + n; sum = sum + n;

View File

@ -142,17 +142,17 @@ struct Intersect_facets
// found shared vertex: // found shared vertex:
CGAL_assertion(target(h,m_tmesh) == target(v,m_tmesh)); CGAL_assertion(target(h,m_tmesh) == target(v,m_tmesh));
// geometric check if the opposite segments intersect the triangles // geometric check if the opposite segments intersect the triangles
Triangle t1 = triangle_functor( m_vpmap[target(h,m_tmesh)], Triangle t1 = triangle_functor( get(m_vpmap,target(h,m_tmesh)),
m_vpmap[target(next(h,m_tmesh),m_tmesh)], get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
Triangle t2 = triangle_functor( m_vpmap[target(v,m_tmesh)], Triangle t2 = triangle_functor( get(m_vpmap, target(v,m_tmesh)),
m_vpmap[target(next(v,m_tmesh),m_tmesh)], get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(v,m_tmesh),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)], Segment s1 = segment_functor( get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); get(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)], Segment s2 = segment_functor( get(m_vpmap, target(next(v,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(v,m_tmesh),m_tmesh),m_tmesh)]); get(m_vpmap, target(next(next(v,m_tmesh),m_tmesh),m_tmesh)));
if(do_intersect_3_functor(t1,s2)){ if(do_intersect_3_functor(t1,s2)){
*m_iterator_wrapper++ = std::make_pair(b->info(), c->info()); *m_iterator_wrapper++ = std::make_pair(b->info(), c->info());
@ -163,12 +163,12 @@ struct Intersect_facets
} }
// check for geometric intersection // check for geometric intersection
Triangle t1 = triangle_functor( m_vpmap[target(h,m_tmesh)], Triangle t1 = triangle_functor( get(m_vpmap, target(h,m_tmesh)),
m_vpmap[target(next(h,m_tmesh),m_tmesh)], get(m_vpmap, target(next(h,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(h,m_tmesh),m_tmesh),m_tmesh)]); get(m_vpmap, target(next(next(h,m_tmesh),m_tmesh),m_tmesh)));
Triangle t2 = triangle_functor( m_vpmap[target(g,m_tmesh)], Triangle t2 = triangle_functor( get(m_vpmap, target(g,m_tmesh)),
m_vpmap[target(next(g,m_tmesh),m_tmesh)], get(m_vpmap, target(next(g,m_tmesh),m_tmesh)),
m_vpmap[target(next(next(g,m_tmesh),m_tmesh),m_tmesh)]); get(m_vpmap, target(next(next(g,m_tmesh),m_tmesh),m_tmesh)));
if(do_intersect_3_functor(t1, t2)){ if(do_intersect_3_functor(t1, t2)){
*m_iterator_wrapper++ = std::make_pair(b->info(), c->info()); *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) BOOST_FOREACH(face_descriptor f, face_range)
{ {
boxes.push_back(Box( vpmap[target(halfedge(f,tmesh),tmesh)].bbox() boxes.push_back(Box( get(vpmap, target(halfedge(f,tmesh),tmesh)).bbox()
+ vpmap[target(next(halfedge(f, tmesh), tmesh), tmesh)].bbox() + get(vpmap, target(next(halfedge(f, tmesh), tmesh), tmesh)).bbox()
+ vpmap[target(next(next(halfedge(f, tmesh), tmesh), tmesh), tmesh)].bbox(), + get(vpmap, target(next(next(halfedge(f, tmesh), tmesh), tmesh), tmesh)).bbox(),
f)); f));
} }
// generate box pointers // generate box pointers
@ -357,8 +357,6 @@ OutputIterator self_intersections(const FaceRange& face_range,
* *
* @tparam TriangleMesh a model of `FaceListGraph` that has an internal property map * @tparam TriangleMesh a model of `FaceListGraph` that has an internal property map
* for `CGAL::vertex_point_t` * for `CGAL::vertex_point_t`
* @tparam OutputIterator a model of `OutputIterator` holding objects of type
* `std::pair<boost::graph_traits<TriangleMesh>::%face_descriptor, boost::graph_traits<TriangleMesh>::%face_descriptor>`
* @tparam NamedParameters a sequence of \ref namedparameters * @tparam NamedParameters a sequence of \ref namedparameters
* *
* @param tmesh the triangulated surface mesh to be tested * @param tmesh the triangulated surface mesh to be tested