Browse Source

Merge pull request #5685 from xswordsx/dev

Geometry.clone() clones all UV layers
Mr.doob 10 năm trước cách đây
mục cha
commit
4efd6bd980
1 tập tin đã thay đổi với 15 bổ sung7 xóa
  1. 15 7
      src/core/Geometry.js

+ 15 - 7
src/core/Geometry.js

@@ -996,19 +996,27 @@ THREE.Geometry.prototype = {
 
 
 		}
 		}
 
 
-		var uvs = this.faceVertexUvs[ 0 ];
+		for ( var uvLayer = 0, uvl = this.faceVertexUvs.length; uvLayer < uvl; uvLayer ++ ) {
 
 
-		for ( var i = 0, il = uvs.length; i < il; i ++ ) {
+			var uvs = this.faceVertexUvs[ uvLayer ];
 
 
-			var uv = uvs[ i ], uvCopy = [];
+			if ( ! geometry.faceVertexUvs[ uvLayer ] ) {
+				geometry.faceVertexUvs[ uvLayer ] = [];
+			}
 
 
-			for ( var j = 0, jl = uv.length; j < jl; j ++ ) {
+			for ( var i = 0, il = uvs.length; i < il; i ++ ) {
 
 
-				uvCopy.push( new THREE.Vector2( uv[ j ].x, uv[ j ].y ) );
+				var uv = uvs[ i ], uvCopy = [];
 
 
-			}
+				for ( var j = 0, jl = uv.length; j < jl; j ++ ) {
+
+					uvCopy.push( new THREE.Vector2( uv[ j ].x, uv[ j ].y ) );
 
 
-			geometry.faceVertexUvs[ 0 ].push( uvCopy );
+				}
+
+				geometry.faceVertexUvs[ uvLayer ].push( uvCopy );
+
+			}
 
 
 		}
 		}