diff --git a/src/renderers/webgl/WebGLObjects.js b/src/renderers/webgl/WebGLObjects.js index 7883ecede69bf640c3b8931e728315c499db36dd..f86e10e2aa65f4a29a1ed68250bd514f65df38f3 100644 --- a/src/renderers/webgl/WebGLObjects.js +++ b/src/renderers/webgl/WebGLObjects.js @@ -191,13 +191,29 @@ THREE.WebGLObjects = function ( gl, properties, info ) { function checkEdge( edges, a, b ) { - var hash = a < b ? a + '_' + b : b + '_' + a; + if ( a > b ){ - if ( edges.hasOwnProperty( hash ) ) return false; + var tmp = a; + a = b; + b = tmp; - edges[ hash ] = 1; + } + + var list = edges[ a ]; + + if( list === undefined ){ + + edges[ a ] = [ b ]; + return true; + + }else if( list.indexOf( b ) === -1 ){ + + list.push( b ); + return true; + + } - return true; + return false; }