#include #include #include #include using namespace Slic3r; TEST_CASE("CGAL and TriangleMesh conversions", "[MeshBoolean]") { TriangleMesh sphere = make_sphere(1.); auto cgalmesh_ptr = MeshBoolean::cgal::triangle_mesh_to_cgal(sphere); REQUIRE(cgalmesh_ptr); REQUIRE(! MeshBoolean::cgal::does_self_intersect(*cgalmesh_ptr)); TriangleMesh M = MeshBoolean::cgal::cgal_to_triangle_mesh(*cgalmesh_ptr); REQUIRE(M.its.vertices.size() == sphere.its.vertices.size()); REQUIRE(M.its.indices.size() == sphere.its.indices.size()); REQUIRE(M.volume() == Approx(sphere.volume())); REQUIRE(! MeshBoolean::cgal::does_self_intersect(M)); }