diff --git a/SMDS_3/doc/SMDS_3/examples.txt b/SMDS_3/doc/SMDS_3/examples.txt index fe33a6e5c64..df44fa577ec 100644 --- a/SMDS_3/doc/SMDS_3/examples.txt +++ b/SMDS_3/doc/SMDS_3/examples.txt @@ -1,4 +1,5 @@ /*! \example SMDS_3/c3t3_example.cpp +\example SMDS_3/c3t3_complete_example.cpp \example SMDS_3/tetrahedron_soup_to_c3t3_example.cpp */ diff --git a/SMDS_3/examples/SMDS_3/CMakeLists.txt b/SMDS_3/examples/SMDS_3/CMakeLists.txt index 77d7ba6b6a8..d3485b91965 100644 --- a/SMDS_3/examples/SMDS_3/CMakeLists.txt +++ b/SMDS_3/examples/SMDS_3/CMakeLists.txt @@ -9,4 +9,5 @@ project(SMDS_3_Examples) find_package(CGAL REQUIRED) create_single_source_cgal_program("c3t3_example.cpp") +create_single_source_cgal_program("c3t3_complete_example.cpp") create_single_source_cgal_program("tetrahedron_soup_to_c3t3_example.cpp") diff --git a/SMDS_3/examples/SMDS_3/c3t3_complete_example.cpp b/SMDS_3/examples/SMDS_3/c3t3_complete_example.cpp new file mode 100644 index 00000000000..5ebb5cc3e35 --- /dev/null +++ b/SMDS_3/examples/SMDS_3/c3t3_complete_example.cpp @@ -0,0 +1,67 @@ +#include + +#include +#include +#include +#include +#include + +#include + +#include + +#include +#include + + +using K = CGAL::Exact_predicates_inexact_constructions_kernel; + +using Subdomain_index = int; +using Surface_patch_index = unsigned char; +using Curve_index = char; +using Corner_index = short; + +using Cb = CGAL::Simplicial_mesh_cell_base_3; +using Vb = CGAL::Simplicial_mesh_vertex_base_3; + +using Tds = CGAL::Triangulation_data_structure_3; +using Triangulation = CGAL::Triangulation_3; + +using C3t3 = CGAL::Mesh_complex_3_in_triangulation_3; + + +int main(int argc, char* argv[]) +{ + std::cout.precision(17); + std::cerr.precision(17); + + std::string filename = (argc > 1) ? std::string(argv[1]) + : CGAL::data_file_path("meshes/elephant.mesh"); + + Triangulation tr; + + std::ifstream is(filename, std::ios_base::in); + if(!CGAL::IO::read_MEDIT(is, tr)) + { + std::cerr << "Failed to read" << std::endl; + return EXIT_FAILURE; + } + + // [call a remeshing algorithm] + + std::ofstream os("after_remeshing.mesh"); + CGAL::IO::write_MEDIT(os, tr, CGAL::parameters::all_vertices(true)); + os.close(); + + Triangulation tr2; + std::ifstream is2("after_remeshing.mesh"); + if(!CGAL::IO::read_MEDIT(is2, tr2)) + { + std::cerr << "Failed to read (#2)" << std::endl; + return EXIT_FAILURE; + } + + std::cout << "Done" << std::endl; + return EXIT_SUCCESS; +} diff --git a/SMDS_3/examples/SMDS_3/c3t3_example.cpp b/SMDS_3/examples/SMDS_3/c3t3_example.cpp index 5ebb5cc3e35..6a881fe5301 100644 --- a/SMDS_3/examples/SMDS_3/c3t3_example.cpp +++ b/SMDS_3/examples/SMDS_3/c3t3_example.cpp @@ -1,36 +1,16 @@ #include -#include -#include -#include -#include +#include #include -#include - -#include - #include #include - using K = CGAL::Exact_predicates_inexact_constructions_kernel; -using Subdomain_index = int; -using Surface_patch_index = unsigned char; -using Curve_index = char; -using Corner_index = short; - -using Cb = CGAL::Simplicial_mesh_cell_base_3; -using Vb = CGAL::Simplicial_mesh_vertex_base_3; - -using Tds = CGAL::Triangulation_data_structure_3; -using Triangulation = CGAL::Triangulation_3; - +using Triangulation = CGAL::Simplicial_mesh_triangulation_3; using C3t3 = CGAL::Mesh_complex_3_in_triangulation_3; - int main(int argc, char* argv[]) { std::cout.precision(17); @@ -48,20 +28,12 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } - // [call a remeshing algorithm] + C3t3 c3t3; + c3t3.triangulation() = tr; - std::ofstream os("after_remeshing.mesh"); + std::ofstream os("out.mesh"); CGAL::IO::write_MEDIT(os, tr, CGAL::parameters::all_vertices(true)); os.close(); - Triangulation tr2; - std::ifstream is2("after_remeshing.mesh"); - if(!CGAL::IO::read_MEDIT(is2, tr2)) - { - std::cerr << "Failed to read (#2)" << std::endl; - return EXIT_FAILURE; - } - - std::cout << "Done" << std::endl; return EXIT_SUCCESS; } diff --git a/SMDS_3/include/CGAL/Simplicial_mesh_triangulation_3.h b/SMDS_3/include/CGAL/Simplicial_mesh_triangulation_3.h new file mode 100644 index 00000000000..918d70cb37f --- /dev/null +++ b/SMDS_3/include/CGAL/Simplicial_mesh_triangulation_3.h @@ -0,0 +1,51 @@ +// Copyright (c) 2006-2007 INRIA Sophia-Antipolis (France). +// Copyright (c) 2008,2011 GeometryFactory Sarl (France) +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Laurent Rineau, Stephane Tayeb, Andreas Fabri, Jane Tournois + +#ifndef CGAL_SIMPLICIAL_MESH_TRIANGULATION_3_H +#define CGAL_SIMPLICIAL_MESH_TRIANGULATION_3_H + +#include + +#include +#include +#include +#include + +namespace CGAL +{ + /** + *\ingroup PkgSMDS3Classes + * `Simplicial_mesh_triangulation_3` + * @todo + */ + template + using Simplicial_mesh_triangulation_3 = + CGAL::Triangulation_3, + CGAL::Simplicial_mesh_cell_base_3, + CGAL::Sequential_tag + > + >; +}; + +#endif // CGAL_SIMPLICIAL_MESH_TRIANGULATION_3_H + +