Ver Fonte

Merge pull request #14869 from Glinkis/patch-3

Bugfix in VRMLLoader
Mr.doob há 6 anos atrás
pai
commit
051985479c
1 ficheiros alterados com 13 adições e 7 exclusões
  1. 13 7
      examples/js/loaders/VRMLLoader.js

+ 13 - 7
examples/js/loaders/VRMLLoader.js

@@ -916,15 +916,21 @@ THREE.VRMLLoader.prototype = {
 
 						if ( data.coordIndex ) {
 
-							function triangulateIndexArray( indexArray ) {
+							function triangulateIndexArray( indexArray, ccw ) {
+
+								if ( ccw === undefined ) {
+
+									// ccw is true by default
+									ccw = true;
+
+								}
 
 								var triangulatedIndexArray = [];
-								var ccw = data.ccw === undefined ? true : data.ccw; // ccw is true by default
 								var skip = 0;
 
 								for ( i = 0, il = indexArray.length; i < il; i ++ ) {
 
-									var indexedFace = data.coordIndex[ i ];
+									var indexedFace = indexArray[ i ];
 	
 									// VRML support multipoint indexed face sets (more then 3 vertices). You must calculate the composing triangles here
 	
@@ -948,10 +954,10 @@ THREE.VRMLLoader.prototype = {
 
 							}
 
-							var positionIndexes = data.coordIndex ? triangulateIndexArray( data.coordIndex ) : [];
-							var normalIndexes = data.normalIndex ? triangulateIndexArray( data.normalIndex ) : positionIndexes;
-							var colorIndexes = data.colorIndex ? triangulateIndexArray( data.colorIndex ) : positionIndexes;
-							var uvIndexes = data.texCoordIndex ? triangulateIndexArray( data.texCoordIndex ) : positionIndexes;
+							var positionIndexes = data.coordIndex ? triangulateIndexArray( data.coordIndex, data.ccw ) : [];
+							var normalIndexes = data.normalIndex ? triangulateIndexArray( data.normalIndex, data.ccw ) : positionIndexes;
+							var colorIndexes = data.colorIndex ? triangulateIndexArray( data.colorIndex, data.ccw ) : positionIndexes;
+							var uvIndexes = data.texCoordIndex ? triangulateIndexArray( data.texCoordIndex, data.ccw ) : positionIndexes;
 
 							var newIndexes = [];
 							var newPositions = [];