From 816a25895b1bb8335aa35e9bfcc8bbd1684f2258 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Mon, 15 Jan 2024 13:46:15 +0000 Subject: [PATCH] Unify input and make that output can be written simultaneously (for example during the testsuite) --- .../dual_contouring_Cartesian_grid.cpp | 2 +- .../dual_contouring_implicit_iwp.cpp | 2 +- .../dual_contouring_mesh_offset.cpp | 7 ++++--- .../Isosurfacing_3/dual_contouring_octree.cpp | 2 +- .../marching_cubes_Cartesian_grid_sphere.cpp | 4 ++-- .../marching_cubes_implicit_sphere.cpp | 2 +- .../Isosurfacing_3/marching_cubes_inrimage.cpp | 6 +++--- .../marching_cubes_multiple_mesh_offsets.cpp | 18 +++++++++--------- .../marching_cubes_seq_vs_parallel.cpp | 2 +- .../marching_cubes_signed_mesh_offset.cpp | 6 +++--- 10 files changed, 26 insertions(+), 25 deletions(-) diff --git a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_Cartesian_grid.cpp b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_Cartesian_grid.cpp index d4e06769e47..00032070ea5 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_Cartesian_grid.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_Cartesian_grid.cpp @@ -58,7 +58,7 @@ int main(int, char**) CGAL::Isosurfacing::dual_contouring(domain, 0.8, points, polygons); // write output indexed surface mesh to file, in OFF format - CGAL::IO::write_OFF("output.off", points, polygons); + CGAL::IO::write_OFF("dual_contouring_Cartesian_grid.off", points, polygons); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_implicit_iwp.cpp b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_implicit_iwp.cpp index e0bc0151e8a..d647bd8fd27 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_implicit_iwp.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_implicit_iwp.cpp @@ -53,7 +53,7 @@ int main(int, char**) CGAL::Isosurfacing::dual_contouring(domain, 0.0, points, polygons); // save output to the OFF format - CGAL::IO::write_OFF("output.off", points, polygons); + CGAL::IO::write_OFF("dual_contouring_implicit_iwp.off", points, polygons); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_mesh_offset.cpp b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_mesh_offset.cpp index 7769064cf97..e3e573f47ed 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_mesh_offset.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_mesh_offset.cpp @@ -30,9 +30,10 @@ using Tree = CGAL::AABB_tree; using Point_range = std::vector; using Polygon_range = std::vector >; -int main(int, char**) +int main(int argc, char* argv[]) { - const std::string input_name = CGAL::data_file_path("meshes/cross.off"); + + const std::string input_name = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cross.off"); const Vector grid_spacing(0.1, 0.1, 0.1); const FT offset_value = 0.2; @@ -79,7 +80,7 @@ int main(int, char**) CGAL::Isosurfacing::dual_contouring(domain, offset_value, points, polygons); // save output indexed mesh to a file, in the OFF format - CGAL::IO::write_OFF("result.off", points, polygons); + CGAL::IO::write_OFF("dual_contouring_mesh_offset.off", points, polygons); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp index f970157303a..88c5ea5416c 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/dual_contouring_octree.cpp @@ -96,7 +96,7 @@ int main(int, char**) CGAL::Isosurfacing::dual_contouring(domain, 0.8, points, polygons); - CGAL::IO::write_OFF("output.off", points, polygons); + CGAL::IO::write_OFF("dual_contouring_octree.off", points, polygons); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_Cartesian_grid_sphere.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_Cartesian_grid_sphere.cpp index f0e3f90c732..c1f0aaf5a0a 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_Cartesian_grid_sphere.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_Cartesian_grid_sphere.cpp @@ -16,7 +16,7 @@ using Polygon_range = std::vector >; int main(int, char**) { - // 3D bounding box [-1, 1]^3 and Cartesian grid + // 3D bounding box [-1, 1]^3 and Cartesian grid const CGAL::Bbox_3 bbox{-1., -1., -1., 1., 1., 1.}; Grid grid { 50, 50, 50, bbox }; @@ -46,7 +46,7 @@ int main(int, char**) CGAL::Isosurfacing::marching_cubes(domain, 0.8, points, triangles); // save output indexed surface mesh to file, in the OFF format - CGAL::IO::write_OFF("output.off", points, triangles); + CGAL::IO::write_OFF("marching_cubes_Cartesian_grid_sphere.off", points, triangles); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp index 95b267f4c96..550ae26524f 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_implicit_sphere.cpp @@ -44,7 +44,7 @@ int main(int, char**) std::cout << "done (" << timer.time() << "s, " << triangles.size() << " triangles)" << std::endl; // save ouput indexed mesh to a file, in the OFF format - CGAL::IO::write_OFF("output.off", points, triangles); + CGAL::IO::write_OFF("marching_cubes_implicit_sphere.off", points, triangles); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp index 7015db3a914..f99bc4c2b1e 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_inrimage.cpp @@ -15,9 +15,9 @@ using Grid = CGAL::Isosurfacing::Cartesian_grid_3; using Point_range = std::vector; using Polygon_range = std::vector >; -int main(int, char**) +int main(int argc, char* argv[]) { - const std::string fname = "../examples/Isosurfacing_3/FullHead.inr";//CGAL::data_file_path("images/skull_2.9.inr"); + const std::string fname = (argc > 1) ? argv[1] : CGAL::data_file_path("images/skull_2.9.inr"); // load volumetric image from a file CGAL::Image_3 image; @@ -46,7 +46,7 @@ int main(int, char**) CGAL::Isosurfacing::marching_cubes(domain, 1120 /*isovalue*/, points, polygons); // save output indexed mesh to a file, in the OFF format - CGAL::IO::write_OFF("result.off", points, polygons); + CGAL::IO::write_OFF("marching_cubes_inrimage.off", points, polygons); return EXIT_SUCCESS; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_multiple_mesh_offsets.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_multiple_mesh_offsets.cpp index 3465996a741..28e56e8763c 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_multiple_mesh_offsets.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_multiple_mesh_offsets.cpp @@ -41,9 +41,9 @@ inline Kernel::FT distance_to_mesh(const Tree& tree, } // Usage : marching_cubes_multiple_mesh_offsets input.off -int main(int argc, char **argv) +int main(int argc, char *argv[]) { - const std::string input_name(argv[1]); + const std::string input_name = (argc > 1) ? argv[1] : CGAL::data_file_path("meshes/cross.off"); std::cout << "Input file: " << input_name << std::endl; @@ -93,26 +93,26 @@ int main(int argc, char **argv) // create domain from the grid auto domain = CGAL::Isosurfacing::create_explicit_Cartesian_grid_domain(grid); - // run Marching cubes with a range of offsets, + // run Marching cubes with a range of offsets, // and save all output meshes to files "output-index.off" int index = 0; for(FT offset = 0.0; offset < 0.3; offset += 0.01, index++) { - // containers for the triangle soup output - Point_range points; - Polygon_range triangles; + // containers for the triangle soup output + Point_range points; + Polygon_range triangles; - // execute marching cubes with an isovalue equating offset + // execute marching cubes with an isovalue equating offset std::cout << "Marching cubes with offset " << offset << "..."; CGAL::Isosurfacing::marching_cubes(domain, offset, points, triangles); std::cout << "done" << std::endl; - // save the output + // save the output std::string filename("output-"); filename.append(std::to_string(index)); filename.append(std::string(".off")); std::cout << "Save to file " << filename << "..."; - CGAL::IO::write_polygon_soup(filename, points, triangles); + CGAL::IO::write_polygon_soup(filename, points, triangles); std::cout << "done" << std::endl; } diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp index 4b72dd0e45d..4c4cf978757 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_seq_vs_parallel.cpp @@ -43,7 +43,7 @@ int main(int, char**) CGAL::Isosurfacing::marching_cubes(domain, isovalue, points, triangles); timer.stop(); std::cout << "done (" << timer.time() << "s, " << triangles.size() << " triangles)" << std::endl; - CGAL::IO::write_OFF("output-seq.off", points, triangles); + CGAL::IO::write_OFF("output-sequential.off", points, triangles); // clear points and triangles points.clear(); diff --git a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_signed_mesh_offset.cpp b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_signed_mesh_offset.cpp index 492dbf4bb27..4ca41a9bbe8 100644 --- a/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_signed_mesh_offset.cpp +++ b/Isosurfacing_3/examples/Isosurfacing_3/marching_cubes_signed_mesh_offset.cpp @@ -40,9 +40,9 @@ inline Kernel::FT distance_to_mesh(const Tree& tree, return sqrt((p - x).squared_length()); } -int main(int, char**) +int main(int argc, char* argv[]) { - const std::string input_name = CGAL::data_file_path("meshes/cross.off"); + const std::string input_name = (argc > 1) ? argv[1] :CGAL::data_file_path("meshes/cross.off"); const int n_voxels = 20; const FT offset_value = 0.2; @@ -99,7 +99,7 @@ int main(int, char**) CGAL::Isosurfacing::marching_cubes(domain, offset_value, points, polygons); // save the output - CGAL::IO::write_polygon_soup("output.off", points, polygons); + CGAL::IO::write_polygon_soup("marching_cubes_signed_mesh_offset.off", points, polygons); return EXIT_SUCCESS; }