42 class SMESHIOHandler final:
public GeoModelIOHandler< 3 > {
44 void load(
const std::string& filename, GeoModel3D& geomodel )
final 48 throw RINGMeshException(
"I/O",
49 "Geological model loading of a from UCD mesh not yet implemented" );
52 void save(
const GeoModel3D& geomodel,
const std::string& filename )
final 54 std::ofstream out( filename.c_str() );
56 Logger::err(
"I/O",
"Error when opening the file: ",
63 out <<
"# Node list" <<
EOL;
64 out <<
"# node count, 3 dim, no attribute, no boundary marker" 66 out << geomodel.mesh.vertices.nb() <<
" 3 0 0" <<
EOL;
67 out <<
"# node index, node coordinates " <<
EOL;
68 for(
auto p : range( geomodel.mesh.vertices.nb() ) ) {
69 const vec3& V = geomodel.mesh.vertices.vertex( p );
70 out << p <<
" " <<
" " << V.x <<
" " << V.y <<
" " << V.z
75 out <<
"# Part 2 - facet list" <<
EOL;
76 out <<
"# facet count, no boundary marker" <<
EOL;
77 out << nb_polygons( geomodel ) <<
" 0 " <<
EOL;
79 for(
const auto& surface : geomodel.surfaces() ) {
80 for(
auto p : range( surface.nb_mesh_elements() ) ) {
81 out << surface.nb_mesh_element_vertices( p ) <<
" ";
82 for(
auto v : range( surface.nb_mesh_element_vertices( p ) ) ) {
84 << geomodel.mesh.vertices.geomodel_vertex_id(
85 surface.gmme(), ElementLocalVertex( p, v ) ) <<
" ";
92 out << EOL <<
"0" << EOL <<
"0" <<
EOL;
void ringmesh_unused(const T &)