From 3d5da598e27775548d2e8d192e92cb8d998935bb Mon Sep 17 00:00:00 2001 From: "Mr.doob" Date: Mon, 29 Jun 2015 19:37:19 +0100 Subject: [PATCH] Updated builds. --- build/three.js | 110 +++++++++++++++++++++++++++------------------ build/three.min.js | 25 ++++++----- 2 files changed, 79 insertions(+), 56 deletions(-) diff --git a/build/three.js b/build/three.js index 740be959b5..31d3147d3e 100644 --- a/build/three.js +++ b/build/three.js @@ -3927,7 +3927,7 @@ THREE.Box3.prototype = { setFromObject: function () { // Computes the world-axis-aligned bounding box of an object (including its children), - // accounting for both the object's, and childrens', world transforms + // accounting for both the object's, and children's, world transforms var v1 = new THREE.Vector3(); @@ -7022,7 +7022,7 @@ THREE.Triangle.normal = function () { }(); -// static/instance method to calculate barycoordinates +// static/instance method to calculate barycentric coordinates // based on: http://www.blackpawn.com/texts/pointinpoly/default.html THREE.Triangle.barycoordFromPoint = function () { @@ -7046,7 +7046,7 @@ THREE.Triangle.barycoordFromPoint = function () { var result = optionalTarget || new THREE.Vector3(); - // colinear or singular triangle + // collinear or singular triangle if ( denom === 0 ) { // arbitrary location outside of triangle? // not sure if this is the best idea, maybe should be returning undefined @@ -7057,7 +7057,7 @@ THREE.Triangle.barycoordFromPoint = function () { var u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom; var v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom; - // barycoordinates must always sum to 1 + // barycentric coordinates must always sum to 1 return result.set( 1 - u - v, v, u ); }; @@ -9641,11 +9641,11 @@ THREE.Geometry.prototype = { mergeVertices: function () { - var verticesMap = {}; // Hashmap for looking up vertice by position coordinates (and making sure they are unique) + var verticesMap = {}; // Hashmap for looking up vertices by position coordinates (and making sure they are unique) var unique = [], changes = []; var v, key; - var precisionPoints = 4; // number of decimal points, eg. 4 for epsilon of 0.0001 + var precisionPoints = 4; // number of decimal points, e.g. 4 for epsilon of 0.0001 var precision = Math.pow( 10, precisionPoints ); var i, il, face; var indices, j, jl; @@ -10422,6 +10422,14 @@ THREE.BufferGeometry.prototype = { this.addAttribute( 'position', positions.copyVector3sArray( geometry.vertices ) ); this.addAttribute( 'color', colors.copyColorsArray( geometry.colors ) ); + if ( geometry.lineDistances && geometry.lineDistances.length === geometry.vertices.length ) { + + var lineDistances = new THREE.Float32Attribute( geometry.lineDistances.length, 1 ); + + this.addAttribute( 'lineDistance', lineDistances.copyArray( geometry.lineDistances ) ); + + } + if ( geometry.boundingSphere !== null ) { this.boundingSphere = geometry.boundingSphere.clone(); @@ -10532,6 +10540,21 @@ THREE.BufferGeometry.prototype = { } + if ( geometry.lineDistancesNeedUpdate ) { + + var attribute = this.attributes.lineDistance; + + if ( attribute !== undefined ) { + + attribute.copyArray( geometry.lineDistances ); + attribute.needsUpdate = true; + + } + + geometry.lineDistancesNeedUpdate = false; + + } + return this; }, @@ -11105,7 +11128,7 @@ THREE.BufferGeometry.prototype = { for ( var vo = 0; vo < 3; vo ++ ) { var vid = indices[ findex * 3 + vo ]; if ( vertexMap[ vid ] === - 1 ) { - //Unmapped vertice + //Unmapped vertex faceVertices[ vo * 2 ] = vid; faceVertices[ vo * 2 + 1 ] = - 1; newVerticeMaps ++; @@ -11115,7 +11138,7 @@ THREE.BufferGeometry.prototype = { faceVertices[ vo * 2 + 1 ] = - 1; duplicatedVertices ++; } else { - //Reused vertice in the current block + //Reused vertex in the current block faceVertices[ vo * 2 ] = vid; faceVertices[ vo * 2 + 1 ] = vertexMap[ vid ]; } @@ -11150,7 +11173,7 @@ THREE.BufferGeometry.prototype = { } } - /* Move all attribute values to map to the new computed indices , also expand the vertice stack to match our new vertexPtr. */ + /* Move all attribute values to map to the new computed indices , also expand the vertex stack to match our new vertexPtr. */ this.reorderBuffers( sortedIndices, revVertexMap, vertexPtr ); this.offsets = offsets; // TODO: Deprecate this.drawcalls = offsets; @@ -11231,7 +11254,7 @@ THREE.BufferGeometry.prototype = { Reorder attributes based on a new indexBuffer and indexMap. indexBuffer - Uint16Array of the new ordered indices. indexMap - Int32Array where the position is the new vertex ID and the value the old vertex ID for each vertex. - vertexCount - Amount of total vertices considered in this reordering (in case you want to grow the vertice stack). + vertexCount - Amount of total vertices considered in this reordering (in case you want to grow the vertex stack). */ reorderBuffers: function ( indexBuffer, indexMap, vertexCount ) { @@ -11700,7 +11723,7 @@ THREE.PerspectiveCamera.prototype.constructor = THREE.PerspectiveCamera; /** * Uses Focal Length (in mm) to estimate and set FOV - * 35mm (fullframe) camera is used if frame size is not specified; + * 35mm (full-frame) camera is used if frame size is not specified; * Formula based on http://www.bobatkins.com/photography/technical/field_of_view.html */ @@ -12938,7 +12961,7 @@ THREE.JSONLoader.prototype.constructor = THREE.JSONLoader; THREE.JSONLoader.prototype.load = function ( url, callback, texturePath ) { - // todo: unify load API to for easier SceneLoader use + // TODO: unify load API to for easier SceneLoader use texturePath = texturePath && ( typeof texturePath === 'string' ) ? texturePath : this.extractUrlBase( url ); @@ -14030,7 +14053,7 @@ THREE.ObjectLoader.prototype = { if ( data.image === undefined ) { - console.warn( 'THREE.ObjectLoader: No "image" speficied for', data.uuid ); + console.warn( 'THREE.ObjectLoader: No "image" specified for', data.uuid ); } @@ -14587,7 +14610,7 @@ THREE.Material.prototype = { } else if ( key === 'overdraw' ) { - // ensure overdraw is backwards-compatable with legacy boolean type + // ensure overdraw is backwards-compatible with legacy boolean type this[ key ] = Number( newValue ); } else { @@ -17236,7 +17259,7 @@ THREE.SkinnedMesh.prototype.updateMatrixWorld = function( force ) { } else { - console.warn( 'THREE.SkinnedMesh unreckognized bindMode: ' + this.bindMode ); + console.warn( 'THREE.SkinnedMesh unrecognized bindMode: ' + this.bindMode ); } @@ -17765,7 +17788,7 @@ THREE.LensFlare.prototype.add = function ( texture, size, distance, blending, co texture: texture, // THREE.Texture size: size, // size in pixels (-1 = use texture.width) distance: distance, // distance (0-1) from light source (0=at light source) - x: 0, y: 0, z: 0, // screen position (-1 => 1) z = 0 is ontop z = 1 is back + x: 0, y: 0, z: 0, // screen position (-1 => 1) z = 0 is in front z = 1 is back scale: 1, // scale rotation: 1, // rotation opacity: opacity, // opacity @@ -24464,7 +24487,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _objects ) { object = webglObject.object; - // culling is overriden globally for all objects + // culling is overridden globally for all objects // while rendering depth map // need to deal with MeshFaceMaterial somehow @@ -25501,7 +25524,7 @@ THREE.LensFlarePlugin = function ( renderer, flares ) { state.disableUnusedAttributes(); // loop through all lens flares to update their occlusion and positions - // setup gl and common used attribs/unforms + // setup gl and common used attribs/uniforms gl.uniform1i( uniforms.occlusionMap, 0 ); gl.uniform1i( uniforms.map, 1 ); @@ -27148,7 +27171,7 @@ THREE.Curve.prototype.updateArcLengths = function() { this.getLengths(); }; -// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equi distance +// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant THREE.Curve.prototype.getUtoTmapping = function ( u, distance ) { @@ -27210,7 +27233,7 @@ THREE.Curve.prototype.getUtoTmapping = function ( u, distance ) { } - // we could get finer grain at lengths, or use simple interpolatation between two points + // we could get finer grain at lengths, or use simple interpolation between two points var lengthBefore = arcLengths[ i ]; var lengthAfter = arcLengths[ i + 1 ]; @@ -27451,7 +27474,7 @@ THREE.CurvePath.prototype.getCurveLengths = function() { } - // Get length of subsurve + // Get length of sub-curve // Push sums into cached array var lengths = [], sums = 0; @@ -27544,7 +27567,7 @@ THREE.CurvePath.prototype.createPointsGeometry = function( divisions ) { }; -// Generate geometry from equidistance sampling along the path +// Generate geometry from equidistant sampling along the path THREE.CurvePath.prototype.createSpacedPointsGeometry = function( divisions ) { @@ -27760,7 +27783,7 @@ THREE.PathActions = { LINE_TO: 'lineTo', QUADRATIC_CURVE_TO: 'quadraticCurveTo', // Bezier quadratic curve BEZIER_CURVE_TO: 'bezierCurveTo', // Bezier cubic curve - CSPLINE_THRU: 'splineThru', // Catmull-rom spline + CSPLINE_THRU: 'splineThru', // Catmull-Rom spline ARC: 'arc', // Circle ELLIPSE: 'ellipse' }; @@ -27941,7 +27964,6 @@ THREE.Path.prototype.getSpacedPoints = function ( divisions, closedPath ) { THREE.Path.prototype.getPoints = function( divisions, closedPath ) { if (this.useSpacedPoints) { - console.log('tata'); return this.getSpacedPoints( divisions, closedPath ); } @@ -28276,9 +28298,9 @@ THREE.Path.prototype.toShapes = function( isCCW, noHoles ) { if ( perpEdge < 0 ) continue; inside = ! inside; // true intersection left of inPt } - } else { // parallel or colinear + } else { // parallel or collinear if ( inPt.y !== edgeLowPt.y ) continue; // parallel - // egde lies on the same horizontal line as inPt + // edge lies on the same horizontal line as inPt if ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) || ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) ) return true; // inPt: Point on contour ! // continue; @@ -28359,7 +28381,7 @@ THREE.Path.prototype.toShapes = function( isCCW, noHoles ) { if ( newShapes.length > 1 ) { - var ambigious = false; + var ambiguous = false; var toChange = []; for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) { @@ -28377,17 +28399,17 @@ THREE.Path.prototype.toShapes = function( isCCW, noHoles ) { hole_unassigned = false; betterShapeHoles[s2Idx].push( ho ); } else { - ambigious = true; + ambiguous = true; } } } if ( hole_unassigned ) { betterShapeHoles[sIdx].push( ho ); } } } - // console.log("ambigious: ", ambigious); + // console.log("ambiguous: ", ambiguous); if ( toChange.length > 0 ) { // console.log("to change: ", toChange); - if (! ambigious) newShapeHoles = betterShapeHoles; + if (! ambiguous) newShapeHoles = betterShapeHoles; } } @@ -28538,7 +28560,7 @@ THREE.Shape.Utils = { triangulateShape: function ( contour, holes ) { function point_in_segment_2D_colin( inSegPt1, inSegPt2, inOtherPt ) { - // inOtherPt needs to be colinear to the inSegment + // inOtherPt needs to be collinear to the inSegment if ( inSegPt1.x !== inSegPt2.x ) { if ( inSegPt1.x < inSegPt2.x ) { return ( ( inSegPt1.x <= inOtherPt.x ) && ( inOtherPt.x <= inSegPt2.x ) ); @@ -28600,13 +28622,13 @@ THREE.Shape.Utils = { return [ { x: inSeg1Pt1.x + factorSeg1 * seg1dx, y: inSeg1Pt1.y + factorSeg1 * seg1dy } ]; - } else { // parallel or colinear + } else { // parallel or collinear if ( ( perpSeg1 !== 0 ) || ( seg2dy * seg1seg2dx !== seg2dx * seg1seg2dy ) ) return []; // they are collinear or degenerate - var seg1Pt = ( (seg1dx === 0) && (seg1dy === 0) ); // segment1 ist just a point? - var seg2Pt = ( (seg2dx === 0) && (seg2dy === 0) ); // segment2 ist just a point? + var seg1Pt = ( (seg1dx === 0) && (seg1dy === 0) ); // segment1 is just a point? + var seg2Pt = ( (seg2dx === 0) && (seg2dy === 0) ); // segment2 is just a point? // both segments are points if ( seg1Pt && seg2Pt ) { if ( (inSeg1Pt1.x !== inSeg2Pt1.x) || @@ -31050,7 +31072,7 @@ THREE.EdgesGeometry.prototype.constructor = THREE.EdgesGeometry; * parameters = { * * curveSegments: , // number of points on the curves - * steps: , // number of points for z-side extrusions / used for subdividing segements of extrude spline too + * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too * amount: , // Depth to extrude the shape * * bevelEnabled: , // turn on bevel @@ -31158,7 +31180,7 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) { } - // Variables initalization + // Variables initialization var ahole, h, hl; // looping of holes var scope = this; @@ -31231,7 +31253,7 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) { var EPSILON = 0.0000000001; // computes for inPt the corresponding point inPt' on a new contour - // shiftet by 1 unit (length of normalized vector) to the left + // shifted by 1 unit (length of normalized vector) to the left // if we walk along contour clockwise, this new contour is outside the old one // // inPt' is the intersection of the two lines parallel to the two @@ -31247,10 +31269,10 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) { var v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y ); - // check for colinear edges - var colinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x ); + // check for collinear edges + var collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x ); - if ( Math.abs( colinear0 ) > EPSILON ) { // not colinear + if ( Math.abs( collinear0 ) > EPSILON ) { // not collinear // length of vectors for normalizing @@ -31285,7 +31307,7 @@ THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) { shrink_by = Math.sqrt( v_trans_lensq / 2 ); } - } else { // handle special case of colinear edges + } else { // handle special case of collinear edges var direction_eq = false; // assumes: opposite if ( v_prev_x > EPSILON ) { @@ -32714,7 +32736,7 @@ THREE.TubeGeometry = function ( path, segments, radius, radialSegments, closed, } - // consruct the grid + // construct the grid for ( i = 0; i < numpoints; i ++ ) { @@ -32860,7 +32882,7 @@ THREE.TubeGeometry.FrenetFrames = function ( path, segments, closed ) { */ function initialNormal3() { - // select an initial normal vector perpenicular to the first tangent vector, + // select an initial normal vector perpendicular to the first tangent vector, // and in the direction of the smallest tangent xyz component normals[ 0 ] = new THREE.Vector3(); @@ -34162,7 +34184,7 @@ THREE.DirectionalLightHelper.prototype.update = function () { * @author WestLangley / http://github.com/WestLangley * @param object THREE.Mesh whose geometry will be used * @param hex line color - * @param thresholdAngle the minimim angle (in degrees), + * @param thresholdAngle the minimum angle (in degrees), * between the face normals of adjacent faces, * that is required to render an edge. A value of 10 means * an edge is only rendered if the angle is at least 10 degrees. diff --git a/build/three.min.js b/build/three.min.js index baaf7483fb..2f733e0d92 100644 --- a/build/three.min.js +++ b/build/three.min.js @@ -224,14 +224,15 @@ THREE.BufferGeometry=function(){Object.defineProperty(this,"id",{value:THREE.Geo THREE.BufferGeometry.prototype={constructor:THREE.BufferGeometry,addAttribute:function(a,b,c){!1===b instanceof THREE.BufferAttribute&&!1===b instanceof THREE.InterleavedBufferAttribute?(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),this.attributes[a]={array:b,itemSize:c}):this.attributes[a]=b},getAttribute:function(a){return this.attributes[a]},addDrawCall:function(a,b,c){this.drawcalls.push({start:a,count:b,index:void 0!==c?c:0})},applyMatrix:function(a){var b= this.attributes.position;void 0!==b&&(a.applyToVector3Array(b.array),b.needsUpdate=!0);b=this.attributes.normal;void 0!==b&&((new THREE.Matrix3).getNormalMatrix(a).applyToVector3Array(b.array),b.needsUpdate=!0);null!==this.boundingBox&&this.computeBoundingBox();null!==this.boundingSphere&&this.computeBoundingSphere()},copy:function(a){var b=a.attributes;a=a.offsets;for(var c in b)this.addAttribute(c,b[c].clone());b=0;for(c=a.length;bh.end&&(h.end=e);b||(b=g)}}a.firstAnimation=b}; @@ -681,8 +682,8 @@ THREE.Path.prototype.bezierCurveTo=function(a,b,c,d,e,f){var g=Array.prototype.s THREE.Path.prototype.splineThru=function(a){var b=Array.prototype.slice.call(arguments),c=this.actions[this.actions.length-1].args,c=[new THREE.Vector2(c[c.length-2],c[c.length-1])];Array.prototype.push.apply(c,a);c=new THREE.SplineCurve(c);this.curves.push(c);this.actions.push({action:THREE.PathActions.CSPLINE_THRU,args:b})};THREE.Path.prototype.arc=function(a,b,c,d,e,f){var g=this.actions[this.actions.length-1].args;this.absarc(a+g[g.length-2],b+g[g.length-1],c,d,e,f)}; THREE.Path.prototype.absarc=function(a,b,c,d,e,f){this.absellipse(a,b,c,c,d,e,f)};THREE.Path.prototype.ellipse=function(a,b,c,d,e,f,g){var h=this.actions[this.actions.length-1].args;this.absellipse(a+h[h.length-2],b+h[h.length-1],c,d,e,f,g)};THREE.Path.prototype.absellipse=function(a,b,c,d,e,f,g){var h=Array.prototype.slice.call(arguments),k=new THREE.EllipseCurve(a,b,c,d,e,f,g);this.curves.push(k);k=k.getPoint(1);h.push(k.x);h.push(k.y);this.actions.push({action:THREE.PathActions.ELLIPSE,args:h})}; THREE.Path.prototype.getSpacedPoints=function(a,b){a||(a=40);for(var c=[],d=0;dMath.abs(d.x-c[0].x)&&1E-10>Math.abs(d.y-c[0].y)&&c.splice(c.length-1,1);b&&c.push(c[0]);return c}; THREE.Path.prototype.toShapes=function(a,b){function c(a){for(var b=[],c=0,d=a.length;cl&&(g=b[f],k=-k,h=b[e],l=-l),!(a.yh.y))if(a.y===g.y){if(a.x===g.x)return!0}else{e=l*(a.x-g.x)-k*(a.y-g.y);if(0===e)return!0;0>e||(d=!d)}}else if(a.y===g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&& -- GitLab