diff options
Diffstat (limited to 'data/points/generator')
-rw-r--r-- | data/points/generator/CMakeLists.txt | 29 | ||||
-rw-r--r-- | data/points/generator/README | 8 | ||||
-rw-r--r-- | data/points/generator/hypergenerator.cpp | 16 |
3 files changed, 24 insertions, 29 deletions
diff --git a/data/points/generator/CMakeLists.txt b/data/points/generator/CMakeLists.txt index f559610c..88d377a7 100644 --- a/data/points/generator/CMakeLists.txt +++ b/data/points/generator/CMakeLists.txt @@ -1,18 +1,15 @@ cmake_minimum_required(VERSION 2.6) -project(Data_points_generator) +project(data_points_generator) -if(CGAL_FOUND) - if (NOT CGAL_VERSION VERSION_LESS 4.6.0) - if (EIGEN3_FOUND) - add_executable ( hypergenerator hypergenerator.cpp ) - target_link_libraries(hypergenerator ${Boost_SYSTEM_LIBRARY}) - add_test(hypergenerator_on_sphere_3000_10_5.0 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator on sphere onSphere.off 3000 10 5.0) - add_test(hypergenerator_on_sphere_10000_3 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator on sphere onSphere.off 10000 3) - add_test(hypergenerator_in_sphere_7000_12_10.8 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator in sphere inSphere.off 7000 12 10.8) - add_test(hypergenerator_in_sphere_50000_2 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator in sphere inSphere.off 50000 2) - # on cube is not available in CGAL - add_test(hypergenerator_in_cube_7000_12_10.8 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator in cube inCube.off 7000 12 10.8) - add_test(hypergenerator_in_cube_50000_2 ${CMAKE_CURRENT_BINARY_DIR}/hypergenerator in cube inCube.off 50000 3) - endif(EIGEN3_FOUND) - endif(NOT CGAL_VERSION VERSION_LESS 4.6.0) -endif(CGAL_FOUND) +if (NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.6.0) + add_executable ( data_points_generator hypergenerator.cpp ) + target_link_libraries(data_points_generator ${Boost_SYSTEM_LIBRARY}) + add_test(NAME data_points_generator_on_sphere_1000_3_15.2 COMMAND $<TARGET_FILE:data_points_generator> + "on" "sphere" "onSphere.off" "1000" "3" "15.2") + add_test(NAME data_points_generator_in_sphere_100_2 COMMAND $<TARGET_FILE:data_points_generator> + "in" "sphere" "inSphere.off" "100" "2") + + # on cube is not available in CGAL + add_test(NAME data_points_generator_in_cube_10000_3_5.8 COMMAND $<TARGET_FILE:data_points_generator> + "in" "cube" "inCube.off" "10000" "3" "5.8") +endif(NOT CGAL_WITH_EIGEN3_VERSION VERSION_LESS 4.6.0) diff --git a/data/points/generator/README b/data/points/generator/README index 41cb9165..951bcfe1 100644 --- a/data/points/generator/README +++ b/data/points/generator/README @@ -7,21 +7,21 @@ cmake . cd /path-to-data-generator/ make -=========================== hypergenerator ===================================== +======================= data_points_generator ================================== Example of use : *** Hyper sphere|cube generator -./hypergenerator on sphere onSphere.off 1000 3 15.2 +./data_points_generator on sphere onSphere.off 1000 3 15.2 => generates a onSphere.off file with 1000 points randomized on a sphere of dimension 3 and radius 15.2 -./hypergenerator in sphere inSphere.off 100 2 +./data_points_generator in sphere inSphere.off 100 2 => generates a inSphere.off file with 100 points randomized in a sphere of dimension 2 (circle) and radius 1.0 (default) -./hypergenerator in cube inCube.off 10000 3 5.8 +./data_points_generator in cube inCube.off 10000 3 5.8 => generates a inCube.off file with 10000 points randomized in a cube of dimension 3 and side 5.8 diff --git a/data/points/generator/hypergenerator.cpp b/data/points/generator/hypergenerator.cpp index 60890b44..5831de18 100644 --- a/data/points/generator/hypergenerator.cpp +++ b/data/points/generator/hypergenerator.cpp @@ -29,7 +29,7 @@ #include <iterator> #include <vector> #include <fstream> // for std::ofstream - +#include <cstdlib> typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > K; typedef K::Point_d Point; @@ -47,24 +47,22 @@ int main(int argc, char **argv) { usage(argv[0]); } - int points_number = 0; - int returnedScanValue = sscanf(argv[4], "%d", &points_number); - if ((returnedScanValue == EOF) || (points_number <= 0)) { + int points_number = atoi(argv[4]); + if (points_number <= 0) { std::cerr << "Error: " << argv[4] << " is not correct" << std::endl; usage(argv[0]); } - int dimension = 0; - returnedScanValue = sscanf(argv[5], "%d", &dimension); - if ((returnedScanValue == EOF) || (dimension <= 0)) { + int dimension = atoi(argv[5]); + if (dimension <= 0) { std::cerr << "Error: " << argv[5] << " is not correct" << std::endl; usage(argv[0]); } double radius = 1.0; if (argc == 7) { - returnedScanValue = sscanf(argv[6], "%lf", &radius); - if ((returnedScanValue == EOF) || (radius <= 0.0)) { + radius = atof(argv[6]); + if (radius <= 0.0) { std::cerr << "Error: " << argv[6] << " is not correct" << std::endl; usage(argv[0]); } |