| 39 | } |
| 40 | |
| 41 | Mesh::Ptr form_mesh(const MatrixFr& vertices, const MatrixIr& faces) { |
| 42 | const size_t num_vertices = vertices.rows(); |
| 43 | const size_t dim = vertices.cols(); |
| 44 | const size_t num_faces = faces.rows(); |
| 45 | const size_t vertex_per_face = faces.cols(); |
| 46 | |
| 47 | VectorF flattened_vertices = Eigen::Map<const VectorF>( |
| 48 | vertices.data(), num_vertices * dim); |
| 49 | VectorI flattened_faces = Eigen::Map<const VectorI>( |
| 50 | faces.data(), vertex_per_face * num_faces); |
| 51 | VectorI voxels = VectorI::Zero(0); |
| 52 | |
| 53 | MeshFactory factory; |
| 54 | factory.load_data(flattened_vertices, flattened_faces, voxels, |
| 55 | dim, vertex_per_face, 0); |
| 56 | return factory.create(); |
| 57 | } |
| 58 | |
| 59 | void save_mesh(const std::string& file_name, |
| 60 | MatrixFr& vertices, MatrixIr& faces, |