summaryrefslogtreecommitdiff
path: root/src/Witness_complex/example/generators.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Witness_complex/example/generators.h')
-rw-r--r--src/Witness_complex/example/generators.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Witness_complex/example/generators.h b/src/Witness_complex/example/generators.h
index ac445261..731a52b0 100644
--- a/src/Witness_complex/example/generators.h
+++ b/src/Witness_complex/example/generators.h
@@ -25,10 +25,12 @@
#include <CGAL/Epick_d.h>
#include <CGAL/point_generators_d.h>
+#include <CGAL/Random.h>
#include <fstream>
#include <string>
#include <vector>
+#include <cmath>
typedef CGAL::Epick_d<CGAL::Dynamic_dimension_tag> K;
typedef K::FT FT;
@@ -144,4 +146,21 @@ void generate_points_sphere(Point_Vector& W, int nbP, int dim) {
W.push_back(*rp++);
}
+/** \brief Generate nbP points on a (flat) d-torus embedded in R^{2d}
+ *
+ */
+void generate_points_torus(Point_Vector& W, int nbP, int dim) {
+ CGAL::Random rand;
+ const double pi = std::acos(-1);
+ for (int i = 0; i < nbP; i++) {
+ std::vector<FT> point;
+ for (int j = 0; j < dim; j++) {
+ double alpha = rand.uniform_real((double)0, 2*pi);
+ point.push_back(sin(alpha));
+ point.push_back(cos(alpha));
+ }
+ W.push_back(Point_d(point));
+ }
+}
+
#endif // EXAMPLE_WITNESS_COMPLEX_GENERATORS_H_