mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	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));
 | 
						|
}
 |