summaryrefslogtreecommitdiff
path: root/data/points/generator
diff options
context:
space:
mode:
Diffstat (limited to 'data/points/generator')
-rw-r--r--data/points/generator/CMakeLists.txt29
-rw-r--r--data/points/generator/README8
-rw-r--r--data/points/generator/hypergenerator.cpp16
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]);
}