add corefine test

This commit is contained in:
Sébastien Loriot 2022-06-27 19:58:58 +02:00
parent 2670d65fd0
commit cc2d27e519
1 changed files with 27 additions and 4 deletions

View File

@ -6,10 +6,6 @@
// #define CGAL_DEBUG_PMP_CLIP
// TODO: test coref
// TODO: test throw coref and clip
// TODO: check split
namespace PMP = CGAL::Polygon_mesh_processing;
namespace params = CGAL::parameters;
@ -43,6 +39,33 @@ void test()
PMP::split(tm, K::Plane_3(a,b,c,d), params::allow_self_intersections(true));
}
{
std::cout << " test corefine with SI allowed\n";
TriangleMesh tm;
std::ifstream(f) >> tm;
TriangleMesh box_mesh;
CGAL::Bbox_3 bbox = PMP::bbox(tm);
//extend the bbox a bit to avoid border cases
double xd=(std::max)(1.,(bbox.xmax()-bbox.xmin())/100);
double yd=(std::max)(1.,(bbox.ymax()-bbox.ymin())/100);
double zd=(std::max)(1.,(bbox.zmax()-bbox.zmin())/100);
bbox=CGAL::Bbox_3(bbox.xmin()-xd, bbox.ymin()-yd, bbox.zmin()-zd,
bbox.xmax()+xd, bbox.ymax()+yd, bbox.zmax()+zd);
PMP::internal::clip_to_bbox(K::Plane_3(a,b,c,d), bbox,
box_mesh, params::default_values());
try{
PMP::corefine(tm, box_mesh, params::throw_on_self_intersection(true));
}
catch(PMP::Corefinement::Self_intersection_exception&)
{}
PMP::corefine(tm, box_mesh, params::default_values(), params::do_not_modify(true));
assert(CGAL::is_triangle_mesh(tm));
assert(CGAL::is_triangle_mesh(box_mesh));
}
{
std::cout << " test clip with SI allowed\n";
TriangleMesh tm;