aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeodor Stoenescu <demonu.ro@gmail.com>2016-08-31 09:24:39 +0300
committerTeodor Stoenescu <demonu.ro@gmail.com>2016-08-31 09:24:39 +0300
commitd0cf19e03559eb5cd60035d54d4ca7b5991344b8 (patch)
tree48a007af8d1c8418f95c1692c81607d3212f04aa
parent6e20037f7d72931f52a0bd03abbb45e2e7abf2e8 (diff)
downloadraylib-d0cf19e03559eb5cd60035d54d4ca7b5991344b8.tar.gz
raylib-d0cf19e03559eb5cd60035d54d4ca7b5991344b8.zip
Greater LoadOBJ() flexibility
LoadOBJ can now load objects with having no texture coordinates or objects having texture coordinates specified as tuples.
-rw-r--r--src/models.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/models.c b/src/models.c
index 42798483..92b9850e 100644
--- a/src/models.c
+++ b/src/models.c
@@ -1898,9 +1898,7 @@ static Mesh LoadOBJ(const char *fileName)
if (dataType == 't') // Read texCoord
{
- float useless = 0;
-
- fscanf(objFile, "%f %f %f", &midTexCoords[countTexCoords].x, &midTexCoords[countTexCoords].y, &useless);
+ fscanf(objFile, "%f %f%*[^\n]s\n", &midTexCoords[countTexCoords].x, &midTexCoords[countTexCoords].y);
countTexCoords++;
fscanf(objFile, "%c", &dataType);
@@ -1959,6 +1957,7 @@ static Mesh LoadOBJ(const char *fileName)
if ((numNormals == 0) && (numTexCoords == 0)) fscanf(objFile, "%i %i %i", &vNum[0], &vNum[1], &vNum[2]);
else if (numNormals == 0) fscanf(objFile, "%i/%i %i/%i %i/%i", &vNum[0], &vtNum[0], &vNum[1], &vtNum[1], &vNum[2], &vtNum[2]);
+ else if (numTexCoords == 0) fscanf(objFile, "%i//%i %i//%i %i//%i", &vNum[0], &vnNum[0], &vNum[1], &vnNum[1], &vNum[2], &vnNum[2]);
else fscanf(objFile, "%i/%i/%i %i/%i/%i %i/%i/%i", &vNum[0], &vtNum[0], &vnNum[0], &vNum[1], &vtNum[1], &vnNum[1], &vNum[2], &vtNum[2], &vnNum[2]);
mesh.vertices[vCounter] = midVertices[vNum[0]-1].x;