diff options
author | Gard Spreemann <gspreemann@gmail.com> | 2017-10-09 10:47:31 +0200 |
---|---|---|
committer | Gard Spreemann <gspreemann@gmail.com> | 2017-10-09 10:47:31 +0200 |
commit | 673b6bb63befd7e591e52c13f43e5db53e5b29bd (patch) | |
tree | 3f15d96ef39bf0c6cf656d176ff1c437cacf5988 /include/gudhi/random_point_generators.h | |
parent | 9466ce44e348487fc04a1fda493ed659ae92b775 (diff) | |
parent | 866f6ce614e9c09c97fed12c8c0c2c9fb84fad3f (diff) |
Merge tag 'upstream/2.0.1' into dfsg/latest
Upstream's 2.0.1 release.
Diffstat (limited to 'include/gudhi/random_point_generators.h')
-rw-r--r-- | include/gudhi/random_point_generators.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/gudhi/random_point_generators.h b/include/gudhi/random_point_generators.h index 2ec465ef..9df77760 100644 --- a/include/gudhi/random_point_generators.h +++ b/include/gudhi/random_point_generators.h @@ -282,6 +282,38 @@ std::vector<typename Kernel::Point_d> generate_points_on_sphere_d(std::size_t nu } template <typename Kernel> +std::vector<typename Kernel::Point_d> generate_points_in_ball_d(std::size_t num_points, int dim, double radius) { + typedef typename Kernel::Point_d Point; + Kernel k; + CGAL::Random rng; + CGAL::Random_points_in_ball_d<Point> generator(dim, radius); + std::vector<Point> points; + points.reserve(num_points); + for (std::size_t i = 0; i < num_points;) { + Point p = *generator++; + points.push_back(p); + ++i; + } + return points; +} + +template <typename Kernel> +std::vector<typename Kernel::Point_d> generate_points_in_cube_d(std::size_t num_points, int dim, double radius) { + typedef typename Kernel::Point_d Point; + Kernel k; + CGAL::Random rng; + CGAL::Random_points_in_cube_d<Point> generator(dim, radius); + std::vector<Point> points; + points.reserve(num_points); + for (std::size_t i = 0; i < num_points;) { + Point p = *generator++; + points.push_back(p); + ++i; + } + return points; +} + +template <typename Kernel> std::vector<typename Kernel::Point_d> generate_points_on_two_spheres_d(std::size_t num_points, int dim, double radius, double distance_between_centers, double radius_noise_percentage = 0.) { |