summaryrefslogtreecommitdiff
path: root/src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h')
-rw-r--r--src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h b/src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h
index 3b753ee2..e05e5a7f 100644
--- a/src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h
+++ b/src/Alpha_complex/include/gudhi/Alpha_complex_3d_options.h
@@ -26,6 +26,8 @@
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Delaunay_triangulation_3.h>
+#include <CGAL/Periodic_3_Delaunay_triangulation_traits_3.h>
+#include <CGAL/Periodic_3_Delaunay_triangulation_3.h>
#include <CGAL/Regular_triangulation_3.h>
#include <CGAL/Alpha_shape_3.h>
#include <CGAL/Alpha_shape_cell_base_3.h>
@@ -49,7 +51,6 @@ public:
using Alpha_shape_3 = CGAL::Alpha_shape_3<Triangulation_3>;
using Point_3 = Kernel::Point_3;
- static const bool exact = false;
static const bool weighted = false;
static const bool periodic = false;
@@ -69,7 +70,6 @@ public:
using Alpha_shape_3 = CGAL::Alpha_shape_3<Triangulation_3, Exact_tag>;
using Point_3 = Kernel::Point_3;
- static const bool exact = true;
static const bool weighted = false;
static const bool periodic = false;
};
@@ -90,13 +90,37 @@ public:
using Point_3 = Triangulation_3::Bare_point;
using Weighted_point_3 = Triangulation_3::Weighted_point;
- static const bool exact = false;
static const bool weighted = true;
static const bool periodic = false;
};
+class Periodic_alpha_shapes_3d {
+private:
+ using Kernel = CGAL::Exact_predicates_inexact_constructions_kernel;
+ using Periodic_kernel = CGAL::Periodic_3_Delaunay_triangulation_traits_3<Kernel>;
+// Vertex type
+ using DsVb = CGAL::Periodic_3_triangulation_ds_vertex_base_3<>;
+ using Vb = CGAL::Triangulation_vertex_base_3<Periodic_kernel, DsVb>;
+ using AsVb = CGAL::Alpha_shape_vertex_base_3<Periodic_kernel, Vb>;
+// Cell type
+ using DsCb = CGAL::Periodic_3_triangulation_ds_cell_base_3<>;
+ using Cb = CGAL::Triangulation_cell_base_3<Periodic_kernel, DsCb>;
+ using AsCb = CGAL::Alpha_shape_cell_base_3<Periodic_kernel, Cb>;
+ using Tds = CGAL::Triangulation_data_structure_3<AsVb, AsCb>;
+
+public:
+ using Periodic_delaunay_triangulation_3 = CGAL::Periodic_3_Delaunay_triangulation_3<Periodic_kernel, Tds>;
+ using Alpha_shape_3 = CGAL::Alpha_shape_3<Periodic_delaunay_triangulation_3>;
+ using Point_3 = Periodic_kernel::Point_3;
+ using Alpha_value_type = Alpha_shape_3::FT;
+ using Iso_cuboid_3 = Periodic_kernel::Iso_cuboid_3;
+
+ static const bool weighted = false;
+ static const bool periodic = true;
+};
+
} // namespace alpha_complex
} // namespace Gudhi
-#endif // ALPHA_COMPLEX_3D_H_
+#endif // ALPHA_COMPLEX_3D_OPTIONS_H_