Fix typo.
This commit is contained in:
74
examples/voxelize/main.cc
Normal file
74
examples/voxelize/main.cc
Normal file
@@ -0,0 +1,74 @@
|
||||
#define VOXELIZER_IMPLEMENTATION
|
||||
#include "voxelizer.h"
|
||||
|
||||
#define TINYOBJLOADER_IMPLEMENTATION
|
||||
#include "../../tiny_obj_loader.h"
|
||||
|
||||
bool Voxelize(const char* filename, float voxelsizex, float voxelsizey, float voxelsizez, float precision)
|
||||
{
|
||||
tinyobj::attrib_t attrib;
|
||||
std::vector<tinyobj::shape_t> shapes;
|
||||
std::vector<tinyobj::material_t> materials;
|
||||
std::string err;
|
||||
bool ret = tinyobj::LoadObj(&attrib, &shapes, &materials, &err, filename);
|
||||
|
||||
if (!err.empty()) {
|
||||
printf("err: %s\n", err.c_str());
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
printf("failed to load : %s\n", filename);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (shapes.size() == 0) {
|
||||
printf("err: # of shapes are zero.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Only use first shape.
|
||||
{
|
||||
vx_mesh_t* mesh;
|
||||
vx_mesh_t* result;
|
||||
|
||||
mesh = vx_mesh_alloc(attrib.vertices.size(), shapes[0].mesh.indices.size());
|
||||
|
||||
for (size_t f = 0; f < shapes[0].mesh.indices.size(); f++) {
|
||||
mesh->indices[f] = shapes[0].mesh.indices[f].vertex_index;
|
||||
}
|
||||
|
||||
for (size_t v = 0; v < attrib.vertices.size() / 3; v++) {
|
||||
mesh->vertices[v].x = attrib.vertices[3*v+0];
|
||||
mesh->vertices[v].y = attrib.vertices[3*v+1];
|
||||
mesh->vertices[v].z = attrib.vertices[3*v+2];
|
||||
}
|
||||
|
||||
result = vx_voxelize(mesh, voxelsizex, voxelsizey, voxelsizez, precision);
|
||||
|
||||
printf("Number of vertices: %ld\n", result->nvertices);
|
||||
printf("Number of indices: %ld\n", result->nindices);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(
|
||||
int argc,
|
||||
char** argv)
|
||||
{
|
||||
if (argc < 4) {
|
||||
printf("Usage: voxelize input.obj voxelsizex voxelsizey voxelsizez precision\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
const char* filename = argv[1];
|
||||
float voxelsizex = atof(argv[2]);
|
||||
float voxelsizey = atof(argv[3]);
|
||||
float voxelsizez = atof(argv[4]);
|
||||
float prec = atof(argv[5]);
|
||||
bool ret = Voxelize(filename, voxelsizex, voxelsizey, voxelsizez, prec);
|
||||
|
||||
return ret ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user