mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 12:41:20 -06:00 
			
		
		
		
	 bd76c345f2
			
		
	
	
		bd76c345f2
		
	
	
	
	
		
			
			Add conversion to exact predicates exact construction kernel format for consecutive booleans (experiments)
		
			
				
	
	
		
			26 lines
		
	
	
	
		
			824 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
	
		
			824 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include <catch2/catch.hpp>
 | |
| #include <test_utils.hpp>
 | |
| 
 | |
| #include <libslic3r/TriangleMesh.hpp>
 | |
| #include <libslic3r/MeshBoolean.hpp>
 | |
| #include <libslic3r/SimplifyMesh.hpp>
 | |
| 
 | |
| 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));
 | |
| }
 |