From abd4797802b7ba2025f04679d76ac589e37f69a4 Mon Sep 17 00:00:00 2001 From: Nico Kruithof Date: Tue, 13 Jun 2006 15:08:29 +0000 Subject: [PATCH] Changing the testsuite to the new interface TODO: Union of balls example --- .../Skin_surface_3/union_of_balls_simple.C | 2 +- .../test/Skin_surface_3/degenerate_test.C | 85 ++++++--- .../test/Skin_surface_3/subdivision_test.C | 173 +++++++----------- 3 files changed, 120 insertions(+), 140 deletions(-) diff --git a/Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.C b/Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.C index dae6c22b74f..434d432a540 100644 --- a/Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.C +++ b/Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.C @@ -1,6 +1,6 @@ // examples/Skin_surface_3/union_of_balls_simple.C #include -#include +#include #include // #include #include diff --git a/Skin_surface_3/test/Skin_surface_3/degenerate_test.C b/Skin_surface_3/test/Skin_surface_3/degenerate_test.C index 75d6af61f93..e7c0be5986b 100644 --- a/Skin_surface_3/test/Skin_surface_3/degenerate_test.C +++ b/Skin_surface_3/test/Skin_surface_3/degenerate_test.C @@ -32,63 +32,92 @@ bool test(char * filename, double shrink) { int main(int argc, char *argv[]) { bool result; + char *filename; - result = test("data/caffeine.cin", .5); + filename = "data/caffeine.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/ball.cin", .5); + filename = "data/ball.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/degenerate.cin", .5); + filename = "data/degenerate.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test1.cin", .5); + filename = "data/test1.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test2.cin", .5); + filename = "data/test2.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test3.cin", .5); + filename = "data/test3.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test4.cin", .5); + filename = "data/test4.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test5.cin", .5); + filename = "data/test5.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test6.cin", .5); + filename = "data/test6.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test7.cin", .5); + filename = "data/test7.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test8.cin", .5); + filename = "data/test8.cin"; CGAL_assertion(result); - result = test("data/test9.cin", .5); + result = test(filename, .5); + filename = "data/test9.cin"; CGAL_assertion(result); - result = test("data/test10.cin", .5); + result = test(filename, .5); + filename = "data/test10.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/test11.cin", .5); + filename = "data/test11.cin"; + result = test(filename, .5); CGAL_assertion(result); - result = test("data/caffeine.cin", .85); + filename = "data/caffeine.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/ball.cin", .85); + filename = "data/ball.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/degenerate.cin", .85); + filename = "data/degenerate.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test1.cin", .85); + filename = "data/test1.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test2.cin", .85); + filename = "data/test2.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test3.cin", .85); + filename = "data/test3.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test4.cin", .85); + filename = "data/test4.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test5.cin", .85); + filename = "data/test5.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test6.cin", .85); + filename = "data/test6.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test7.cin", .85); + filename = "data/test7.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test8.cin", .85); + filename = "data/test8.cin"; CGAL_assertion(result); - result = test("data/test9.cin", .85); + result = test(filename, .85); + filename = "data/test9.cin"; CGAL_assertion(result); - result = test("data/test10.cin", .85); + result = test(filename, .85); + filename = "data/test10.cin"; + result = test(filename, .85); CGAL_assertion(result); - result = test("data/test11.cin", .85); + filename = "data/test11.cin"; + result = test(filename, .85); CGAL_assertion(result); return 0; diff --git a/Skin_surface_3/test/Skin_surface_3/subdivision_test.C b/Skin_surface_3/test/Skin_surface_3/subdivision_test.C index 3b6fee41a77..ab646dee791 100644 --- a/Skin_surface_3/test/Skin_surface_3/subdivision_test.C +++ b/Skin_surface_3/test/Skin_surface_3/subdivision_test.C @@ -1,128 +1,79 @@ // test/Skin_surface_3/subdivision_test.C -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include - -#include -#include - -#include - -#include - -typedef CGAL::Skin_surface_traits_3<> Skin_traits; -typedef Skin_traits::Regular_traits Regular_traits; - -typedef CGAL::Regular_triangulation_3 Regular; -typedef Regular_traits::Weighted_point Reg_weighted_point; -typedef Regular_traits::Bare_point Reg_point; - -typedef CGAL::Triangulated_mixed_complex_3 Tr2; -typedef Tr2::Cell_handle Tr2_cell_handle; -typedef Tr2::Finite_cells_iterator Tr2_Fin_cells_it; -typedef Tr2::Finite_vertices_iterator Tr2_Fin_vertices_it; - -typedef Skin_traits::Polyhedron_traits Polyhedron_kernel; -typedef CGAL::Polyhedron_3 Polyhedron; - -typedef CGAL::Skin_surface_polyhedral_items_3 Polyhedral_items; -typedef CGAL::Polyhedron_3 - Polyhedron_plus; - -typedef Polyhedron_kernel::RT Polyhedron_rt; - -typedef CGAL::Marching_tetrahedra_traits_skin_surface_3< - Tr2, Polyhedron, Skin_traits::T2P_converter> Marching_tetrahedra_traits; - -typedef CGAL::Marching_tetrahedra_observer_default_3< - Tr2, Polyhedron> Marching_observer_default; -typedef CGAL::Marching_tetrahedra_observer_skin_surface_3< - Tr2, Polyhedron_plus> Marching_observer_skin_surface; - -typedef CGAL::Skin_surface_refinement_traits_3< - Tr2, - Polyhedron, - Skin_traits::T2P_converter, - Skin_traits::P2T_converter> Skin_refinement_traits; - -typedef CGAL::Skin_surface_refinement_traits_with_face_info_3< - Tr2, - Polyhedron_plus, - Skin_traits::T2P_converter, - Skin_traits::P2T_converter> Skin_refinement_traits_plus; - +#include +#include +#include #include +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef CGAL::Regular_triangulation_euclidean_traits_3 Traits; +typedef CGAL::Skin_surface_3 Skin_surface_3; +typedef Skin_surface_3::FT FT; +typedef Skin_surface_3::Weighted_point Weighted_point; +typedef Skin_surface_3::Bare_point Bare_point; +typedef CGAL::Polyhedron_3 Polyhedron; -template < class Triangulated_mixed_complex, - class Polyhedron, - class Marching_traits, - class Marching_observer, - class Skin_surface_refinement_traits> -void construct_and_subdivide_mesh( - Triangulated_mixed_complex &triangulated_mixed_complex, - Polyhedron &polyhedron, - Marching_traits &marching_traits, - Marching_observer &marching_observer, - Skin_surface_refinement_traits &refinement_traits) { +typedef CGAL::Skin_surface_polyhedral_items_3 Poly_items_skin; +typedef CGAL::Polyhedron_3 Polyhedron_skin; - CGAL::marching_tetrahedra_3( - triangulated_mixed_complex, polyhedron, marching_traits, marching_observer); - - CGAL::skin_surface_sqrt3(polyhedron, refinement_traits, 4); +#include + +Skin_surface_3 create_skin_surface(char * filename, double shrink) { + std::list l; + std::ifstream in(filename); + CGAL_assertion(in.is_open()); + Weighted_point wp; + while (in >> wp) l.push_front(wp); + + return Skin_surface_3(l.begin(), l.end(), shrink); +} + +template < class Skin_surface_3, class Polyhedron> +bool construct_and_subdivide_mesh(Skin_surface_3 &skin_surface, + Polyhedron &polyhedron) +{ + CGAL::mesh_skin_surface_3(skin_surface, polyhedron); + CGAL_assertion(polyhedron.is_valid() && polyhedron.is_closed()); + + CGAL::subdivide_skin_surface_mesh_3(polyhedron, skin_surface); + return (polyhedron.is_valid() && polyhedron.is_closed()); } int main(int argc, char *argv[]) { - double shrink = .85; - Skin_traits skin_traits(shrink); - Marching_tetrahedra_traits marching_traits; - while (argc>1) { - argc--; argv++; - std::ifstream is(argv[0]); - - Regular regular; - Reg_weighted_point wp; + bool result; - while (is >> wp) regular.insert(wp); - CGAL::skin_surface_construct_bounding_box_3(regular, skin_traits); + std::vector filenames; + filenames.push_back("data/caffeine.cin"); + filenames.push_back("data/ball.cin"); + filenames.push_back("data/degenerate.cin"); + filenames.push_back("data/test1.cin"); + filenames.push_back("data/test2.cin"); + filenames.push_back("data/test3.cin"); + filenames.push_back("data/test4.cin"); + filenames.push_back("data/test5.cin"); + filenames.push_back("data/test6.cin"); + filenames.push_back("data/test7.cin"); + filenames.push_back("data/test8.cin"); + filenames.push_back("data/test9.cin"); + filenames.push_back("data/test10.cin"); + filenames.push_back("data/test11.cin"); - // Triangulate mixed complex: - Tr2 triangulated_mixed_complex; - CGAL::triangulate_mixed_complex_3( - regular, triangulated_mixed_complex, skin_traits); + Polyhedron p; + Polyhedron_skin p_skin; + for (std::vector::size_type i=0; i