Browse Source

Merge remote-tracking branch 'zz85/master' into dev

Mr.doob 13 years ago
parent
commit
0e8063daad

+ 44 - 21
src/extras/geometries/ParametricGeometries.js → examples/js/ParametricGeometries.js

@@ -2,6 +2,7 @@
  * @author zz85
  * @author zz85
  * 
  * 
  * Experimenting of primitive geometry creation using Surface Parametric equations
  * Experimenting of primitive geometry creation using Surface Parametric equations
+ *
  */
  */
 
 
 
 
@@ -35,8 +36,6 @@ THREE.ParametricGeometries = {
 			var y = 0;
 			var y = 0;
 			var z = v * height;
 			var z = v * height;
 
 
-			console.log(x, y, z);
-
 			return new THREE.Vector3(x, y, z);
 			return new THREE.Vector3(x, y, z);
 		};
 		};
 	},
 	},
@@ -77,7 +76,14 @@ THREE.ParametricGeometries = {
 
 
 };
 };
 
 
-THREE.TubeGeometry2 = function(path, segments, radius, segmentsRadius, closed, debug) {
+
+/*********************************************
+ *
+ * Parametric Replacement for TubeGeometry
+ *
+ *********************************************/
+
+THREE.ParametricGeometries.TubeGeometry = function(path, segments, radius, segmentsRadius, closed, debug) {
 
 
 	this.path = path;
 	this.path = path;
 	this.segments = segments || 64;
 	this.segments = segments || 64;
@@ -145,12 +151,17 @@ THREE.TubeGeometry2 = function(path, segments, radius, segmentsRadius, closed, d
 
 
 };
 };
 
 
-THREE.TubeGeometry2.prototype = new THREE.Geometry();
-THREE.TubeGeometry2.prototype.constructor = THREE.TubeGeometry2;
+THREE.ParametricGeometries.TubeGeometry.prototype = new THREE.Geometry();
+THREE.ParametricGeometries.TubeGeometry.prototype.constructor = THREE.ParametricGeometries.TubeGeometry;
+
 
 
 
 
-// Replacement for TorusKnotGeometry?
- THREE.TorusKnotGeometry2 = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale ) {
+ /*********************************************
+  *
+  * Parametric Replacement for TorusKnotGeometry
+  *
+  *********************************************/
+THREE.ParametricGeometries.TorusKnotGeometry = function ( radius, tube, segmentsR, segmentsT, p, q, heightScale ) {
 
 
 	var scope = this;
 	var scope = this;
 
 
@@ -187,37 +198,49 @@ THREE.TubeGeometry2.prototype.constructor = THREE.TubeGeometry2;
 	var radiusSegments = segmentsT;
 	var radiusSegments = segmentsT;
 	var extrudePath = new TorusKnotCurve();
 	var extrudePath = new TorusKnotCurve();
 
 
-	THREE.TubeGeometry2.call( this, extrudePath, segments, tube, radiusSegments, true, false );
+	THREE.ParametricGeometries.TubeGeometry.call( this, extrudePath, segments, tube, radiusSegments, true, false );
 
 
 
 
 };
 };
 
 
-THREE.TorusKnotGeometry2.prototype = new THREE.Geometry();
-THREE.TorusKnotGeometry2.prototype.constructor = THREE.TorusKnotGeometry2;
+THREE.ParametricGeometries.TorusKnotGeometry.prototype = new THREE.Geometry();
+THREE.ParametricGeometries.TorusKnotGeometry.prototype.constructor = THREE.ParametricGeometries.TorusKnotGeometry;
 
 
 
 
-THREE.SphereGeometry2 = function(size, x, y) {
+ /*********************************************
+  *
+  * Parametric Replacement for SphereGeometry
+  *
+  *********************************************/
+THREE.ParametricGeometries.SphereGeometry = function(size, u, v) {
 
 
 	function sphere(u, v) {
 	function sphere(u, v) {
 		u *= pi;
 		u *= pi;
 		v *= 2 * pi;
 		v *= 2 * pi;
 		
 		
-		var x = sin(u) * cos(v);
-		var y = cos(u);
-		var z = -sin(u) * sin(v);
+		var x = size * sin(u) * cos(v);
+		var y = size * sin(u) * sin(v);
+		var z = size * cos(u);
+		
 
 
-		return new THREE.Vector3(x, y, z).multiplyScalar(size);
+		return new THREE.Vector3(x, y, z);
 	}
 	}
   
   
-	THREE.ParametricGeometry.call(this, sphere, y, x);
+	THREE.ParametricGeometry.call(this, sphere, u, v, !true);
 
 
 };
 };
 
 
-THREE.SphereGeometry2.prototype = new THREE.Geometry();
-THREE.SphereGeometry2.prototype.constructor = THREE.SphereGeometry2;
+THREE.ParametricGeometries.SphereGeometry.prototype = new THREE.Geometry();
+THREE.ParametricGeometries.SphereGeometry.prototype.constructor = THREE.ParametricGeometries.SphereGeometry;
+
 
 
+ /*********************************************
+  *
+  * Parametric Replacement for PlaneGeometry
+  *
+  *********************************************/
 
 
-THREE.PlaneGeometry2 = function(width, depth, segmentsWidth, segmentsDepth) {
+THREE.ParametricGeometries.PlaneGeometry = function(width, depth, segmentsWidth, segmentsDepth) {
 
 
 	function plane(u, v) {
 	function plane(u, v) {
 		
 		
@@ -232,5 +255,5 @@ THREE.PlaneGeometry2 = function(width, depth, segmentsWidth, segmentsDepth) {
 
 
 };
 };
 
 
-THREE.PlaneGeometry2.prototype = new THREE.Geometry();
-THREE.PlaneGeometry2.prototype.constructor = THREE.PlaneGeometry2;
+THREE.ParametricGeometries.PlaneGeometry.prototype = new THREE.Geometry();
+THREE.ParametricGeometries.PlaneGeometry.prototype.constructor = THREE.ParametricGeometries.PlaneGeometry;

+ 15 - 11
examples/webgl_geometries2.html

@@ -9,7 +9,7 @@
 				font-family: Monospace;
 				font-family: Monospace;
 				background-color: #000;
 				background-color: #000;
 				margin: 0px;
 				margin: 0px;
-				overflow: hidden;
+				
 			}
 			}
 		</style>
 		</style>
 	</head>
 	</head>
@@ -19,12 +19,15 @@
 
 
 		<script src="js/Detector.js"></script>
 		<script src="js/Detector.js"></script>
 		<script src="js/Stats.js"></script>
 		<script src="js/Stats.js"></script>
+		
+		<!--
 		<script src="../src/core/Geometry.js"></script>
 		<script src="../src/core/Geometry.js"></script>
-		<script src="js/CurveExtras.js"></script>
+		<script src="../src/extras/geometries/ParametricGeometry.js"></script>
+		-->
 
 
+		<script src="js/CurveExtras.js"></script>
 		<script src="js/UVsUtils.js"></script>
 		<script src="js/UVsUtils.js"></script>
-		<script src="../src/extras/geometries/ParametricGeometry.js"></script>
-		<script src="../src/extras/geometries/ParametricGeometries.js"></script>
+		<script src="js/ParametricGeometries.js"></script>
 		<script>
 		<script>
 
 
 			/* Testing the new Parametric Surfaces Geometries*/
 			/* Testing the new Parametric Surfaces Geometries*/
@@ -71,11 +74,11 @@
 
 
 				var GrannyKnot =  new THREE.Curves.GrannyKnot();
 				var GrannyKnot =  new THREE.Curves.GrannyKnot();
 				// var torus = new THREE.TorusKnotGeometry( radius, tube, segmentsR, segmentsT, p , q, heightScale );
 				// var torus = new THREE.TorusKnotGeometry( radius, tube, segmentsR, segmentsT, p , q, heightScale );
-				var torus2 = new THREE.TorusKnotGeometry2( radius, tube, segmentsR, segmentsT, p , q, heightScale );
+				var torus2 = new THREE.ParametricGeometries.TorusKnotGeometry( radius, tube, segmentsR, segmentsT, p , q, heightScale );
 				// var sphere = new THREE.SphereGeometry( 75, 20, 10 );
 				// var sphere = new THREE.SphereGeometry( 75, 20, 10 );
-				var sphere2 = new THREE.SphereGeometry2( 75, 20, 10 );
+				var sphere2 = new THREE.ParametricGeometries.SphereGeometry( 75, 20, 10 );
 				// var tube = new THREE.TubeGeometry(GrannyKnot, 150, 2, 8, true, false);
 				// var tube = new THREE.TubeGeometry(GrannyKnot, 150, 2, 8, true, false);
-				var tube2 = new THREE.TubeGeometry2(GrannyKnot, 150, 2, 8, true, false);
+				var tube2 = new THREE.ParametricGeometries.TubeGeometry(GrannyKnot, 150, 2, 8, true, false);
 
 
 
 
 				// var benchmarkCopies = 1000;
 				// var benchmarkCopies = 1000;
@@ -106,11 +109,11 @@
 				object.scale.multiplyScalar(100);
 				object.scale.multiplyScalar(100);
 				scene.add( object );
 				scene.add( object );
 
 
-				// var geo = new THREE.ParametricGeometry(THREE.ParametricGeometries.plane(200, 200), 10, 10);
-				// THREE.UVsDebug( geo );
+				var geo = new THREE.ParametricGeometry(THREE.ParametricGeometries.plane(200, 200), 10, 20);
 				// document.body.appendChild( THREE.UVsDebug( geo ));
 				// document.body.appendChild( THREE.UVsDebug( geo ));
-				// object = THREE.SceneUtils.createMultiMaterialObject( geo, materials );
-
+				object = THREE.SceneUtils.createMultiMaterialObject( geo, materials );
+				object.position.set( 0, 0, 0 );
+				scene.add( object );
 
 
 				// object = THREE.SceneUtils.createMultiMaterialObject( torus, materials );
 				// object = THREE.SceneUtils.createMultiMaterialObject( torus, materials );
 				// object.position.set( 0, 0, 0 );
 				// object.position.set( 0, 0, 0 );
@@ -128,6 +131,7 @@
 				//  scene.add( object );
 				//  scene.add( object );
 
 
 				object = THREE.SceneUtils.createMultiMaterialObject( sphere2, materials );
 				object = THREE.SceneUtils.createMultiMaterialObject( sphere2, materials );
+				// document.body.appendChild( THREE.UVsDebug( sphere2 ));
 				object.position.set( 200, 0, 0 );
 				object.position.set( 200, 0, 0 );
 				scene.add( object );
 				scene.add( object );
 
 

+ 5 - 5
src/extras/geometries/ParametricGeometry.js

@@ -48,10 +48,10 @@ THREE.ParametricGeometry = function ( func, slices, stacks, useTris ) {
 			c = (i + 1) * sliceCount + j;
 			c = (i + 1) * sliceCount + j;
 			d = (i + 1) * sliceCount + j + 1;
 			d = (i + 1) * sliceCount + j + 1;
 
 
-			uva = new THREE.UV( i / slices, j / stacks );
-			uvb = new THREE.UV( i / slices, ( j + 1 ) / stacks );
-			uvc = new THREE.UV( ( i + 1 ) / slices, j / stacks );
-			uvd = new THREE.UV( ( i + 1 ) / slices, ( j + 1 ) / stacks );
+			uva = new THREE.UV( j / slices, i / stacks );
+			uvb = new THREE.UV( ( j + 1 ) / slices, i / stacks );
+			uvc = new THREE.UV( j / slices, ( i + 1 ) / stacks );
+			uvd = new THREE.UV( ( j + 1 ) / slices, ( i + 1 ) / stacks );
 
 
 			if ( useTris ) {
 			if ( useTris ) {
 
 
@@ -64,7 +64,7 @@ THREE.ParametricGeometry = function ( func, slices, stacks, useTris ) {
 			} else {
 			} else {
 
 
 				faces.push( new THREE.Face4( a, b, d, c ) );
 				faces.push( new THREE.Face4( a, b, d, c ) );
-				uvs.push( [ uva, uvb, uvc, uvd ] );
+				uvs.push( [ uva, uvb, uvd, uvc ] );
 
 
 			}
 			}