summaryrefslogtreecommitdiff
path: root/openscad.h
diff options
context:
space:
mode:
Diffstat (limited to 'openscad.h')
-rw-r--r--openscad.h48
1 files changed, 41 insertions, 7 deletions
diff --git a/openscad.h b/openscad.h
index beb3628..b765bd2 100644
--- a/openscad.h
+++ b/openscad.h
@@ -459,20 +459,54 @@ public:
#ifdef ENABLE_CGAL
#include <CGAL/Gmpq.h>
+#include <CGAL/Extended_cartesian.h>
+#include <CGAL/Nef_polyhedron_2.h>
#include <CGAL/Cartesian.h>
#include <CGAL/Polyhedron_3.h>
#include <CGAL/Nef_polyhedron_3.h>
#include <CGAL/IO/Polyhedron_iostream.h>
-typedef CGAL::Cartesian<CGAL::Gmpq> CGAL_Kernel;
-typedef CGAL::Polyhedron_3<CGAL_Kernel> CGAL_Polyhedron;
+typedef CGAL::Extended_cartesian<CGAL::Gmpq> CGAL_Kernel2;
+typedef CGAL::Nef_polyhedron_2<CGAL_Kernel2> CGAL_Nef_polyhedron2;
+
+typedef CGAL::Cartesian<CGAL::Gmpq> CGAL_Kernel3;
+typedef CGAL::Polyhedron_3<CGAL_Kernel3> CGAL_Polyhedron;
typedef CGAL_Polyhedron::HalfedgeDS CGAL_HDS;
typedef CGAL::Polyhedron_incremental_builder_3<CGAL_HDS> CGAL_Polybuilder;
-typedef CGAL::Nef_polyhedron_3<CGAL_Kernel> CGAL_Nef_polyhedron;
-typedef CGAL_Nef_polyhedron::Aff_transformation_3 CGAL_Aff_transformation;
-typedef CGAL_Nef_polyhedron::Vector_3 CGAL_Vector;
-typedef CGAL_Nef_polyhedron::Plane_3 CGAL_Plane;
-typedef CGAL_Nef_polyhedron::Point_3 CGAL_Point;
+typedef CGAL::Nef_polyhedron_3<CGAL_Kernel3> CGAL_Nef_polyhedron3;
+typedef CGAL_Nef_polyhedron3::Aff_transformation_3 CGAL_Aff_transformation;
+typedef CGAL_Nef_polyhedron3::Vector_3 CGAL_Vector;
+typedef CGAL_Nef_polyhedron3::Plane_3 CGAL_Plane;
+typedef CGAL_Nef_polyhedron3::Point_3 CGAL_Point;
+
+struct CGAL_Nef_polyhedron
+{
+ int dim;
+ CGAL_Nef_polyhedron2 p2;
+ CGAL_Nef_polyhedron3 p3;
+
+ CGAL_Nef_polyhedron() {
+ dim = 0;
+ }
+
+ CGAL_Nef_polyhedron(const CGAL_Nef_polyhedron2 &p) {
+ dim = 2;
+ p2 = p;
+ }
+
+ CGAL_Nef_polyhedron(const CGAL_Nef_polyhedron3 &p) {
+ dim = 3;
+ p3 = p;
+ }
+
+ int weight() {
+ if (dim == 2)
+ return 100;
+ if (dim == 3)
+ return p3.number_of_vertices();
+ return 0;
+ }
+};
#endif /* ENABLE_CGAL */
contact: Jan Huwald // Impressum