| 330 | } |
| 331 | |
| 332 | bool polymer::export_obj_multi_model(const std::vector<std::string> & names, const std::string & filename, std::vector<runtime_mesh *> & meshes) |
| 333 | { |
| 334 | assert(names.size() == meshes.size()); |
| 335 | |
| 336 | std::ofstream file(filename); |
| 337 | |
| 338 | if (!file.is_open()) return false; |
| 339 | |
| 340 | file.precision(3); |
| 341 | file << "# OBJ file created by Polymer\n"; |
| 342 | |
| 343 | for (int i = 0; i < meshes.size(); ++i) |
| 344 | { |
| 345 | auto & mesh = meshes[i]; |
| 346 | auto & name = names[i]; |
| 347 | file << "o " << name << "\n"; |
| 348 | export_obj_data(file, *mesh); |
| 349 | } |
| 350 | |
| 351 | file.close(); |
| 352 | |
| 353 | return true; |
| 354 | } |
| 355 | |
| 356 | ///////////////////////////////////// |
| 357 | // Gaussian Splat PLY Loading // |
nothing calls this directly
no test coverage detected