| 78 | } |
| 79 | |
| 80 | GeoMeshPtr GeogramMeshUtils::wire_network_to_geomesh( |
| 81 | const MatrixFr& vertices, const Matrix2Ir& edges) { |
| 82 | const size_t dim = vertices.cols(); |
| 83 | const size_t num_vertices = vertices.rows(); |
| 84 | const size_t num_edges = edges.rows(); |
| 85 | |
| 86 | auto geo_mesh = std::make_shared<GeoMesh>(dim, false); |
| 87 | geo_mesh->vertices.clear(); |
| 88 | geo_mesh->vertices.create_vertices(num_vertices); |
| 89 | geo_mesh->edges.clear(); |
| 90 | geo_mesh->edges.create_edges(num_edges); |
| 91 | |
| 92 | for (size_t i=0; i<num_vertices; i++) { |
| 93 | auto& p = geo_mesh->vertices.point(i); |
| 94 | for (size_t j=0; j<dim; j++) { |
| 95 | p[j] = vertices(i,j); |
| 96 | } |
| 97 | } |
| 98 | |
| 99 | for (size_t i=0; i<num_edges; i++) { |
| 100 | geo_mesh->edges.set_vertex(i, 0, edges(i,0)); |
| 101 | geo_mesh->edges.set_vertex(i, 1, edges(i,1)); |
| 102 | } |
| 103 | |
| 104 | return geo_mesh; |
| 105 | } |
| 106 | |
| 107 | Mesh::Ptr GeogramMeshUtils::geomesh_to_mesh(const GeoMeshPtr geo_mesh) { |
| 108 | constexpr size_t dim = 3; |