11#ifndef INCLUDE_PERIODIC_3_TRIANGULATIONS_HPP_
12#define INCLUDE_PERIODIC_3_TRIANGULATIONS_HPP_
14#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
15#include <CGAL/Periodic_3_Delaunay_triangulation_3.h>
16#include <CGAL/Periodic_3_triangulation_filtered_traits_3.h>
17#include <CGAL/point_generators_2.h>
18#include <CGAL/Random.h>
19#include <CGAL/Timer.h>
20#include <CGAL/Triangulation_vertex_base_with_info_3.h>
25using K = CGAL::Exact_predicates_inexact_constructions_kernel;
26using GT = CGAL::Periodic_3_triangulation_filtered_traits_3<K>;
28using VbDS = CGAL::Periodic_3_triangulation_ds_vertex_base_3<>;
29using T3Vb = CGAL::Triangulation_vertex_base_3<GT, VbDS>;
31using CbDS = CGAL::Periodic_3_triangulation_ds_cell_base_3<>;
32using Cb = CGAL::Triangulation_cell_base_3<GT, CbDS>;
35using VbInfo = CGAL::Triangulation_vertex_base_with_info_3<int, GT, T3Vb>;
36using TDS = CGAL::Triangulation_data_structure_3<VbInfo, Cb>;
37using PDT = CGAL::Periodic_3_Delaunay_triangulation_3<GT, TDS>;
38using T3Point = PDT::Point;
41using Kd = CGAL::Cartesian_d<double>;
42using Point = Kd::Point_d;
48 std::cout <<
"make_random_T3_triangulation() called" << std::endl;
50 int simplices_per_timeslice = simplices / timeslices;
53 int points = simplices / 6;
54 int points_per_timeslice = simplices_per_timeslice / 6;
63 double size = sqrt(points_per_timeslice);
65 CGAL::Random_points_in_cube_d<Point> gen(dim, size);
68 for (
size_t i = 0; i < timeslices; i++)
71 std::cout <<
"Timeslice " << i << std::endl;
72 for (
size_t i = 0; i < points_per_timeslice; i++) { v.push_back(*gen++); }
73 for (
size_t i = 0; i < points_per_timeslice; i++)
75 std::cout <<
" " << v[i] << std::endl;
CGAL::Triangulation_vertex_base_with_info_3< int, GT, T3Vb > VbInfo
Allows each vertex to contain an integer denoting its timeslice.
CGAL::Cartesian_d< double > Kd
Random point generators for d-dimensional points in a d-cube per timeslice.
void make_random_T3_triangulation(T *T3, int simplices, int timeslices) noexcept
Make 3D toroidal (periodic) triangulations.