From dae9e6f55cce087bdabdfd70146bbb7e84d3df13 Mon Sep 17 00:00:00 2001 From: konstantinos katrioplas Date: Sun, 18 Jun 2017 12:58:43 +0300 Subject: [PATCH] get rid of boilerplate in test cpp --- .../test_comp_remeshing.cpp | 459 ++---------------- 1 file changed, 42 insertions(+), 417 deletions(-) diff --git a/Polygon_mesh_processing/test/Polygon_mesh_processing/test_comp_remeshing.cpp b/Polygon_mesh_processing/test/Polygon_mesh_processing/test_comp_remeshing.cpp index 8f4c263bded..e7c7ba6d43b 100644 --- a/Polygon_mesh_processing/test/Polygon_mesh_processing/test_comp_remeshing.cpp +++ b/Polygon_mesh_processing/test/Polygon_mesh_processing/test_comp_remeshing.cpp @@ -1,5 +1,7 @@ #include #include +#include +#include #include #include @@ -11,6 +13,7 @@ #define CGAL_TEST_COMP_REMESHING_DEBUG //#define CGAL_TEST_COMP_REMESHING_OUTPUT + typedef CGAL::Exact_predicates_inexact_constructions_kernel K; typedef CGAL::Surface_mesh Mesh; @@ -20,7 +23,7 @@ int main(int argc, char* argv[]){ - const char* filename; + std::string filename; std::ifstream input; Mesh mesh; #ifdef CGAL_TEST_COMP_REMESHING_OUTPUT @@ -28,437 +31,59 @@ int main(int argc, char* argv[]){ #endif - /// - filename = "data/polygon3D.off"; - input.open(filename); + + std::vector filenames = { + "data/polygon3D", + "data/blobby_3cc", + "data/cube_quad", + "data/elephant", + "data/degenerate_polygon", + "data/sneaky_degenerate_polygon", + "data/joint_refined", + "data/mannequin-devil", + "data/mech-holes-shark", + "data/non_manifold_vertex", + "data/overlapping_triangles", + "data/tetra1", + "data/tetra2", + "data/tetra3", + "data/tetra4", + "data/two_tris_collinear", + "data/U" + }; + + + + for(auto i=0; i!= filenames.size(); ++i) + { + filename = filenames[i]+".off"; + input.open(filename); + #ifdef CGAL_TEST_COMP_REMESHING_DEBUG std::cout<<"case: "<< filename << std::endl; #endif - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); + if (!input || !(input >> mesh) || mesh.is_empty()) { + std::cerr << "Not a valid .off file." << std::endl; + return 1; + } + input.close(); + + + //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); + CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - input.close(); #ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/polygon3D_smoothed.off"); + output.open(filenames[i]+"_smoothed"+".off"); output << mesh; output.close(); #endif - - /// - filename = "data/blobby_3cc.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; } - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/blobby_3cc_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/cube_quad.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/cube_quad_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/elephant.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/elephant_smoothed.off"); - output << mesh; - output.close(); -#endif - - filename = "data/degenerate_polygon.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/degenerate_polygon_smoothed.off"); - output << mesh; - output.close(); -#endif - - filename = "data/sneaky_degenerate_polygon.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/sneaky_degenerate_polygon_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/joint_refined.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/joint_refined_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/mannequin-devil.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/mannequin-devil_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/mech-holes-shark.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/mech-holes-shark_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/non_manifold_vertex.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - // CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/non_manifold_vertex_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/overlapping_triangles.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/overlapping_triangles_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/tetra1.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/tetra1_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/tetra2.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/tetra2_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/tetra3.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/tetra3_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/tetra4.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/tetra4_smoothed.off"); - output << mesh; - output.close(); -#endif - - /// - filename = "data/two_tris_collinear.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/two_tris_collinear_smoothed.off"); - output << mesh; - output.close(); -#endif - - - /// - filename = "data/U.off"; - input.open(filename); - -#ifdef CGAL_TEST_COMP_REMESHING_DEBUG -std::cout<<"case: "<< filename << std::endl; -#endif - - if (!input || !(input >> mesh) || mesh.is_empty()) { - std::cerr << "Not a valid .off file." << std::endl; - return 1; - } - - //CGAL::Polygon_mesh_processing::angle_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default()); - CGAL::Polygon_mesh_processing::area_remeshing(mesh, CGAL::Polygon_mesh_processing::parameters::all_default(), faces(mesh)); - - - input.close(); - -#ifdef CGAL_TEST_COMP_REMESHING_OUTPUT - output.open("data/U_smoothed.off"); - output << mesh; - output.close(); -#endif return 0;