From 66d91feb5c6491b24e0765af777e35162e4cdc31 Mon Sep 17 00:00:00 2001 From: salinasd Date: Sat, 4 Jul 2015 15:41:57 +0000 Subject: Fix skbl compiling issue on clang + one issue of returning a local reference in Alpha_shapes git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/compil_fix@677 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: b14047d0df46ea255bb801191c6672aa06eab3c7 --- .../Skeleton_blocker/Skeleton_blocker_off_io.h | 2 +- .../gudhi/Skeleton_blocker_geometric_complex.h | 34 ++++++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) (limited to 'src/Skeleton_blocker') diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/Skeleton_blocker_off_io.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/Skeleton_blocker_off_io.h index aaaab8b0..6ad1fdd3 100644 --- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/Skeleton_blocker_off_io.h +++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/Skeleton_blocker_off_io.h @@ -107,7 +107,7 @@ class Skeleton_blocker_off_visitor_reader { } void done() { - complex_ = make_complex_from_top_faces(maximal_faces_.begin(), maximal_faces_.end(), + complex_ = make_complex_from_top_faces(maximal_faces_.begin(), maximal_faces_.end(), points_.begin(), points_.end() ); } }; diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_geometric_complex.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_geometric_complex.h index 437482cb..8cea123a 100644 --- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_geometric_complex.h +++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker_geometric_complex.h @@ -79,22 +79,13 @@ public Skeleton_blocker_complex { (*this)[Vertex_handle(current++)].point() = Point(point->begin(), point->end()); } - template - friend Skeleton_blocker_geometric_complex make_complex_from_top_faces( + template + SkeletonBlockerGeometricComplex make_complex_from_top_faces( SimpleHandleOutputIterator simplex_begin, SimpleHandleOutputIterator simplex_end, PointIterator points_begin, PointIterator points_end, - bool is_flag_complex = false) { - Skeleton_blocker_geometric_complex complex; - unsigned current = 0; - complex = - make_complex_from_top_faces(simplex_begin, simplex_end, is_flag_complex); - for (auto point = points_begin; point != points_end; ++point) - // complex.point(Vertex_handle(current++)) = Point(point->begin(),point->end()); - complex.point(Vertex_handle(current++)) = Point(*point); - return complex; - } + bool is_flag_complex); /** * @brief Constructor with a list of simplices. @@ -215,6 +206,25 @@ public Skeleton_blocker_complex { } }; + +template +SkeletonBlockerGeometricComplex make_complex_from_top_faces( + SimpleHandleOutputIterator simplex_begin, + SimpleHandleOutputIterator simplex_end, + PointIterator points_begin, + PointIterator points_end, + bool is_flag_complex = false) { + typedef SkeletonBlockerGeometricComplex SBGC; + SkeletonBlockerGeometricComplex complex; + unsigned current = 0; + complex = + make_complex_from_top_faces(simplex_begin, simplex_end, is_flag_complex); + for (auto point = points_begin; point != points_end; ++point) + // complex.point(Vertex_handle(current++)) = Point(point->begin(),point->end()); + complex.point(typename SBGC::Vertex_handle(current++)) = typename SBGC::Point(*point); + return complex; +} + } // namespace skbl } // namespace Gudhi -- cgit v1.2.3