提交 b1ef3409 编写于 作者: A alteredq

Sorting out accidental double-merge.

......@@ -352,7 +352,7 @@ g;d++)i.push(new THREE.UV(e[d].u,e[d].v));b.faceVertexUvs[0].push(i)}return b},r
f=b.vertices[a.c].position,THREE.GeometryUtils.randomPointInTriangle(d,e,f);else if(a instanceof THREE.Face4){d=b.vertices[a.a].position;e=b.vertices[a.b].position;f=b.vertices[a.c].position;var b=b.vertices[a.d].position,g;c?a._area1&&a._area2?(c=a._area1,g=a._area2):(c=THREE.GeometryUtils.triangleArea(d,e,b),g=THREE.GeometryUtils.triangleArea(e,f,b),a._area1=c,a._area2=g):(c=THREE.GeometryUtils.triangleArea(d,e,b),g=THREE.GeometryUtils.triangleArea(e,f,b));return THREE.GeometryUtils.random()*(c+
g)<c?THREE.GeometryUtils.randomPointInTriangle(d,e,b):THREE.GeometryUtils.randomPointInTriangle(e,f,b)}},randomPointsInGeometry:function(a,b){function c(a){function b(c,d){if(d<c)return c;var e=c+Math.floor((d-c)/2);return k[e]>a?b(c,e-1):k[e]<a?b(e+1,d):e}return b(0,k.length-1)}var d,e,f=a.faces,g=a.vertices,h=f.length,i=0,k=[],j,o,p,m;for(e=0;e<h;e++){d=f[e];if(d instanceof THREE.Face3)j=g[d.a].position,o=g[d.b].position,p=g[d.c].position,d._area=THREE.GeometryUtils.triangleArea(j,o,p);else if(d instanceof
THREE.Face4)j=g[d.a].position,o=g[d.b].position,p=g[d.c].position,m=g[d.d].position,d._area1=THREE.GeometryUtils.triangleArea(j,o,m),d._area2=THREE.GeometryUtils.triangleArea(o,p,m),d._area=d._area1+d._area2;i+=d._area;k[e]=i}d=[];g={};for(e=0;e<b;e++)h=THREE.GeometryUtils.random()*i,h=c(h),d[e]=THREE.GeometryUtils.randomPointInFace(f[h],a,!0),g[h]?g[h]+=1:g[h]=1;return d},triangleArea:function(a,b,c){var d,e=THREE.GeometryUtils.__v1;e.sub(a,b);d=e.length();e.sub(a,c);a=e.length();e.sub(b,c);c=e.length();
b=0.5*(d+a+c);return Math.sqrt(b*(b-d)*(b-a)*(b-c))},center:function(a){a.computeBoundingBox();var b=new THREE.Matrix4,c=-0.5*(a.boundingBox.x[1]+a.boundingBox.x[0]),d=-0.5*(a.boundingBox.y[1]+a.boundingBox.y[0]),e=-0.5*(a.boundingBox.z[1]+a.boundingBox.z[0]);b.setTranslation(c,d,e);a.applyMatrix(b);a.computeBoundingBox();return new THREE.Vector3(c,d,e)},normalizeUVs:function(a){for(var a=a.faceVertexUvs[0],b=0,c=a.length;b<c;b++)for(var d=a[b],e=0,f=d.length;e<f;e++)d[e].u!==1&&(d[e].u-=Math.floor(d[e].u)),
b=0.5*(d+a+c);return Math.sqrt(b*(b-d)*(b-a)*(b-c))},center:function(a){a.computeBoundingBox();var b=new THREE.Vector3;b.x=-0.5*(a.boundingBox.x[1]+a.boundingBox.x[0]);b.y=-0.5*(a.boundingBox.y[1]+a.boundingBox.y[0]);b.z=-0.5*(a.boundingBox.z[1]+a.boundingBox.z[0]);a.applyMatrix((new THREE.Matrix4).setTranslation(b.x,b.y,b.z));a.computeBoundingBox();return b},normalizeUVs:function(a){for(var a=a.faceVertexUvs[0],b=0,c=a.length;b<c;b++)for(var d=a[b],e=0,f=d.length;e<f;e++)d[e].u!==1&&(d[e].u-=Math.floor(d[e].u)),
d[e].v!==1&&(d[e].v-=Math.floor(d[e].v))}};THREE.GeometryUtils.random=THREE.Math.random16;THREE.GeometryUtils.__v1=new THREE.Vector3;
THREE.ImageUtils={crossOrigin:"",loadTexture:function(a,b,c){var d=new Image,e=new THREE.Texture(d,b);d.onload=function(){e.needsUpdate=!0;c&&c(this)};d.crossOrigin=this.crossOrigin;d.src=a;return e},loadTextureCube:function(a,b,c){var d,e=[],f=new THREE.Texture(e,b),b=e.loadCount=0;for(d=a.length;b<d;++b)e[b]=new Image,e[b].onload=function(){e.loadCount+=1;if(e.loadCount===6)f.needsUpdate=!0;c&&c(this)},e[b].crossOrigin="",e[b].src=a[b];return f},getNormalMap:function(a,b){var c=function(a){var b=
Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);return[a[0]/b,a[1]/b,a[2]/b]};b|=1;var d=a.width,e=a.height,f=document.createElement("canvas");f.width=d;f.height=e;var g=f.getContext("2d");g.drawImage(a,0,0);for(var h=g.getImageData(0,0,d,e).data,i=g.createImageData(d,e),k=i.data,j=0;j<d;j++)for(var o=1;o<e;o++){var p=o-1<0?e-1:o-1,m=(o+1)%e,q=j-1<0?d-1:j-1,n=(j+1)%d,s=[],r=[0,0,h[(o*d+j)*4]/255*b];s.push([-1,0,h[(o*d+q)*4]/255*b]);s.push([-1,-1,h[(p*d+q)*4]/255*b]);s.push([0,-1,h[(p*d+j)*4]/255*b]);s.push([1,
......
......@@ -9,7 +9,7 @@ f;d++)i.push(new THREE.UV(e[d].u,e[d].v));b.faceVertexUvs[0].push(i)}return b},r
g=b.vertices[a.c].position,THREE.GeometryUtils.randomPointInTriangle(d,e,g);else if(a instanceof THREE.Face4){d=b.vertices[a.a].position;e=b.vertices[a.b].position;g=b.vertices[a.c].position;var b=b.vertices[a.d].position,f;c?a._area1&&a._area2?(c=a._area1,f=a._area2):(c=THREE.GeometryUtils.triangleArea(d,e,b),f=THREE.GeometryUtils.triangleArea(e,g,b),a._area1=c,a._area2=f):(c=THREE.GeometryUtils.triangleArea(d,e,b),f=THREE.GeometryUtils.triangleArea(e,g,b));return THREE.GeometryUtils.random()*(c+
f)<c?THREE.GeometryUtils.randomPointInTriangle(d,e,b):THREE.GeometryUtils.randomPointInTriangle(e,g,b)}},randomPointsInGeometry:function(a,b){function c(a){function b(d,c){if(c<d)return d;var e=d+Math.floor((c-d)/2);return k[e]>a?b(d,e-1):k[e]<a?b(e+1,c):e}return b(0,k.length-1)}var d,e,g=a.faces,f=a.vertices,h=g.length,i=0,k=[],j,q,p,m;for(e=0;e<h;e++){d=g[e];if(d instanceof THREE.Face3)j=f[d.a].position,q=f[d.b].position,p=f[d.c].position,d._area=THREE.GeometryUtils.triangleArea(j,q,p);else if(d instanceof
THREE.Face4)j=f[d.a].position,q=f[d.b].position,p=f[d.c].position,m=f[d.d].position,d._area1=THREE.GeometryUtils.triangleArea(j,q,m),d._area2=THREE.GeometryUtils.triangleArea(q,p,m),d._area=d._area1+d._area2;i+=d._area;k[e]=i}d=[];f={};for(e=0;e<b;e++)h=THREE.GeometryUtils.random()*i,h=c(h),d[e]=THREE.GeometryUtils.randomPointInFace(g[h],a,!0),f[h]?f[h]+=1:f[h]=1;return d},triangleArea:function(a,b,c){var d,e=THREE.GeometryUtils.__v1;e.sub(a,b);d=e.length();e.sub(a,c);a=e.length();e.sub(b,c);c=e.length();
b=0.5*(d+a+c);return Math.sqrt(b*(b-d)*(b-a)*(b-c))},center:function(a){a.computeBoundingBox();var b=new THREE.Matrix4,c=-0.5*(a.boundingBox.x[1]+a.boundingBox.x[0]),d=-0.5*(a.boundingBox.y[1]+a.boundingBox.y[0]),e=-0.5*(a.boundingBox.z[1]+a.boundingBox.z[0]);b.setTranslation(c,d,e);a.applyMatrix(b);a.computeBoundingBox();return new THREE.Vector3(c,d,e)},normalizeUVs:function(a){for(var a=a.faceVertexUvs[0],b=0,c=a.length;b<c;b++)for(var d=a[b],e=0,g=d.length;e<g;e++)d[e].u!==1&&(d[e].u-=Math.floor(d[e].u)),
b=0.5*(d+a+c);return Math.sqrt(b*(b-d)*(b-a)*(b-c))},center:function(a){a.computeBoundingBox();var b=new THREE.Vector3;b.x=-0.5*(a.boundingBox.x[1]+a.boundingBox.x[0]);b.y=-0.5*(a.boundingBox.y[1]+a.boundingBox.y[0]);b.z=-0.5*(a.boundingBox.z[1]+a.boundingBox.z[0]);a.applyMatrix((new THREE.Matrix4).setTranslation(b.x,b.y,b.z));a.computeBoundingBox();return b},normalizeUVs:function(a){for(var a=a.faceVertexUvs[0],b=0,c=a.length;b<c;b++)for(var d=a[b],e=0,g=d.length;e<g;e++)d[e].u!==1&&(d[e].u-=Math.floor(d[e].u)),
d[e].v!==1&&(d[e].v-=Math.floor(d[e].v))}};THREE.GeometryUtils.random=THREE.Math.random16;THREE.GeometryUtils.__v1=new THREE.Vector3;
THREE.ImageUtils={crossOrigin:"",loadTexture:function(a,b,c){var d=new Image,e=new THREE.Texture(d,b);d.onload=function(){e.needsUpdate=!0;c&&c(this)};d.crossOrigin=this.crossOrigin;d.src=a;return e},loadTextureCube:function(a,b,c){var d,e=[],g=new THREE.Texture(e,b),b=e.loadCount=0;for(d=a.length;b<d;++b)e[b]=new Image,e[b].onload=function(){e.loadCount+=1;if(e.loadCount===6)g.needsUpdate=!0;c&&c(this)},e[b].crossOrigin="",e[b].src=a[b];return g},getNormalMap:function(a,b){var c=function(a){var b=
Math.sqrt(a[0]*a[0]+a[1]*a[1]+a[2]*a[2]);return[a[0]/b,a[1]/b,a[2]/b]};b|=1;var d=a.width,e=a.height,g=document.createElement("canvas");g.width=d;g.height=e;var f=g.getContext("2d");f.drawImage(a,0,0);for(var h=f.getImageData(0,0,d,e).data,i=f.createImageData(d,e),k=i.data,j=0;j<d;j++)for(var q=1;q<e;q++){var p=q-1<0?e-1:q-1,m=(q+1)%e,l=j-1<0?d-1:j-1,n=(j+1)%d,r=[],o=[0,0,h[(q*d+j)*4]/255*b];r.push([-1,0,h[(q*d+l)*4]/255*b]);r.push([-1,-1,h[(p*d+l)*4]/255*b]);r.push([0,-1,h[(p*d+j)*4]/255*b]);r.push([1,
......
......@@ -125,7 +125,7 @@
scene.add( new THREE.AmbientLight( 0xcccccc ) );
pointLight = new THREE.PointLight( 0xff4400, 2, 60 );
pointLight = new THREE.PointLight( 0xff4400, 5, 30 );
pointLight.position.set( 5, 0, 0 );
scene.add( pointLight );
......
......@@ -238,7 +238,7 @@ THREE.GeometryUtils = {
// (uniform distribution)
// http://www.cgafaq.info/wiki/Random_Point_In_Triangle
randomPointInTriangle: function( vectorA, vectorB, vectorC ) {
randomPointInTriangle: function ( vectorA, vectorB, vectorC ) {
var a, b, c,
point = new THREE.Vector3(),
......@@ -276,7 +276,7 @@ THREE.GeometryUtils = {
// Get random point in face (triangle / quad)
// (uniform distribution)
randomPointInFace: function( face, geometry, useCachedAreas ) {
randomPointInFace: function ( face, geometry, useCachedAreas ) {
var vA, vB, vC, vD;
......@@ -343,7 +343,7 @@ THREE.GeometryUtils = {
// - find corresponding place in area array by binary search
// - get random point in face
randomPointsInGeometry: function( geometry, n ) {
randomPointsInGeometry: function ( geometry, n ) {
var face, i,
faces = geometry.faces,
......@@ -456,7 +456,7 @@ THREE.GeometryUtils = {
// Get triangle area (by Heron's formula)
// http://en.wikipedia.org/wiki/Heron%27s_formula
triangleArea: function( vectorA, vectorB, vectorC ) {
triangleArea: function ( vectorA, vectorB, vectorC ) {
var s, a, b, c,
tmp = THREE.GeometryUtils.__v1;
......@@ -478,23 +478,20 @@ THREE.GeometryUtils = {
// Center geometry so that 0,0,0 is in center of bounding box
center: function( geometry ) {
center: function ( geometry ) {
geometry.computeBoundingBox();
var matrix = new THREE.Matrix4();
var offset = new THREE.Vector3();
var dx = -0.5 * ( geometry.boundingBox.x[ 1 ] + geometry.boundingBox.x[ 0 ] );
var dy = -0.5 * ( geometry.boundingBox.y[ 1 ] + geometry.boundingBox.y[ 0 ] );
var dz = -0.5 * ( geometry.boundingBox.z[ 1 ] + geometry.boundingBox.z[ 0 ] );
matrix.setTranslation( dx, dy, dz );
geometry.applyMatrix( matrix );
offset.x = - 0.5 * ( geometry.boundingBox.x[ 1 ] + geometry.boundingBox.x[ 0 ] );
offset.y = - 0.5 * ( geometry.boundingBox.y[ 1 ] + geometry.boundingBox.y[ 0 ] );
offset.z = - 0.5 * ( geometry.boundingBox.z[ 1 ] + geometry.boundingBox.z[ 0 ] );
geometry.applyMatrix( new THREE.Matrix4().setTranslation( offset.x, offset.y, offset.z ) );
geometry.computeBoundingBox();
return new THREE.Vector3( dx, dy, dz );
return offset;
},
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册