浏览代码

STLLoader: Fix computation of groups data.

Mugen87 5 年之前
父节点
当前提交
97660b9820
共有 2 个文件被更改,包括 8 次插入24 次删除
  1. 4 12
      examples/js/loaders/STLLoader.js
  2. 4 12
      examples/jsm/loaders/STLLoader.js

+ 4 - 12
examples/js/loaders/STLLoader.js

@@ -273,7 +273,6 @@ THREE.STLLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype
 
 
 			var result;
 			var result;
 
 
-			var groupVertexes = [];
 			var groupCount = 0;
 			var groupCount = 0;
 			var startVertex = 0;
 			var startVertex = 0;
 			var endVertex = 0;
 			var endVertex = 0;
@@ -329,7 +328,10 @@ THREE.STLLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype
 
 
 				}
 				}
 
 
-				groupVertexes.push( { startVertex: startVertex, endVertex: endVertex } );
+				var start = startVertex;
+				var count = endVertex - startVertex;
+
+				geometry.addGroup( start, count, groupCount );
 				groupCount ++;
 				groupCount ++;
 
 
 			}
 			}
@@ -337,16 +339,6 @@ THREE.STLLoader.prototype = Object.assign( Object.create( THREE.Loader.prototype
 			geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
 			geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
 			geometry.setAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
 			geometry.setAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
 
 
-			if ( groupCount > 0 ) {
-
-				for ( var i = 0; i < groupVertexes.length; i ++ ) {
-
-					geometry.addGroup( groupVertexes[ i ].startVertex, groupVertexes[ i ].endVertex, i );
-
-				}
-
-			}
-
 			return geometry;
 			return geometry;
 
 
 		}
 		}

+ 4 - 12
examples/jsm/loaders/STLLoader.js

@@ -283,7 +283,6 @@ STLLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 
 			var result;
 			var result;
 
 
-			var groupVertexes = [];
 			var groupCount = 0;
 			var groupCount = 0;
 			var startVertex = 0;
 			var startVertex = 0;
 			var endVertex = 0;
 			var endVertex = 0;
@@ -339,7 +338,10 @@ STLLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 
 
 				}
 				}
 
 
-				groupVertexes.push( { startVertex: startVertex, endVertex: endVertex } );
+				var start = startVertex;
+				var count = endVertex - startVertex;
+
+				geometry.addGroup( start, count, groupCount );
 				groupCount ++;
 				groupCount ++;
 
 
 			}
 			}
@@ -347,16 +349,6 @@ STLLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
 			geometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );
 			geometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );
 			geometry.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );
 			geometry.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );
 
 
-			if ( groupCount > 0 ) {
-
-				for ( var i = 0; i < groupVertexes.length; i ++ ) {
-
-					geometry.addGroup( groupVertexes[ i ].startVertex, groupVertexes[ i ].endVertex, i );
-
-				}
-
-			}
-
 			return geometry;
 			return geometry;
 
 
 		}
 		}