Преглед на файлове

Merging with @bhouston.

Mr.doob преди 12 години
родител
ревизия
7b82c2f57d
променени са 1 файла, в които са добавени 29 реда и са изтрити 36 реда
  1. 29 36
      examples/webgl_ribbons.html

+ 29 - 36
examples/webgl_ribbons.html

@@ -122,56 +122,49 @@
 				nribbons = xgrid * ygrid;
 
 				c = 0;
+				for ( i = 0; i < xgrid; i ++ )
+				for ( j = 0; j < ygrid; j ++ ) {
 
-				var rotationMatrix = new THREE.Matrix4();
+					var material = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: true, side: THREE.DoubleSide } );
 
-				for ( i = 0; i < xgrid; i ++ ) {
+					ribbon = new THREE.Ribbon( i % 2 ? geometry : geometry2, material );
+					ribbon.rotation.x = 0;
+					ribbon.rotation.y = Math.PI / 2;
+					ribbon.rotation.z = Math.PI;
 
-					for ( j = 0; j < ygrid; j ++ ) {
+					x = 40 * ( i - xgrid/2 );
+					y = 40 * ( j - ygrid/2 );
+					z = 0;
 
-						var material = new THREE.MeshBasicMaterial( { color: 0xffffff, vertexColors: true, side: THREE.DoubleSide } );
+					ribbon.position.set( x, y, z );
 
-						ribbon = new THREE.Ribbon( i % 2 ? geometry : geometry2, material );
-						ribbon.rotation.x = 0;
-						ribbon.rotation.y = Math.PI / 2;
-						ribbon.rotation.z = Math.PI;
+					ribbon.matrixAutoUpdate = false;
 
-						x = 40 * ( i - xgrid/2 );
-						y = 40 * ( j - ygrid/2 );
-						z = 0;
+					// manually create local matrix
 
-						ribbon.position.set( x, y, z );
+					ribbon.matrix.setPosition( ribbon.position );
+					ribbon.matrixRotationWorld.makeRotationFromEuler( ribbon.rotation );
 
-						ribbon.matrixAutoUpdate = false;
+					ribbon.matrix.elements[ 0 ] = ribbon.matrixRotationWorld.elements[ 0 ];
+					ribbon.matrix.elements[ 4 ] = ribbon.matrixRotationWorld.elements[ 4 ];
+					ribbon.matrix.elements[ 8 ] = ribbon.matrixRotationWorld.elements[ 8 ];
 
-						// manually create local matrix
+					ribbon.matrix.elements[ 1 ] = ribbon.matrixRotationWorld.elements[ 1 ];
+					ribbon.matrix.elements[ 5 ] = ribbon.matrixRotationWorld.elements[ 5 ];
+					ribbon.matrix.elements[ 9 ] = ribbon.matrixRotationWorld.elements[ 9 ];
 
-						ribbon.matrix.setPosition( ribbon.position );
+					ribbon.matrix.elements[ 2 ] = ribbon.matrixRotationWorld.elements[ 2 ];
+					ribbon.matrix.elements[ 6 ] = ribbon.matrixRotationWorld.elements[ 6 ];
+					ribbon.matrix.elements[ 10 ] = ribbon.matrixRotationWorld.elements[ 10 ];
 
-						rotationMatrix.setRotationFromEuler( ribbon.rotation );
+					ribbon.matrix.multiply( tmpRot );
 
-						ribbon.matrix.elements[ 0 ] = rotationMatrix.elements[ 0 ];
-						ribbon.matrix.elements[ 4 ] = rotationMatrix.elements[ 4 ];
-						ribbon.matrix.elements[ 8 ] = rotationMatrix.elements[ 8 ];
+					ribbon.matrix.scale( ribbon.scale );
 
-						ribbon.matrix.elements[ 1 ] = rotationMatrix.elements[ 1 ];
-						ribbon.matrix.elements[ 5 ] = rotationMatrix.elements[ 5 ];
-						ribbon.matrix.elements[ 9 ] = rotationMatrix.elements[ 9 ];
+					ribbons.push( ribbon );
+					scene.add( ribbon );
 
-						ribbon.matrix.elements[ 2 ] = rotationMatrix.elements[ 2 ];
-						ribbon.matrix.elements[ 6 ] = rotationMatrix.elements[ 6 ];
-						ribbon.matrix.elements[ 10 ] = rotationMatrix.elements[ 10 ];
-
-						ribbon.matrix.multiply( tmpRot );
-
-						ribbon.matrix.scale( ribbon.scale );
-
-						ribbons.push( ribbon );
-						scene.add( ribbon );
-
-						c ++;
-
-					}
+					c ++;
 
 				}