27{
28 TCLAP::CmdLine cmd(
29 "Maps geometric objects to the surface of a given mesh. "
30 "The documentation is available at "
31 "https://docs.opengeosys.org/docs/tools/model-preparation/"
32 "map-geometric-object-to-the-surface-of-a-mesh.\n\n"
33 "OpenGeoSys-6 software, version " +
35 ".\n"
36 "Copyright (c) 2012-2025, OpenGeoSys Community "
37 "(http://www.opengeosys.org)",
39 TCLAP::ValueArg<std::string> mesh_in(
40 "m", "mesh-file", "the name of the file containing the mesh", true, "",
41 "file name");
42 cmd.add(mesh_in);
43 TCLAP::ValueArg<std::string> input_geometry_fname(
44 "i", "input-geometry",
45 "the name of the file containing the input geometry", true, "",
46 "file name");
47 cmd.add(input_geometry_fname);
48 TCLAP::SwitchArg additional_insert_mapping(
49 "a", "additional-insert-mapping",
50 "Advanced mapping algorithm will be applied, i.e. a new geometry will "
51 "be created and possibly new points will be inserted.");
52 cmd.add(additional_insert_mapping);
53 TCLAP::ValueArg<std::string> output_geometry_fname(
54 "o", "output-geometry",
55 "the name of the file containing the input geometry", true, "",
56 "file name");
57 cmd.add(output_geometry_fname);
58 cmd.parse(argc, argv);
59
61
62
64 {
66 if (xml_io.readFile(input_geometry_fname.getValue()))
67 {
68 INFO(
"Read geometry from file '{:s}'.",
69 input_geometry_fname.getValue());
70 }
71 else
72 {
73 return EXIT_FAILURE;
74 }
75 }
76
78
80
81
83 mesh_in.getValue(), true ));
84
85 if (additional_insert_mapping.getValue())
86 {
87 geo_mapper.advancedMapOnMesh(*mesh);
88 }
89 else
90 {
91 geo_mapper.mapOnMesh(mesh.get());
92 }
93
94 {
96 xml_io.export_name = geo_name;
98 output_geometry_fname.getValue());
99 }
100 return EXIT_SUCCESS;
101}
void INFO(fmt::format_string< Args... > fmt, Args &&... args)
Container class for geometric objects.
std::vector< std::string > getGeometryNames() const
Returns the names of all geometry vectors.
int writeStringToFile(std::string_view content, std::filesystem::path const &file_path)
GITINFOLIB_EXPORT const std::string ogs_version
MeshLib::Mesh * readMeshFromFile(const std::string &file_name, bool const compute_element_neighbors)