| 199 | |
| 200 | template<typename DracoMesh> |
| 201 | VectorI extract_faces(std::unique_ptr<DracoMesh>& draco_mesh) { |
| 202 | const auto num_faces = draco_mesh->num_faces(); |
| 203 | VectorI faces(num_faces * 3); |
| 204 | for (size_t i=0; i<num_faces; i++) { |
| 205 | const auto f = draco_mesh->face(draco::FaceIndex(i)); |
| 206 | faces.segment<3>(i*3) << f[0].value(), f[1].value(), f[2].value(); |
| 207 | } |
| 208 | return faces; |
| 209 | } |
| 210 | |
| 211 | template<typename DracoMesh> |
| 212 | void copy_metadata(std::unique_ptr<DracoMesh>& draco_mesh, Mesh::Ptr mesh) { |