diff --git a/lib/loadObj.js b/lib/loadObj.js index 963a6d8..a26ba07 100644 --- a/lib/loadObj.js +++ b/lib/loadObj.js @@ -107,6 +107,11 @@ function loadObj(objPath, options) { var vertexIndices = []; + function clearVertexCache() { + vertexCache = {}; + vertexCacheCount = 0; + } + function getName(name) { return (name === '' ? undefined : name); } @@ -130,8 +135,7 @@ function loadObj(objPath, options) { mesh.primitives.push(primitive); // Clear the vertex cache for each new primitive - vertexCache = {}; - vertexCacheCount = 0; + clearVertexCache(); vertexCount = 0; } @@ -143,6 +147,7 @@ function loadObj(objPath, options) { for (var i = 0; i < primitivesLength; ++i) { if (primitives[i].material === material) { primitive = primitives[i]; + clearVertexCache(); vertexCount = primitive.positions.length / 3; return; } @@ -205,8 +210,7 @@ function loadObj(objPath, options) { // may be some duplicate vertices. vertexCacheCount++; if (vertexCacheCount > vertexCacheLimit) { - vertexCacheCount = 0; - vertexCache = {}; + clearVertexCache(); } } return index;