Browse Source

Fixed remaining extras/geometries, GeometryUtils and few examples.

alteredq 14 years ago
parent
commit
548289b3a4

File diff suppressed because it is too large
+ 16 - 16
build/Three.js


+ 85 - 2
examples/webgl_geometry_minecraft.html

@@ -39,9 +39,92 @@
 
 
 		<div id="container"><br /><br /><br /><br /><br />Generating world...</div>
 		<div id="container"><br /><br /><br /><br /><br />Generating world...</div>
 		<div id="info"><a href="http://github.com/mrdoob/three.js" target="_blank">three.js</a> - <a href="http://www.minecraft.net/" target="_blank">minecraft</a> demo. featuring <a href="http://painterlypack.net/" target="_blank">painterly pack</a><br />(left click: forward, right click: backward)</div>
 		<div id="info"><a href="http://github.com/mrdoob/three.js" target="_blank">three.js</a> - <a href="http://www.minecraft.net/" target="_blank">minecraft</a> demo. featuring <a href="http://painterlypack.net/" target="_blank">painterly pack</a><br />(left click: forward, right click: backward)</div>
-
+<!--
 		<script type="text/javascript" src="../build/Three.js"></script>
 		<script type="text/javascript" src="../build/Three.js"></script>
-
+-->
+		<script type="text/javascript" src="../src/Three.js"></script>
+		<script type="text/javascript" src="../src/core/Color.js"></script>
+		<script type="text/javascript" src="../src/core/Vector2.js"></script>
+		<script type="text/javascript" src="../src/core/Vector3.js"></script>
+		<script type="text/javascript" src="../src/core/Vector4.js"></script>
+		<script type="text/javascript" src="../src/core/Ray.js"></script>
+		<script type="text/javascript" src="../src/core/Rectangle.js"></script>
+		<script type="text/javascript" src="../src/core/Matrix3.js"></script>
+		<script type="text/javascript" src="../src/core/Matrix4.js"></script>
+		<script type="text/javascript" src="../src/core/Object3D.js"></script>
+		<script type="text/javascript" src="../src/core/Quaternion.js"></script>
+		<script type="text/javascript" src="../src/core/Vertex.js"></script>
+		<script type="text/javascript" src="../src/core/Face3.js"></script>
+		<script type="text/javascript" src="../src/core/Face4.js"></script>
+		<script type="text/javascript" src="../src/core/UV.js"></script>
+		<script type="text/javascript" src="../src/core/Geometry.js"></script>
+		<script type="text/javascript" src="../src/core/Spline.js"></script>
+		<script type="text/javascript" src="../src/animation/AnimationHandler.js"></script>
+		<script type="text/javascript" src="../src/animation/Animation.js"></script>
+		<script type="text/javascript" src="../src/cameras/Camera.js"></script>
+		<script type="text/javascript" src="../src/lights/Light.js"></script>
+		<script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
+		<script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
+		<script type="text/javascript" src="../src/lights/PointLight.js"></script>
+		<script type="text/javascript" src="../src/materials/Material.js"></script>
+		<script type="text/javascript" src="../src/materials/Mappings.js"></script>
+		<script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleCanvasMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
+		<script type="text/javascript" src="../src/materials/Texture.js"></script>
+		<script type="text/javascript" src="../src/materials/RenderTarget.js"></script>
+		<script type="text/javascript" src="../src/materials/Uniforms.js"></script>
+		<script type="text/javascript" src="../src/objects/Particle.js"></script>
+		<script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
+		<script type="text/javascript" src="../src/objects/Line.js"></script>
+		<script type="text/javascript" src="../src/objects/Mesh.js"></script>
+		<script type="text/javascript" src="../src/objects/Bone.js"></script>
+		<script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
+		<script type="text/javascript" src="../src/objects/Ribbon.js"></script>
+		<script type="text/javascript" src="../src/objects/Sound.js"></script>
+		<script type="text/javascript" src="../src/objects/LOD.js"></script>
+		<script type="text/javascript" src="../src/scenes/Scene.js"></script>
+		<script type="text/javascript" src="../src/scenes/Fog.js"></script>
+		<script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
+		<script type="text/javascript" src="../src/renderers/Projector.js"></script>
+		<script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/WebGLShaders.js"></script>
+		<script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/SoundRenderer.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableVertex.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
+		<script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
+		<script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
+		<script type="text/javascript" src="../src/extras/cameras/QuakeCamera.js"></script>
+		<script type="text/javascript" src="../src/extras/cameras/PathCamera.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Cube.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Cylinder.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Icosahedron.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Lathe.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Plane.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Sphere.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/Torus.js"></script>
+		<script type="text/javascript" src="../src/extras/geometries/TorusKnot.js"></script>
+		<script type="text/javascript" src="../src/extras/io/Loader.js"></script>
+		<script type="text/javascript" src="../src/extras/io/JSONLoader.js"></script>
+		<script type="text/javascript" src="../src/extras/io/BinaryLoader.js"></script>
+		<script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
+		
 		<script type="text/javascript" src="js/ImprovedNoise.js"></script>
 		<script type="text/javascript" src="js/ImprovedNoise.js"></script>
 
 
 		<script type="text/javascript" src="js/Detector.js"></script>
 		<script type="text/javascript" src="js/Detector.js"></script>

+ 3 - 3
examples/webgl_geometry_minecraft_ao.html

@@ -291,7 +291,7 @@
 
 
 				function setUVTile( face, s, t ) {
 				function setUVTile( face, s, t ) {
 
 
-					var j, uv = cube.uvs[ face ];
+					var j, uv = cube.faceVertexUvs[ 0 ][ face ];
 					for ( j = 0; j < uv.length; j++ ) {
 					for ( j = 0; j < uv.length; j++ ) {
 
 
 						uv[ j ].u += s * (unit+2*padding);
 						uv[ j ].u += s * (unit+2*padding);
@@ -372,9 +372,9 @@
 
 
 						// set UV tiles
 						// set UV tiles
 
 
-						for ( i = 0; i < cube.uvs.length; i++ ) {
+						for ( i = 0; i < cube.faceVertexUvs[ 0 ].length; i++ ) {
 
 
-							uv = cube.uvs[ i ];
+							uv = cube.faceVertexUvs[ 0 ][ i ];
 
 
 							for ( j = 0; j < uv.length; j++ ) {
 							for ( j = 0; j < uv.length; j++ ) {
 
 

+ 3 - 86
examples/webgl_objconvert_test.html

@@ -42,91 +42,8 @@
 
 
 		<pre id="log"></pre>
 		<pre id="log"></pre>
 
 
-<!--
 		<script type="text/javascript" src="../build/Three.js"></script>
 		<script type="text/javascript" src="../build/Three.js"></script>
--->
-		<script type="text/javascript" src="../src/Three.js"></script>
-		<script type="text/javascript" src="../src/core/Color.js"></script>
-		<script type="text/javascript" src="../src/core/Vector2.js"></script>
-		<script type="text/javascript" src="../src/core/Vector3.js"></script>
-		<script type="text/javascript" src="../src/core/Vector4.js"></script>
-		<script type="text/javascript" src="../src/core/Ray.js"></script>
-		<script type="text/javascript" src="../src/core/Rectangle.js"></script>
-		<script type="text/javascript" src="../src/core/Matrix3.js"></script>
-		<script type="text/javascript" src="../src/core/Matrix4.js"></script>
-		<script type="text/javascript" src="../src/core/Object3D.js"></script>
-		<script type="text/javascript" src="../src/core/Quaternion.js"></script>
-		<script type="text/javascript" src="../src/core/Vertex.js"></script>
-		<script type="text/javascript" src="../src/core/Face3.js"></script>
-		<script type="text/javascript" src="../src/core/Face4.js"></script>
-		<script type="text/javascript" src="../src/core/UV.js"></script>
-		<script type="text/javascript" src="../src/core/Geometry.js"></script>
-		<script type="text/javascript" src="../src/core/Spline.js"></script>
-		<script type="text/javascript" src="../src/animation/AnimationHandler.js"></script>
-		<script type="text/javascript" src="../src/animation/Animation.js"></script>
-		<script type="text/javascript" src="../src/cameras/Camera.js"></script>
-		<script type="text/javascript" src="../src/lights/Light.js"></script>
-		<script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
-		<script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
-		<script type="text/javascript" src="../src/lights/PointLight.js"></script>
-		<script type="text/javascript" src="../src/materials/Material.js"></script>
-		<script type="text/javascript" src="../src/materials/Mappings.js"></script>
-		<script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/ParticleCircleMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
-		<script type="text/javascript" src="../src/materials/Texture.js"></script>
-		<script type="text/javascript" src="../src/materials/RenderTarget.js"></script>
-		<script type="text/javascript" src="../src/materials/Uniforms.js"></script>
-		<script type="text/javascript" src="../src/objects/Particle.js"></script>
-		<script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
-		<script type="text/javascript" src="../src/objects/Line.js"></script>
-		<script type="text/javascript" src="../src/objects/Mesh.js"></script>
-		<script type="text/javascript" src="../src/objects/Bone.js"></script>
-		<script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
-		<script type="text/javascript" src="../src/objects/Ribbon.js"></script>
-		<script type="text/javascript" src="../src/objects/Sound.js"></script>
-		<script type="text/javascript" src="../src/objects/LOD.js"></script>
-		<script type="text/javascript" src="../src/scenes/Scene.js"></script>
-		<script type="text/javascript" src="../src/scenes/Fog.js"></script>
-		<script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
-		<script type="text/javascript" src="../src/renderers/Projector.js"></script>
-		<script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
-		<script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
-		<script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
-		<script type="text/javascript" src="../src/renderers/WebGLShaders.js"></script>
-		<script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
-		<script type="text/javascript" src="../src/renderers/SoundRenderer.js"></script>
-		<script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
-		<script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
-		<script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
-		<script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
-		<script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
-		<script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
-		<script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
-		<script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
-		<script type="text/javascript" src="../src/extras/cameras/QuakeCamera.js"></script>
-		<script type="text/javascript" src="../src/extras/cameras/PathCamera.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Cube.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Cylinder.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Icosahedron.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Lathe.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Plane.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Sphere.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/Torus.js"></script>
-		<script type="text/javascript" src="../src/extras/geometries/TorusKnot.js"></script>
-		<script type="text/javascript" src="../src/extras/io/Loader.js"></script>
-		<script type="text/javascript" src="../src/extras/io/JSONLoader.js"></script>
-		<script type="text/javascript" src="../src/extras/io/BinaryLoader.js"></script>
-		<script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
-		
+
 		<script type="text/javascript" src="js/Detector.js"></script>
 		<script type="text/javascript" src="js/Detector.js"></script>
 		<script type="text/javascript" src="js/RequestAnimationFrame.js"></script>
 		<script type="text/javascript" src="js/RequestAnimationFrame.js"></script>
 		<script type="text/javascript" src="js/Stats.js"></script>
 		<script type="text/javascript" src="js/Stats.js"></script>
@@ -279,8 +196,8 @@
 					callbackMale   = function( geometry ) { createScene( geometry,  90, 50, FLOOR, 105 ) },
 					callbackMale   = function( geometry ) { createScene( geometry,  90, 50, FLOOR, 105 ) },
 					callbackFemale = function( geometry ) { createScene( geometry, -80, 50, FLOOR, 0 ) };
 					callbackFemale = function( geometry ) { createScene( geometry, -80, 50, FLOOR, 0 ) };
 
 
-				//loader.load( { model: "obj/male02/Male02_slim.js", callback: callbackMale } );
-				//loader.load( { model: "obj/female02/Female02_slim.js", callback: callbackFemale } );
+				loader.load( { model: "obj/male02/Male02_slim.js", callback: callbackMale } );
+				loader.load( { model: "obj/female02/Female02_slim.js", callback: callbackFemale } );
 
 
 				//loader.loadBinary( { model: "obj/male02/Male02_bin.js", callback: callbackMale } );
 				//loader.loadBinary( { model: "obj/male02/Male02_bin.js", callback: callbackMale } );
 				//loader.loadBinary( { model: "obj/female02/Female02_bin.js", callback: callbackFemale } );
 				//loader.loadBinary( { model: "obj/female02/Female02_bin.js", callback: callbackFemale } );

+ 2 - 2
src/core/Geometry.js

@@ -14,8 +14,8 @@ THREE.Geometry = function () {
 
 
 	this.faces = [];
 	this.faces = [];
 
 
-	this.faceUvs = [];
-	this.faceVertexUvs = [];
+	this.faceUvs = [[]];
+	this.faceVertexUvs = [[]];
 
 
 	this.morphTargets = [];
 	this.morphTargets = [];
 
 

+ 3 - 3
src/extras/GeometryUtils.js

@@ -5,14 +5,14 @@ var GeometryUtils = {
 		var isMesh = object2 instanceof THREE.Mesh,
 		var isMesh = object2 instanceof THREE.Mesh,
 		vertexPosition = geometry1.vertices.length,
 		vertexPosition = geometry1.vertices.length,
 		facePosition = geometry1.faces.length,
 		facePosition = geometry1.faces.length,
-		uvPosition = geometry1.uvs.length,
+		uvPosition = geometry1.faceVertexUvs[ 0 ].length,
 		geometry2 = isMesh ? object2.geometry : object2,
 		geometry2 = isMesh ? object2.geometry : object2,
 		vertices1 = geometry1.vertices,
 		vertices1 = geometry1.vertices,
 		vertices2 = geometry2.vertices,
 		vertices2 = geometry2.vertices,
 		faces1 = geometry1.faces,
 		faces1 = geometry1.faces,
 		faces2 = geometry2.faces,
 		faces2 = geometry2.faces,
-		uvs1 = geometry1.uvs,
-		uvs2 = geometry2.uvs;
+		uvs1 = geometry1.faceVertexUvs[ 0 ],
+		uvs2 = geometry2.faceVertexUvs[ 0 ];
 
 
 		isMesh && object2.matrixAutoUpdate && object2.updateMatrix();
 		isMesh && object2.matrixAutoUpdate && object2.updateMatrix();
 
 

+ 1 - 3
src/extras/geometries/Cube.js

@@ -6,7 +6,7 @@
 var Cube = function ( width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, flipped, sides ) {
 var Cube = function ( width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, flipped, sides ) {
 
 
 	THREE.Geometry.call( this );
 	THREE.Geometry.call( this );
-
+	
 	var scope = this,
 	var scope = this,
 	width_half = width / 2,
 	width_half = width / 2,
 	height_half = height / 2,
 	height_half = height / 2,
@@ -106,8 +106,6 @@ var Cube = function ( width, height, depth, segmentsWidth, segmentsHeight, segme
 			}
 			}
 
 
 		}
 		}
-
-		scope.faceVertexUvs[ 0 ] = [];
 		
 		
 		for( iy = 0; iy < gridY; iy++ ) {
 		for( iy = 0; iy < gridY; iy++ ) {
 
 

+ 2 - 2
src/extras/geometries/Lathe.js

@@ -5,7 +5,7 @@
 function Lathe( points, steps, angle ) {
 function Lathe( points, steps, angle ) {
 
 
 	THREE.Geometry.call( this );
 	THREE.Geometry.call( this );
-
+	
 	this.steps = steps || 12;
 	this.steps = steps || 12;
 	this.angle = angle || 2 * Math.PI;
 	this.angle = angle || 2 * Math.PI;
 
 
@@ -47,7 +47,7 @@ function Lathe( points, steps, angle ) {
 		for ( var j = 0; j < oldInds.length - 1; j ++ ) {
 		for ( var j = 0; j < oldInds.length - 1; j ++ ) {
 
 
 			this.faces.push( new THREE.Face4( newInds[ j ], newInds[ j + 1 ], oldInds[ j + 1 ], oldInds[ j ] ) );
 			this.faces.push( new THREE.Face4( newInds[ j ], newInds[ j + 1 ], oldInds[ j + 1 ], oldInds[ j ] ) );
-			this.uvs.push( [
+			this.faceVertexUvs[ 0 ].push( [
 
 
 				new THREE.UV( r / angle, j / points.length ),
 				new THREE.UV( r / angle, j / points.length ),
 				new THREE.UV( r / angle, ( j + 1 ) / points.length ),
 				new THREE.UV( r / angle, ( j + 1 ) / points.length ),

+ 0 - 2
src/extras/geometries/Plane.js

@@ -30,8 +30,6 @@ var Plane = function ( width, height, segmentsWidth, segmentsHeight ) {
 		}
 		}
 
 
 	}
 	}
-
-	this.faceVertexUvs[ 0 ] = [];
 	
 	
 	for( iy = 0; iy < gridY; iy++ ) {
 	for( iy = 0; iy < gridY; iy++ ) {
 
 

+ 0 - 2
src/extras/geometries/Sphere.js

@@ -45,8 +45,6 @@ var Sphere = function ( radius, segmentsWidth, segmentsHeight ) {
 
 
 	var n1, n2, n3, iVerNum = aVtc.length;
 	var n1, n2, n3, iVerNum = aVtc.length;
 
 
-	this.faceVertexUvs[ 0 ] = [];
-
 	for ( j = 0; j < iVerNum; j++ ) {
 	for ( j = 0; j < iVerNum; j++ ) {
 
 
 		var iHorNum = aVtc[ j ].length;
 		var iHorNum = aVtc[ j ].length;

+ 23 - 12
src/extras/geometries/Torus.js

@@ -13,55 +13,66 @@ var Torus = function ( radius, tube, segmentsR, segmentsT ) {
 	this.segmentsT = segmentsT || 6;
 	this.segmentsT = segmentsT || 6;
 
 
 	var temp_uv = [];
 	var temp_uv = [];
+	
+	THREE.Geometry.call( this );
 
 
-	THREE.Geometry.call(this);
+	for ( var j = 0; j <= this.segmentsR; ++j ) {
+
+		for ( var i = 0; i <= this.segmentsT; ++i ) {
 
 
-	for (var j = 0; j <= this.segmentsR; ++j) {
-		for (var i = 0; i <= this.segmentsT; ++i) {
 			var u = i / this.segmentsT * 2 * Math.PI;
 			var u = i / this.segmentsT * 2 * Math.PI;
 			var v = j / this.segmentsR * 2 * Math.PI;
 			var v = j / this.segmentsR * 2 * Math.PI;
 			var x = (this.radius + this.tube*Math.cos(v))*Math.cos(u);
 			var x = (this.radius + this.tube*Math.cos(v))*Math.cos(u);
 			var y = (this.radius + this.tube*Math.cos(v))*Math.sin(u);
 			var y = (this.radius + this.tube*Math.cos(v))*Math.sin(u);
 			var z = this.tube*Math.sin(v);
 			var z = this.tube*Math.sin(v);
 
 
-			vert(x, y, z);
+			vert( x, y, z );
+
+			temp_uv.push( [i/this.segmentsT, 1 - j/this.segmentsR] );
 
 
-			temp_uv.push([i/this.segmentsT, 1 - j/this.segmentsR]);
 		}
 		}
 	}
 	}
 
 
 
 
-	for (var j = 1; j <= this.segmentsR; ++j) {
-		for (var i = 1; i <= this.segmentsT; ++i) {
+	for ( var j = 1; j <= this.segmentsR; ++j ) {
+
+		for ( var i = 1; i <= this.segmentsT; ++i ) {
+
 			var a = (this.segmentsT + 1)*j + i;
 			var a = (this.segmentsT + 1)*j + i;
 			var b = (this.segmentsT + 1)*j + i - 1;
 			var b = (this.segmentsT + 1)*j + i - 1;
 			var c = (this.segmentsT + 1)*(j - 1) + i - 1;
 			var c = (this.segmentsT + 1)*(j - 1) + i - 1;
 			var d = (this.segmentsT + 1)*(j - 1) + i;
 			var d = (this.segmentsT + 1)*(j - 1) + i;
 
 
-			f4(a,b,c,d);
+			f4( a, b, c,d );
 
 
-			this.uvs.push( [new THREE.UV( temp_uv[a][0], temp_uv[a][1] ),
+			this.faceVertexUvs[ 0 ].push( [new THREE.UV( temp_uv[a][0], temp_uv[a][1] ),
 							new THREE.UV( temp_uv[b][0], temp_uv[b][1] ),
 							new THREE.UV( temp_uv[b][0], temp_uv[b][1] ),
 							new THREE.UV( temp_uv[c][0], temp_uv[c][1] ),
 							new THREE.UV( temp_uv[c][0], temp_uv[c][1] ),
 							new THREE.UV( temp_uv[d][0], temp_uv[d][1] )
 							new THREE.UV( temp_uv[d][0], temp_uv[d][1] )
 							] );
 							] );
 		}
 		}
+
 	}
 	}
 
 
 	delete temp_uv;
 	delete temp_uv;
+
 	this.computeCentroids();
 	this.computeCentroids();
 	this.computeFaceNormals();
 	this.computeFaceNormals();
 	this.computeVertexNormals();
 	this.computeVertexNormals();
 
 
 	function vert( x, y, z ) {
 	function vert( x, y, z ) {
+
 		scope.vertices.push( new THREE.Vertex( new THREE.Vector3( x, y, z ) ) );
 		scope.vertices.push( new THREE.Vertex( new THREE.Vector3( x, y, z ) ) );
-	}
+
+	};
 
 
 	function f4( a, b, c, d ) {
 	function f4( a, b, c, d ) {
+
 		scope.faces.push( new THREE.Face4( a, b, c, d ) );
 		scope.faces.push( new THREE.Face4( a, b, c, d ) );
-	}
 
 
-}
+	};
+
+};
 
 
 Torus.prototype = new THREE.Geometry();
 Torus.prototype = new THREE.Geometry();
 Torus.prototype.constructor = Torus;
 Torus.prototype.constructor = Torus;

+ 9 - 6
src/extras/geometries/TorusKnot.js

@@ -7,7 +7,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
 
 
 	var scope = this;
 	var scope = this;
 	THREE.Geometry.call( this );
 	THREE.Geometry.call( this );
-
+	
 	this.radius = radius || 200;
 	this.radius = radius || 200;
 	this.tube = tube || 40;
 	this.tube = tube || 40;
 	this.segmentsR = segmentsR || 64;
 	this.segmentsR = segmentsR || 64;
@@ -26,6 +26,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
 		this.grid[ i ] = new Array( this.segmentsT );
 		this.grid[ i ] = new Array( this.segmentsT );
 
 
 		for ( var j = 0; j < this.segmentsT; ++ j ) {
 		for ( var j = 0; j < this.segmentsT; ++ j ) {
+
 			var u = i / this.segmentsR * 2 * this.p * Math.PI;
 			var u = i / this.segmentsR * 2 * this.p * Math.PI;
 			var v = j / this.segmentsT * 2 * Math.PI;
 			var v = j / this.segmentsT * 2 * Math.PI;
 			var p = getPos( u, v, this.q, this.p, this.radius, this.heightScale );
 			var p = getPos( u, v, this.q, this.p, this.radius, this.heightScale );
@@ -66,10 +67,12 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
 			var uvc = new THREE.UV( i / this.segmentsR, ( j + 1 ) / this.segmentsT );
 			var uvc = new THREE.UV( i / this.segmentsR, ( j + 1 ) / this.segmentsT );
 			var uvd = new THREE.UV( ( i + 1 ) / this.segmentsR, ( j + 1 ) / this.segmentsT );
 			var uvd = new THREE.UV( ( i + 1 ) / this.segmentsR, ( j + 1 ) / this.segmentsT );
 
 
-			f3(a, b, c);
-			this.uvs.push( [ uva,uvb,uvc ] );
-			f3(d, c, b);
-			this.uvs.push( [ uvd,uvc,uvb ] );
+			f3( a, b, c );
+			this.faceVertexUvs[ 0 ].push( [ uva,uvb,uvc ] );
+			
+			f3( d, c, b );
+			this.faceVertexUvs[ 0 ].push( [ uvd,uvc,uvb ] );
+
 		}
 		}
 	}
 	}
 
 
@@ -106,7 +109,7 @@ var TorusKnot = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale
 
 
 	}
 	}
 
 
-}
+};
 
 
 TorusKnot.prototype = new THREE.Geometry();
 TorusKnot.prototype = new THREE.Geometry();
 TorusKnot.prototype.constructor = TorusKnot;
 TorusKnot.prototype.constructor = TorusKnot;

Some files were not shown because too many files changed in this diff