From 9602a3af2f2f0f963db0dfaa9e409a56a4e5bf66 Mon Sep 17 00:00:00 2001 From: bjorn Date: Fri, 25 Nov 2016 03:16:11 -0800 Subject: [PATCH] ModelFace always has 3 indices; --- src/graphics/model.c | 7 +++---- src/model/modelData.c | 11 +---------- src/model/modelData.h | 2 +- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/graphics/model.c b/src/graphics/model.c index 0d433ca9..38b898db 100644 --- a/src/graphics/model.c +++ b/src/graphics/model.c @@ -50,10 +50,9 @@ static void visitNode(ModelData* modelData, ModelNode* node, mat4 transform, vec // Face vertex indices for (int f = 0; f < mesh->faces.length; f++) { ModelFace face = mesh->faces.data[f]; - - for (int v = 0; v < face.indices.length; v++) { - vec_push(indices, face.indices.data[v] + indexOffset); - } + vec_push(indices, face.indices[0] + indexOffset); + vec_push(indices, face.indices[1] + indexOffset); + vec_push(indices, face.indices[2] + indexOffset); } } diff --git a/src/model/modelData.c b/src/model/modelData.c index d2e305d4..d54cfac3 100644 --- a/src/model/modelData.c +++ b/src/model/modelData.c @@ -50,13 +50,9 @@ ModelData* lovrModelDataCreateFromFile(void* data, int size) { } ModelFace face; - vec_init(&face.indices); - - // Indices for (unsigned int i = 0; i < assimpFace.mNumIndices; i++) { - vec_push(&face.indices, assimpFace.mIndices[i]); + face.indices[i] = assimpFace.mIndices[i]; } - vec_push(&mesh->faces, face); } @@ -114,11 +110,6 @@ void lovrModelDataDestroy(const Ref* ref) { for (int i = 0; i < modelData->meshes.length; i++) { ModelMesh* mesh = modelData->meshes.data[i]; - - for (int f = 0; f < mesh->faces.length; f++) { - vec_deinit(&mesh->faces.data[f].indices); - } - vec_deinit(&mesh->faces); vec_deinit(&mesh->vertices); vec_deinit(&mesh->normals); diff --git a/src/model/modelData.h b/src/model/modelData.h index 5178d89b..cc4f8f9d 100644 --- a/src/model/modelData.h +++ b/src/model/modelData.h @@ -19,7 +19,7 @@ typedef struct { typedef vec_t(ModelVertex) vec_model_vertex_t; typedef struct { - vec_uint_t indices; + unsigned int indices[3]; } ModelFace; typedef vec_t(ModelFace) vec_model_face_t;