From 6820c1ce0b88ca8287a6576b3c58b66b565eeac7 Mon Sep 17 00:00:00 2001 From: Woohyung Choi <201421062@sce212.ajou.ac.kr> Date: Tue, 10 Dec 2019 22:47:00 +0900 Subject: [PATCH] improve stability of loadobj(). --- LearnOpenGL/ResourceLoader.cpp | 39 ++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/LearnOpenGL/ResourceLoader.cpp b/LearnOpenGL/ResourceLoader.cpp index 032467c..9c5fea4 100644 --- a/LearnOpenGL/ResourceLoader.cpp +++ b/LearnOpenGL/ResourceLoader.cpp @@ -167,26 +167,29 @@ bool openObj(const std::string fileName, std::vector<glm::vec3> &vertices, std:: log_warn(infoLog, fileName + " : " + "faceVertexIndices.size() : " + std::to_string(faceVertexIndicies.size())); } - if (faceVertexTexCoordIndicies.size() == 3) + if (faceVertexTexCoordIndicies.size() > 0) { - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[1]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); - } - else if (faceVertexTexCoordIndicies.size() == 4) - { - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[1]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); + if (faceVertexTexCoordIndicies.size() == 3) + { + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[1]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); + } + else if (faceVertexTexCoordIndicies.size() == 4) + { + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[1]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); - vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[3]]); - } - else - { - GLchar infoLog[512] = { 0, }; - log_warn(infoLog, fileName + " : " + "vertexTexCoordIndices.size() : " + std::to_string(faceVertexTexCoordIndicies.size())); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[0]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[2]]); + vertexTexCoord.push_back(vertexTexCoordIndices[faceVertexTexCoordIndicies[3]]); + } + else + { + GLchar infoLog[512] = { 0, }; + log_warn(infoLog, fileName + " : " + "vertexTexCoordIndices.size() : " + std::to_string(faceVertexTexCoordIndicies.size())); + } } if (faceVertexNormalIndicies.size() == 3) -- GitLab