diff options
Diffstat (limited to 'openscad.h')
-rw-r--r-- | openscad.h | 48 |
1 files changed, 41 insertions, 7 deletions
@@ -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 */ |