summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-09-23 09:40:47 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2016-09-23 09:40:47 +0000
commitda0594659568de0d1904cbfd85fd4b6e48ab7e97 (patch)
tree6b183332649c7c1372b38f9fa1bdb28517578f61
parentca4f5e87e79701e48bb8697b19250be1b67c5f77 (diff)
parentf465e447fcc048d5c8f67224c88d9c84d6aaac76 (diff)
Merge last trunk modifications
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/warning_fix@1549 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: ba0a3fe924d24dafc07f3ad5fe71bdd9fee637c2
-rw-r--r--data/points/SO3_10000.off4
-rw-r--r--data/points/SO3_50000.off4
-rw-r--r--src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h2
-rw-r--r--src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp6
-rw-r--r--src/common/example/CMakeLists.txt18
-rw-r--r--src/common/example/example_CGAL_3D_points_off_reader.cpp (renamed from src/common/example/CGAL_3D_points_off_reader.cpp)0
-rw-r--r--src/common/example/example_CGAL_points_off_reader.cpp (renamed from src/common/example/CGAL_points_off_reader.cpp)2
-rw-r--r--src/common/example/example_vector_double_points_off_reader.cpp41
-rw-r--r--src/common/include/gudhi/Points_off_io.h11
-rw-r--r--src/common/test/CMakeLists.txt27
-rw-r--r--src/common/test/test_points_off_reader.cpp (renamed from src/common/test/points_off_reader_unit_test.cpp)21
11 files changed, 83 insertions, 53 deletions
diff --git a/data/points/SO3_10000.off b/data/points/SO3_10000.off
index fbf9b273..3f2a3cda 100644
--- a/data/points/SO3_10000.off
+++ b/data/points/SO3_10000.off
@@ -1,5 +1,5 @@
-OFF
-10000 1 0
+nOFF
+9 10000 1 0
2.08167e-17 0 -1 -0.500001 0.866026 0 0.866026 0.500001 -2.08167e-17
0 0 -1 0.500001 -0.866026 0 -0.866026 -0.500001 0
0 0 -1 -1 0 0 0 1 0
diff --git a/data/points/SO3_50000.off b/data/points/SO3_50000.off
index 635e8988..9b23a78f 100644
--- a/data/points/SO3_50000.off
+++ b/data/points/SO3_50000.off
@@ -1,5 +1,5 @@
-OFF
-50000 1 0
+nOFF
+9 50000 1 0
2.08167e-17 0 -1 -0.500001 0.866026 0 0.866026 0.500001 -2.08167e-17
0 0 -1 0.500001 -0.866026 0 -0.866026 -0.500001 0
0 0 -1 -1 0 0 0 1 0
diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h
index b0ee35f5..2c9602fa 100644
--- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h
+++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker/internal/Trie.h
@@ -147,7 +147,7 @@ struct Trie {
}
void remove_leaf() {
- assert(is_leaf);
+ assert(is_leaf());
if (!is_root())
parent_->childs.erase(this);
}
diff --git a/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp b/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp
index 7b303935..4f9888ba 100644
--- a/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp
+++ b/src/Skeleton_blocker/test/test_skeleton_blocker_complex.cpp
@@ -358,7 +358,8 @@ BOOST_AUTO_TEST_CASE(test_skeleton_iterator_blockers) {
num_blockers = 0;
for (auto blockers : complex.blocker_range()) {
-#ifndef _WIN64
+// If not windows - _WIN32 is for windows 32 and 64 bits
+#ifndef _WIN32
for (auto block_ptr = myBlockers.begin(); block_ptr < myBlockers.end(); block_ptr++)
if (*block_ptr == *blockers)
myBlockers.erase(block_ptr);
@@ -366,7 +367,8 @@ BOOST_AUTO_TEST_CASE(test_skeleton_iterator_blockers) {
num_blockers++;
}
BOOST_CHECK(num_blockers == 4);
-#ifndef _WIN64
+// If not windows - _WIN32 is for windows 32 and 64 bits
+#ifndef _WIN32
BOOST_CHECK(myBlockers.empty());
#endif
}
diff --git a/src/common/example/CMakeLists.txt b/src/common/example/CMakeLists.txt
index 0da3dcc0..b0c6d69a 100644
--- a/src/common/example/CMakeLists.txt
+++ b/src/common/example/CMakeLists.txt
@@ -1,17 +1,21 @@
cmake_minimum_required(VERSION 2.6)
project(Common_examples)
-# need CGAL 4.7
+add_executable ( vector_double_off_reader example_vector_double_points_off_reader.cpp )
+target_link_libraries(vector_double_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
+add_test(vector_double_off_reader ${CMAKE_CURRENT_BINARY_DIR}/vector_double_off_reader ${CMAKE_SOURCE_DIR}/data/points/SO3_10000.off)
+
if(CGAL_FOUND)
- add_executable ( cgal3Doffreader CGAL_3D_points_off_reader.cpp )
- target_link_libraries(cgal3Doffreader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
- add_test(cgal3Doffreader ${CMAKE_CURRENT_BINARY_DIR}/cgal3Doffreader ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off)
+ add_executable ( cgal_3D_off_reader example_CGAL_3D_points_off_reader.cpp )
+ target_link_libraries(cgal_3D_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
+ add_test(cgal_3D_off_reader ${CMAKE_CURRENT_BINARY_DIR}/cgal_3D_off_reader ${CMAKE_SOURCE_DIR}/data/points/tore3D_300.off)
+ # need CGAL 4.7
if (NOT CGAL_VERSION VERSION_LESS 4.7.0)
if (EIGEN3_FOUND)
- add_executable ( cgaloffreader CGAL_points_off_reader.cpp )
- target_link_libraries(cgaloffreader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
- add_test(cgaloffreader ${CMAKE_CURRENT_BINARY_DIR}/cgaloffreader ${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off)
+ add_executable ( cgal_off_reader example_CGAL_points_off_reader.cpp )
+ target_link_libraries(cgal_off_reader ${Boost_SYSTEM_LIBRARY} ${CGAL_LIBRARY})
+ add_test(cgal_off_reader ${CMAKE_CURRENT_BINARY_DIR}/cgal_off_reader ${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off)
endif(EIGEN3_FOUND)
endif (NOT CGAL_VERSION VERSION_LESS 4.7.0)
endif()
diff --git a/src/common/example/CGAL_3D_points_off_reader.cpp b/src/common/example/example_CGAL_3D_points_off_reader.cpp
index d48bb17d..d48bb17d 100644
--- a/src/common/example/CGAL_3D_points_off_reader.cpp
+++ b/src/common/example/example_CGAL_3D_points_off_reader.cpp
diff --git a/src/common/example/CGAL_points_off_reader.cpp b/src/common/example/example_CGAL_points_off_reader.cpp
index d1ca166d..4522174a 100644
--- a/src/common/example/CGAL_points_off_reader.cpp
+++ b/src/common/example/example_CGAL_points_off_reader.cpp
@@ -37,7 +37,7 @@ int main(int argc, char **argv) {
int n {0};
for (auto point : point_cloud) {
std::cout << "Point[" << n << "] = ";
- for (int i {0}; i < point.dimension(); i++)
+ for (std::size_t i {0}; i < point.size(); i++)
std::cout << point[i] << " ";
std::cout << "\n";
++n;
diff --git a/src/common/example/example_vector_double_points_off_reader.cpp b/src/common/example/example_vector_double_points_off_reader.cpp
new file mode 100644
index 00000000..8aecb26e
--- /dev/null
+++ b/src/common/example/example_vector_double_points_off_reader.cpp
@@ -0,0 +1,41 @@
+#include <gudhi/Points_off_io.h>
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+using Point_d = std::vector<double>;
+
+void usage(char * const progName) {
+ std::cerr << "Usage: " << progName << " inputFile.off" << std::endl;
+ exit(-1);
+}
+
+int main(int argc, char **argv) {
+ if (argc != 2) {
+ std::cerr << "Error: Number of arguments (" << argc << ") is not correct" << std::endl;
+ usage(argv[0]);
+ }
+
+ std::string offInputFile(argv[1]);
+ // Read the OFF file (input file name given as parameter) and triangulate points
+ Gudhi::Points_off_reader<Point_d> off_reader(offInputFile);
+ // Check the read operation was correct
+ if (!off_reader.is_valid()) {
+ std::cerr << "Unable to read file " << offInputFile << std::endl;
+ usage(argv[0]);
+ }
+
+ // Retrieve the triangulation
+ std::vector<Point_d> point_cloud = off_reader.get_point_cloud();
+
+ int n {0};
+ for (auto point : point_cloud) {
+ std::cout << "Point[" << n << "] = ";
+ for (std::size_t i {0}; i < point.size(); i++)
+ std::cout << point[i] << " ";
+ std::cout << "\n";
+ ++n;
+ }
+ return 0;
+}
diff --git a/src/common/include/gudhi/Points_off_io.h b/src/common/include/gudhi/Points_off_io.h
index 74b49386..18b23e84 100644
--- a/src/common/include/gudhi/Points_off_io.h
+++ b/src/common/include/gudhi/Points_off_io.h
@@ -73,9 +73,8 @@ class Points_off_visitor_reader {
* @details
* Point_d must have a constructor with the following form:
*
- * @code template<class InputIterator > Point_d::Point_d(int d, InputIterator first, InputIterator last) @endcode
+ * @code template<class InputIterator > Point_d::Point_d(InputIterator first, InputIterator last) @endcode
*
- * where d is the point dimension.
*/
void point(const std::vector<double>& point) {
#ifdef DEBUG_TRACES
@@ -86,7 +85,7 @@ class Points_off_visitor_reader {
std::cout << std::endl;
#endif // DEBUG_TRACES
// Fill the point cloud
- point_cloud.push_back(Point_d(point.size(), point.begin(), point.end()));
+ point_cloud.push_back(Point_d(point.begin(), point.end()));
}
// Off_reader visitor maximal_face implementation - Only points are read
@@ -117,14 +116,14 @@ class Points_off_visitor_reader {
*
* \section Example
*
- * This example loads points from an OFF file and builds a vector of CGAL points in dimension d.
+ * This example loads points from an OFF file and builds a vector of points (vector of double).
* Then, it is asked to display the points.
*
- * \include common/CGAL_points_off_reader.cpp
+ * \include common/example_vector_double_points_off_reader.cpp
*
* When launching:
*
- * \code $> ./cgaloffreader ../../data/points/alphacomplexdoc.off
+ * \code $> ./vector_double_off_reader ../../data/points/alphacomplexdoc.off
* \endcode
*
* the program output is:
diff --git a/src/common/test/CMakeLists.txt b/src/common/test/CMakeLists.txt
index 0a88cf8e..7ccdb752 100644
--- a/src/common/test/CMakeLists.txt
+++ b/src/common/test/CMakeLists.txt
@@ -10,26 +10,15 @@ if (GPROF_PATH)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
endif()
-# need CGAL 4.7
-if(CGAL_FOUND)
- if (NOT CGAL_VERSION VERSION_LESS 4.7.0)
- if (EIGEN3_FOUND)
- add_executable ( poffreader_UT points_off_reader_unit_test.cpp )
- target_link_libraries(poffreader_UT ${Boost_SYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
+add_executable ( poffreader_UT test_points_off_reader.cpp )
+target_link_libraries(poffreader_UT ${Boost_SYSTEM_LIBRARY} ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
- # Do not forget to copy test files in current binary dir
- file(COPY "${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
+# Do not forget to copy test files in current binary dir
+file(COPY "${CMAKE_SOURCE_DIR}/data/points/alphacomplexdoc.off" DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/)
- # Unitary tests
- add_test(poffreader_UT ${CMAKE_CURRENT_BINARY_DIR}/poffreader_UT
- # XML format for Jenkins xUnit plugin
- --log_format=XML --log_sink=${CMAKE_SOURCE_DIR}/poffreader_UT.xml --log_level=test_suite --report_level=no)
+# Unitary tests
+add_test(poffreader_UT ${CMAKE_CURRENT_BINARY_DIR}/poffreader_UT
+ # XML format for Jenkins xUnit plugin
+ --log_format=XML --log_sink=${CMAKE_SOURCE_DIR}/poffreader_UT.xml --log_level=test_suite --report_level=no)
- else()
- message(WARNING "Eigen3 not found. Version 3.1.0 is required for points_off_reader unitary tests.")
- endif()
- else()
- message(WARNING "CGAL version: ${CGAL_VERSION} is too old to compile points_off_reader unitary tests. Version 4.7.0 is required.")
- endif ()
-endif()
diff --git a/src/common/test/points_off_reader_unit_test.cpp b/src/common/test/test_points_off_reader.cpp
index dbcc0434..b4f71182 100644
--- a/src/common/test/points_off_reader_unit_test.cpp
+++ b/src/common/test/test_points_off_reader.cpp
@@ -22,10 +22,6 @@
#include <gudhi/Points_off_io.h>
-// For CGAL points type in dimension d
-// cf. http://doc.cgal.org/latest/Kernel_d/classCGAL_1_1Point__d.html
-#include <CGAL/Epick_d.h>
-
#include <iostream>
#include <string>
#include <vector>
@@ -34,8 +30,7 @@
#define BOOST_TEST_MODULE "points_off_read_write"
#include <boost/test/unit_test.hpp>
-typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Kernel;
-typedef Kernel::Point_d Point_d;
+using Point_d = std::vector<double>;
BOOST_AUTO_TEST_CASE( points_doc_test )
{
@@ -50,19 +45,19 @@ BOOST_AUTO_TEST_CASE( points_doc_test )
std::vector<Point_d> expected_points;
std::vector<double> point = {1.0, 1.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {7.0, 0.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {4.0, 6.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {9.0, 6.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {0.0, 14.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {2.0, 19.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
point = {9.0, 17.0};
- expected_points.push_back(Point_d(2, point.begin(), point.end()));
+ expected_points.push_back(Point_d(point.begin(), point.end()));
BOOST_CHECK(point_cloud == expected_points);
}