Browse Source

feat: obj writing

feat-obj-export
mckay 2 weeks ago
parent
commit
c7673a295a
  1. 31
      application/main.cpp

31
application/main.cpp

@ -1,8 +1,38 @@
#include <iostream>
#include <array>
#include <solve.h>
#include <fstream>
#include <string>
#include <filesystem>
void write_obj(const polymesh_t& mesh, std::string filename = "output.obj") {
std::ofstream obj(filename);
if (!obj) return;
// write in vertices
for (uint32_t i = 0; i < mesh.num_vertices; ++i) {
const auto& v = mesh.vertices[i];
obj << "v " << v.x << " " << v.y << " " << v.z << "\n";
}
// write in faces
uint32_t idx = 0;
for (uint32_t i = 0; i < mesh.num_faces; ++i) {
obj << "f";
for (uint32_t j = 0; j < mesh.vertex_counts[i]; ++j) {
// OBJ is 1-indexed
obj << " " << (mesh.faces[idx++] + 1);
}
obj << "\n";
}
std::cout << "OBJ file written to: " << std::filesystem::absolute(filename) << std::endl;
}
int main()
{
auto primitive_data_center = create_primitive_data_center();
@ -29,6 +59,7 @@ int main()
auto solver = create_solver(baked_blobtree, settings);
auto result = generate_polymesh(solver);
write_obj(result.mesh, "output.obj");
print_statistics(solver);
destroy_solver(solver);

Loading…
Cancel
Save