Mr.doob 13 年之前
父节点
当前提交
df3a5437f4

+ 59 - 3
README.md

@@ -5,7 +5,7 @@ three.js
 
 The aim of the project is to create a lightweight 3D library with a very low level of complexity — in other words, for dummies. The library provides <canvas>, <svg> and WebGL renderers.
 
-[Contributors](http://github.com/mrdoob/three.js/contributors) — [Getting Started](http://www.aerotwist.com/lab/getting-started-with-three-js/) — [API Reference](http://github.com/mrdoob/three.js/wiki/API-Reference)
+[Contributors](http://github.com/mrdoob/three.js/contributors) — [Documentation](http://mrdoob.github.com/three.js/docs/latest/) — [Getting Started](http://www.aerotwist.com/lab/getting-started-with-three-js/)
 
 More? [#three.js on irc.freenode.net](http://webchat.freenode.net/?channels=three.js)
 
@@ -144,6 +144,62 @@ This code creates a camera, then creates a scene, adds a cube on it, creates a &
 
 ### Change log ###
 
+2012 04 22 - **r49** (364,242 KB, gzip: 89,057 KB)
+
+* Yet more `ColladaLoader` improvements. ([ekitspn](http://github.com/ekitson), [AddictArts](http://github.com/AddictArts), [pblasco](http://github.com/pblasco))
+* Created documentation system. ([mrdoob](http://github.com/mrdoob), [sole](http://github.com/sole))
+* Added some documentation. ([mrdoob](http://github.com/mrdoob))
+* Added `MorphBlendMesh`. ([alteredq](http://github.com/alteredq))
+* Added `emissive` component to WebGL Materials. ([alteredq](http://github.com/alteredq))
+* Added `DepthPassPlugin`. ([alteredq](http://github.com/alteredq))
+* Improvements to `Path`. ([asutherland](http://github.com/asutherland))
+* Improvements to `Curve`. ([zz85](http://github.com/zz85))
+* Added `ArrowHelper`. ([zz85](http://github.com/zz85) and [WestLangley](http://github.com/WestLangley))
+* Changed depth sorting in `WebGLRenderer` to use world positions. ([alteredq](http://github.com/alteredq))
+* Improved physically based shading in `WebGLRenderer`. ([WestLangley](http://github.com/WestLangley))
+* Changed depth sorting in `Projector` to use world positions. ([mrdoob](http://github.com/mrdoob))
+* Added physical specular term also to normal map shader. ([alteredq](http://github.com/alteredq))
+* Added `TubeGeometry`. ([zz85](http://github.com/zz85) and [WestLangley](http://github.com/WestLangley))
+* Added `needsUpdate` flag to `Material`. ([alteredq](http://github.com/alteredq))
+* Fixed `GeometryUtils.triangulateQuads`. ([alteredq](http://github.com/alteredq))
+* Improvements to `GeometryUtils.tessellate`. ([alteredq](http://github.com/alteredq))
+* Change `PlaneGeometry` from XY to XZ. ([mrdoob](http://github.com/mrdoob))
+* `WebGLRenderer` back to `highp` shader precision. ([mrdoob](http://github.com/mrdoob))
+* Added `deallocateRenderTarget` to `WebGLRenderer. ([kovleouf](http://github.com/kovleouf))
+* Support zIndex and scale into `DomRenderer`. ([ajorkowski](http://github.com/ajorkowski))
+* Improvements to `CameraHelper`. ([zz85](http://github.com/zz85))
+* Added 3D spline path extrusion support to `ExtrudeGeometry`. ([zz85](http://github.com/zz85))
+* `MarchingCubes` moved out of the lib into `/examples/js` folder. ([alteredq](http://github.com/alteredq))
+* Added `ImmediateRenderObject`. ([alteredq](http://github.com/alteredq))
+* Renamed `__dirty*` to `*NeedUpdate`. ([valette](http://github.com/valette) and [mrdoob](http://github.com/mrdoob))
+* Added `CustomBlending` to `Material` and `premultiplyAlpha` to `Texture`.  ([alteredq](http://github.com/alteredq))
+* Improvements to `CubeCamera`. ([alteredq](http://github.com/alteredq) and [mrdoob](http://github.com/mrdoob))
+* `CanvasRenderer.setClearColor()` and `.setClearColorHex()` now sets `opacity` to 1 when null. ([mrdoob](http://github.com/mrdoob))
+* Fixed broken UVs in `SubdivisionModifier`. ([zz85](http://github.com/zz85))
+* Renamed `Matrix4`'s `setTranslation`, `setRotationX`, `setRotationY`, `setRotationZ`, `setRotationAxis` and `setScale` to `makeTranslation`, `makeRotationX`, `makeRotationY`, `makeRotationZ`, `makeRotationAxis` and `makeScale`. ([mrdoob](http://github.com/mrdoob))
+* `Matrix4`'s static methods `makeFrustum`, `makePerspective`, `makeOrtho` to normal public methods. ([mrdoob](http://github.com/mrdoob))
+* Refactore handling of `Matrix4` to `Matrix3` inversion. ([alteredq](http://github.com/alteredq))
+* Added `GodRays` postprocessing. ([huwb](http://github.com/huwb))
+* Added `LinePieces` support to `Projector`. ([mrdoob](http://github.com/mrdoob))
+* Fixed UVs handling bug in `GeometryUtils.tessellate`. ([alteredq](http://github.com/alteredq))
+* Serious performance improvements to `Matrix4`, `Matrix3` and `Frustrum`. ([gero3](http://github.com/gero3))
+* Fixes to `LatheGeometry`. ([zz85](http://github.com/zz85))
+* Removed `Vertex`. Use `Vector3` instead. ([mrdoob](http://github.com/mrdoob))
+* Implemented real `Spotlight`s. ([alteredq](http://github.com/alteredq))
+* Added `ParametricGeometry`. ([zz85](http://github.com/zz85))
+* Added basic `OBJLoader` in `/examples/js/loaders` folder. ([mrdoob](http://github.com/mrdoob))
+* Moved `ColladaLoader` and `UTF8Loader` to `/examples/js/loaders` folder. ([mrdoob](http://github.com/mrdoob))
+* Added `VTKLoader` and `UTF8Loader` to `/examples/js/loaders` folder. ([valette](http://github.com/valette) and [mrdoob](http://github.com/mrdoob))
+* Blender exporter now supports linked groups. ([Druidhawk](http://github.com/Druidhawk))
+* Added `visible` property to `Material`. ([mrdoob](http://github.com/mrdoob))
+* Removed Lamber+Texture support in `CanvasRenderer`. ([mrdoob](http://github.com/mrdoob))
+* Fixed normals in `CylinderGeometry`. ([qiao](http://github.com/qiao))
+* Added floating point textures support to `WebGLRenderer`. ([mrdoob](http://github.com/mrdoob))
+* Renamed `AnaglyphWebGLRenderer` and co. to `AnaglyphEffect` & co. and moved to `/examples/js/effects`. ([mrdoob](http://github.com/mrdoob))
+* Improvements to documentation system. ([mrdoob](http://github.com/mrdoob) and [codler](http://github.com/codler))
+* Added `AsciiEffect`. ([zz85](http://github.com/zz85))
+
+
 2012 03 04 - **r48** (393,626 KB, gzip: 99,395 KB)
 
 * Added camera support to `ColladaLoader`. ([jbaicoianu](http://github.com/jbaicoianu))
@@ -277,10 +333,10 @@ This code creates a camera, then creates a scene, adds a cube on it, creates a &
 
 2011 09 04 - **r44** (330.356 KB, gzip: 84.039 KB)
 
-* Added `ColladaLoader`. ([timknip2](https://github.com/timknip2))
+* Added `ColladaLoader`. ([timknip2](http://github.com/timknip2))
 * Improved `ExtrudeGeometry`. ([zz85](http://github.com/zz85))
 * Fixed `CylinderGeometry` normals. ([alteredq](http://github.com/alteredq))
-* Fixed issue with `WebGLRenderer.setTexture` ([rectalogic](https://github.com/rectalogic))
+* Fixed issue with `WebGLRenderer.setTexture` ([rectalogic](http://github.com/rectalogic))
 * Fixed `TorusGeometry` normals. ([mrdoob](http://github.com/mrdoob))
 * Fixed `Ray` behind-ray intersects. ([mrdoob](http://github.com/mrdoob))
 * Added `OrthoCamera`. ([alteredq](http://github.com/alteredq))

+ 1 - 1
build/Three.js

@@ -1,5 +1,5 @@
 // Three.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"49dev"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
+'use strict';var THREE=THREE||{REVISION:"49"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
 (function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c){window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=Date.now(),f=Math.max(0,16-(c-a)),g=window.setTimeout(function(){b(c+f)},f);a=c+f;return g};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
 function(a){clearTimeout(a)}})();THREE.Clock=function(a){this.autoStart=a!==void 0?a:true;this.elapsedTime=this.oldTime=this.startTime=0;this.running=false};THREE.Clock.prototype.start=function(){this.oldTime=this.startTime=Date.now();this.running=true};THREE.Clock.prototype.stop=function(){this.getElapsedTime();this.running=false};THREE.Clock.prototype.getElapsedTime=function(){return this.elapsedTime=this.elapsedTime+this.getDelta()};
 THREE.Clock.prototype.getDelta=function(){var a=0;this.autoStart&&!this.running&&this.start();if(this.running){var b=Date.now(),a=0.001*(b-this.oldTime);this.oldTime=b;this.elapsedTime=this.elapsedTime+a}return a};THREE.Color=function(a){a!==void 0&&this.setHex(a);return this};

+ 1 - 1
build/custom/ThreeCanvas.js

@@ -1,5 +1,5 @@
 // ThreeCanvas.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"49dev"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
+'use strict';var THREE=THREE||{REVISION:"49"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
 (function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c){window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=Date.now(),f=Math.max(0,16-(c-a)),g=window.setTimeout(function(){b(c+f)},f);a=c+f;return g};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
 function(a){clearTimeout(a)}})();THREE.Color=function(a){a!==void 0&&this.setHex(a);return this};
 THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);

+ 1 - 1
build/custom/ThreeDOM.js

@@ -1,5 +1,5 @@
 // ThreeDOM.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"49dev"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
+'use strict';var THREE=THREE||{REVISION:"49"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
 (function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c){window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=Date.now(),f=Math.max(0,16-(c-a)),g=window.setTimeout(function(){b(c+f)},f);a=c+f;return g};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
 function(a){clearTimeout(a)}})();THREE.Color=function(a){a!==void 0&&this.setHex(a);return this};
 THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);

+ 1 - 1
build/custom/ThreeSVG.js

@@ -1,5 +1,5 @@
 // ThreeSVG.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"49dev"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
+'use strict';var THREE=THREE||{REVISION:"49"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
 (function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c){window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=Date.now(),f=Math.max(0,16-(c-a)),g=window.setTimeout(function(){b(c+f)},f);a=c+f;return g};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
 function(a){clearTimeout(a)}})();THREE.Color=function(a){a!==void 0&&this.setHex(a);return this};
 THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);

+ 1 - 1
build/custom/ThreeWebGL.js

@@ -1,5 +1,5 @@
 // ThreeWebGL.js - http://github.com/mrdoob/three.js
-'use strict';var THREE=THREE||{REVISION:"49dev"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
+'use strict';var THREE=THREE||{REVISION:"49"};self.Int32Array||(self.Int32Array=Array,self.Float32Array=Array);
 (function(){for(var a=0,b=["ms","moz","webkit","o"],c=0;c<b.length&&!window.requestAnimationFrame;++c){window.requestAnimationFrame=window[b[c]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[b[c]+"CancelAnimationFrame"]||window[b[c]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame)window.requestAnimationFrame=function(b){var c=Date.now(),g=Math.max(0,16-(c-a)),h=window.setTimeout(function(){b(c+g)},g);a=c+g;return h};if(!window.cancelAnimationFrame)window.cancelAnimationFrame=
 function(a){clearTimeout(a)}})();THREE.Color=function(a){a!==void 0&&this.setHex(a);return this};
 THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(a){this.r=a.r;this.g=a.g;this.b=a.b;return this},copyGammaToLinear:function(a){this.r=a.r*a.r;this.g=a.g*a.g;this.b=a.b*a.b;return this},copyLinearToGamma:function(a){this.r=Math.sqrt(a.r);this.g=Math.sqrt(a.g);this.b=Math.sqrt(a.b);return this},convertGammaToLinear:function(){var a=this.r,b=this.g,c=this.b;this.r=a*a;this.g=b*b;this.b=c*c;return this},convertLinearToGamma:function(){this.r=Math.sqrt(this.r);this.g=Math.sqrt(this.g);

+ 4 - 2
docs/index.html

@@ -118,7 +118,7 @@
 		<div id="button">Edit this page</div>
 
 		<script>
-			var REVISION = '49dev';
+			var REVISION = '49';
 
 			var path = null;
 
@@ -393,7 +393,9 @@
 			}
 
 			function goToHash() {
-				goTo( window.location.hash.substring(1) );
+
+				goTo( window.location.hash.substring( 1 ) );
+
 			}
 			
 			window.addEventListener( 'hashchange', goToHash, false );

+ 2 - 2
examples/webgl_geometries2.html

@@ -9,7 +9,7 @@
 				font-family: Monospace;
 				background-color: #000;
 				margin: 0px;
-				/*overflow: hidden;*/
+				overflow: hidden;
 			}
 		</style>
 	</head>
@@ -207,4 +207,4 @@
 		</script>
 
 	</body>
-</html>
+</html>

+ 0 - 229
examples/webgl_geometry_extrude.html

@@ -1,229 +0,0 @@
-<!doctype html>
-<html lang="en">
-  <head>
-    <title>three.js webgl - geometry - extrusion materials</title>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
-    <style>
-      body {
-        font-family: Monospace;
-        background-color: #f0f0f0;
-        margin: 0px;
-        overflow: hidden;
-      }
-    </style>
-  </head>
-  <body>
-    <canvas id="debug" style="position:absolute; left:100px"></canvas>
-
-    <script src="../build/Three.js"></script>
-    <script src="js/Stats.js"></script>
-
-    <script>
-
-      var container, stats;
-
-      var camera, scene, renderer;
-
-      var text, plane;
-
-      var targetRotation = 0;
-      var targetRotationOnMouseDown = 0;
-
-      var mouseX = 0;
-      var mouseXOnMouseDown = 0;
-
-      var windowHalfX = window.innerWidth / 2;
-      var windowHalfY = window.innerHeight / 2;
-
-      init();
-      animate();
-
-      function loadTexture( path ) {
-
-        var image = new Image();
-        image.onload = function () { texture.needsUpdate = true; };
-        image.src = path;
-
-        var texture  = new THREE.Texture( image, new THREE.UVMapping(), THREE.ClampToEdgeWrapping, THREE.ClampToEdgeWrapping, THREE.NearestFilter, THREE.LinearMipMapLinearFilter );
-
-        return new THREE.MeshPhongMaterial( { map: texture, color: 0x00aaff, shininess: 100 } );
-
-      }
-
-      function init() {
-
-        container = document.createElement( 'div' );
-        document.body.appendChild( container );
-
-        var texturedMaterial = loadTexture( 'textures/water.jpg' );
-
-        var info = document.createElement( 'div' );
-        info.style.position = 'absolute';
-        info.style.top = '10px';
-        info.style.width = '100%';
-        info.style.textAlign = 'center';
-        info.innerHTML = 'Procedurally generated 3D shapes with different materials on extrusions<br/>Drag to spin';
-        container.appendChild( info );
-
-        camera = new THREE.PerspectiveCamera( 30, window.innerWidth / window.innerHeight, 1, 1000 );
-        camera.position.set( 0, 0, 300 );
-
-        scene = new THREE.Scene();
-        scene.add( camera );
-
-		var light = new THREE.PointLight( 0xffffff );
-		light.position.set( 0, 0, 100 );
-		scene.add( light );
-
-        parent = new THREE.Object3D();
-        parent.position.y = 0;
-        scene.add( parent );
-
-        var extrudeSettings = { amount: 10, bevelEnabled: true, bevelSegments: 3, steps: 4, bevelThickness: 8, material: 0, extrudeMaterial: 1 };
-
-        var colorMaterials = [ new THREE.MeshPhongMaterial( { color: 0xff5500, shininess: 100 } ), new THREE.MeshPhongMaterial( { color: 0xff0000, shininess: 100 } ) ];
-        var imageAndColorMaterials = [ texturedMaterial, new THREE.MeshPhongMaterial( { color: 0x00aaff, shininess: 100 } ) ];
-
-        var pillShape1 = new THREE.Shape();
-        pillShape1.moveTo(  30, 80 );
-        pillShape1.lineTo(  100, 80 );
-        pillShape1.quadraticCurveTo( 130, 90, 100, 100 );
-        pillShape1.lineTo( 30, 100 );
-        pillShape1.quadraticCurveTo( 0, 90, 30, 80 );
-
-        var pillGeometry1 = pillShape1.extrude( extrudeSettings );
-        pillGeometry1.materials = colorMaterials;
-		pillGeometry1.computeVertexNormals();
-
-		THREE.GeometryUtils.center( pillGeometry1 );
-
-        var pillMesh1 = new THREE.Mesh( pillGeometry1, new THREE.MeshFaceMaterial() );
-		pillMesh1.position.y = -25;
-		pillMesh1.scale.x = 0.5;
-
-        parent.add ( pillMesh1 );
-
-        var pillShape2 = new THREE.Shape();
-        pillShape2.moveTo(  30, 80 );
-        pillShape2.lineTo(  100, 80 );
-        pillShape2.quadraticCurveTo( 130, 90, 100, 100 );
-        pillShape2.lineTo( 30, 100 );
-        pillShape2.quadraticCurveTo( 0, 90, 30, 80 );
-
-        var pillGeometry2 = pillShape2.extrude( extrudeSettings );
-        pillGeometry2.materials = imageAndColorMaterials;
-		pillGeometry2.computeVertexNormals();
-
-		THREE.GeometryUtils.center( pillGeometry2 );
-
-        var pillMesh2 = new THREE.Mesh( pillGeometry2, new THREE.MeshFaceMaterial() );
-		pillMesh2.position.y = 25;
-		pillMesh2.scale.x = 0.5;
-
-        parent.add ( pillMesh2 );
-
-
-        renderer = new THREE.WebGLRenderer( { antialias: true } );
-        renderer.setSize( window.innerWidth, window.innerHeight );
-
-        container.appendChild( renderer.domElement );
-
-        stats = new Stats();
-        stats.domElement.style.position = 'absolute';
-        stats.domElement.style.top = '0px';
-        container.appendChild( stats.domElement );
-
-        document.addEventListener( 'mousedown', onDocumentMouseDown, false );
-        document.addEventListener( 'touchstart', onDocumentTouchStart, false );
-        document.addEventListener( 'touchmove', onDocumentTouchMove, false );
-
-      }
-
-      //
-
-      function onDocumentMouseDown( event ) {
-
-        event.preventDefault();
-
-        document.addEventListener( 'mousemove', onDocumentMouseMove, false );
-        document.addEventListener( 'mouseup', onDocumentMouseUp, false );
-        document.addEventListener( 'mouseout', onDocumentMouseOut, false );
-
-        mouseXOnMouseDown = event.clientX - windowHalfX;
-        targetRotationOnMouseDown = targetRotation;
-
-      }
-
-      function onDocumentMouseMove( event ) {
-
-        mouseX = event.clientX - windowHalfX;
-
-        targetRotation = targetRotationOnMouseDown + ( mouseX - mouseXOnMouseDown ) * 0.02;
-
-      }
-
-      function onDocumentMouseUp( event ) {
-
-        document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
-        document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
-        document.removeEventListener( 'mouseout', onDocumentMouseOut, false );
-
-      }
-
-      function onDocumentMouseOut( event ) {
-
-        document.removeEventListener( 'mousemove', onDocumentMouseMove, false );
-        document.removeEventListener( 'mouseup', onDocumentMouseUp, false );
-        document.removeEventListener( 'mouseout', onDocumentMouseOut, false );
-
-      }
-
-      function onDocumentTouchStart( event ) {
-
-        if ( event.touches.length == 1 ) {
-
-          event.preventDefault();
-
-          mouseXOnMouseDown = event.touches[ 0 ].pageX - windowHalfX;
-          targetRotationOnMouseDown = targetRotation;
-
-        }
-
-      }
-
-      function onDocumentTouchMove( event ) {
-
-        if ( event.touches.length == 1 ) {
-
-          event.preventDefault();
-
-          mouseX = event.touches[ 0 ].pageX - windowHalfX;
-          targetRotation = targetRotationOnMouseDown + ( mouseX - mouseXOnMouseDown ) * 0.05;
-
-        }
-
-      }
-
-      //
-
-      function animate() {
-
-        requestAnimationFrame( animate );
-
-        render();
-        stats.update();
-
-      }
-
-      function render() {
-
-        parent.rotation.y += ( targetRotation - parent.rotation.y ) * 0.05;
-        renderer.render( scene, camera );
-
-      }
-
-    </script>
-
-  </body>
-</html>

+ 0 - 131
examples/webgl_geometry_extrude_uvs.html

@@ -1,131 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-		<title>three.js webgl - geometry extrude</title>
-
-	</head>
-
-	<body>
-
-	<script src="../build/Three.js"></script>
-	<script>
-
-		var TEXDATA = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAMFB'+
-					  'MVEWcEFqcGGOlIWOlIWulKWutOXOtOXutQnu1SoS6Uo69Y5zMfrHWnMbepc7erdbntd6d+uwA'+
-					  'AAAAo0lEQVR42mNgoAL4jwaIEQDp405gYOBKYLjvwIAssIBhLwM7ssABhtUMXECB3Q0M3nsTG'+
-					  'Lr3fmTwYuABGbqAIf9/AsP6/z8YWBjskQV+A/X2IwTccv4CBfYjBBi4/6MLoKnIWotmxvr/v4'+
-					  'C2+CMLfGPwYOBHFvjAUAUyGW5t5gao02G2sME8BxcoYDgvwAgS2LVqPxCvWr1rFZAiKggJClA'+
-					  'BAAC+WuzCiXr+gwAAAABJRU5ErkJggg==';
-
-		var renderer, camera, scene, mesh, mesh2;
-		var angle = 0;
-
-		init();
-		animate();
-
-		function init() {
-
-			scene = new THREE.Scene();
-
-			camera = new THREE.PerspectiveCamera( 45, window.innerWidth / window.innerHeight, 1, 1000 );
-			scene.add( camera );
-
-			renderer = new THREE.WebGLRenderer( { antialias: true } );
-			renderer.setSize( window.innerWidth, window.innerHeight );
-			document.body.appendChild( renderer.domElement );
-
-			setupModel();
-
-		};
-
-		function createMesh( g, texture ) {
-
-			var m = new THREE.Mesh( g, new THREE.MeshFaceMaterial()) ;
-			g.materials =
-					[
-						new THREE.MeshBasicMaterial( { map: texture } ),
-						new THREE.MeshBasicMaterial( { color: 0xcc4488 } )
-					];
-
-			return m;
-
-		}
-
-		function setupModel() {
-
-			var img = new Image();
-			img.onload = function() { texture.needsUpdate = true; }
-			img.src = TEXDATA;
-			var texture = new THREE.Texture( img );
-			texture.minFilter = THREE.LinearFilter;
-
-			var s = new THREE.Shape();
-			s.moveTo( 0,0 );
-			s.lineTo( -4, -4 );
-			s.lineTo(  4, -4 );
-			s.lineTo(  5, 0 );
-			s.lineTo(  4, 4 );
-			s.lineTo( -4, 4 );
-
-            var ho = new THREE.Shape();
-            ho.moveTo( 1+ 0,0 );
-            ho.lineTo( 1+ -2, -2 );
-            ho.lineTo( 0.5+  2, -2 );
-            ho.lineTo( 1+  2.5, 0 );
-            ho.lineTo( 0.5+  2, 2 );
-            ho.lineTo( 1+ -2, 2 );
-
-			s.holes.push(ho);
-
-			var s2 = new THREE.Shape();
-			s2.moveTo( 8+ 0,0 );
-			s2.lineTo( 8+ -2, -2 );
-			s2.lineTo( 8+  2, -2 );
-			s2.lineTo( 8+  2.5, 0 );
-			s2.lineTo( 8+  2, 2 );
-			s2.lineTo( 8+ -2, 2 );
-
-			var exoption = {
-				bevelEnabled: false,
-				bevelSize: 1,
-				amount: 6,
-				extrudeMaterial: 0,
-				material: 1
-			};
-
-			var geom = s.extrude( exoption );
-			mesh = createMesh( geom, texture );
-			mesh.position.set( -7, 0, -45 );
-			scene.add( mesh );
-
-			var geom2 = new THREE.ExtrudeGeometry( [s,s2], exoption );
-			mesh2 = createMesh( geom2, texture );
-			mesh2.position.set( 7, 0, -45 );
-			scene.add( mesh2 );
-
-		}
-
-		function animate() {
-
-			requestAnimationFrame( animate );
-
-			render();
-
-		}
-
-		function render() {
-
-			angle = Date.now() * 0.001;
-
-			mesh.rotation.set( -3.2, angle, 0 );
-			mesh2.rotation.set( -3.2, angle, 0 );
-
-			renderer.render( scene, camera );
-
-		}
-
-	</script>
-
-	</body>
-</html>

+ 1 - 1
src/Three.js

@@ -2,7 +2,7 @@
  * @author mr.doob / http://mrdoob.com/
  */
 
-var THREE = THREE || { REVISION: '49dev' };
+var THREE = THREE || { REVISION: '49' };
 
 if ( ! self.Int32Array ) {