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