|
@@ -317,19 +317,19 @@ b.numSupportedMorphTargets++);p.morphTarget6>=0&&(g.enableVertexAttribArray(p.mo
|
|
|
c.update(void 0,!0);b.update(void 0,!1,c);c.matrixWorldInverse.flattenToArray(W);c.projectionMatrix.flattenToArray(P);R.multiply(c.projectionMatrix,c.matrixWorldInverse);k(R);this.initWebGLObjects(b);S(n);(this.autoClear||y)&&this.clear();F=b.__webglObjects.length;for(y=0;y<F;y++)if(x=b.__webglObjects[y],G=x.object,G.visible)if(!(G instanceof THREE.Mesh)||m(G)){if(G.matrixWorld.flattenToArray(G._objectMatrixArray),E(G,c),p(x),x.render=!0,this.sortObjects)X.copy(G.position),R.multiplyVector3(X),x.z=
|
|
|
X.z}else x.render=!1;else x.render=!1;this.sortObjects&&b.__webglObjects.sort(t);ha=b.__webglObjectsImmediate.length;for(y=0;y<ha;y++)x=b.__webglObjectsImmediate[y],G=x.object,G.visible&&(G.matrixAutoUpdate&&G.matrixWorld.flattenToArray(G._objectMatrixArray),E(G,c),o(x));I(THREE.NormalBlending);for(y=0;y<F;y++)if(x=b.__webglObjects[y],x.render){G=x.object;da=x.buffer;A=x.opaque;h(G);for(x=0;x<A.count;x++)D=A.list[x],j(D.depthTest),e(c,K,M,D,da,G)}for(y=0;y<ha;y++)if(x=b.__webglObjectsImmediate[y],
|
|
|
G=x.object,G.visible){A=x.opaque;h(G);for(x=0;x<A.count;x++)D=A.list[x],j(D.depthTest),z=d(c,K,M,D,G),G.render(function(b){f(b,z,D.shading)})}for(y=0;y<F;y++)if(x=b.__webglObjects[y],x.render){G=x.object;da=x.buffer;A=x.transparent;h(G);for(x=0;x<A.count;x++)D=A.list[x],I(D.blending),j(D.depthTest),e(c,K,M,D,da,G)}for(y=0;y<ha;y++)if(x=b.__webglObjectsImmediate[y],G=x.object,G.visible){A=x.transparent;h(G);for(x=0;x<A.count;x++)D=A.list[x],I(D.blending),j(D.depthTest),z=d(c,K,M,D,G),G.render(function(b){f(b,
|
|
|
-z,D.shading)})}b.__webglSprites.length&&v(b,c);J&&b.__webglShadowVolumes.length&&b.lights.length&&u(b);b.__webglLensFlares.length&&C(b,c);n&&n.minFilter!==THREE.NearestFilter&&n.minFilter!==THREE.LinearFilter&&(g.bindTexture(g.TEXTURE_2D,n.__webglTexture),g.generateMipmap(g.TEXTURE_2D),g.bindTexture(g.TEXTURE_2D,null));g.finish()};this.initWebGLObjects=function(b){if(!b.__webglObjects)b.__webglObjects=[],b.__webglObjectsImmediate=[],b.__webglShadowVolumes=[],b.__webglLensFlares=[],b.__webglSprites=
|
|
|
-[];for(;b.__objectsAdded.length;){var d=b.__objectsAdded[0],c=b,e=void 0,f=void 0,h=void 0;if(d._modelViewMatrix==void 0)d._modelViewMatrix=new THREE.Matrix4,d._normalMatrixArray=new Float32Array(9),d._modelViewMatrixArray=new Float32Array(16),d._objectMatrixArray=new Float32Array(16),d.matrixWorld.flattenToArray(d._objectMatrixArray);if(d instanceof THREE.Mesh)for(e in f=d.geometry,f.geometryGroups==void 0&&D(f),f.geometryGroups){h=f.geometryGroups[e];if(!h.__webglVertexBuffer){var j=h;j.__webglVertexBuffer=
|
|
|
-g.createBuffer();j.__webglNormalBuffer=g.createBuffer();j.__webglTangentBuffer=g.createBuffer();j.__webglColorBuffer=g.createBuffer();j.__webglUVBuffer=g.createBuffer();j.__webglUV2Buffer=g.createBuffer();j.__webglSkinVertexABuffer=g.createBuffer();j.__webglSkinVertexBBuffer=g.createBuffer();j.__webglSkinIndicesBuffer=g.createBuffer();j.__webglSkinWeightsBuffer=g.createBuffer();j.__webglFaceBuffer=g.createBuffer();j.__webglLineBuffer=g.createBuffer();if(j.numMorphTargets){var k=void 0,m=void 0;j.__webglMorphTargetsBuffers=
|
|
|
-[];k=0;for(m=j.numMorphTargets;k<m;k++)j.__webglMorphTargetsBuffers.push(g.createBuffer())}for(var j=h,k=d,o=void 0,p=void 0,n=void 0,t=n=void 0,u=void 0,v=void 0,J=v=m=0,A=n=p=void 0,p=o=void 0,t=k.geometry,A=t.faces,u=j.faces,o=0,p=u.length;o<p;o++)n=u[o],n=A[n],n instanceof THREE.Face3?(m+=3,v+=1,J+=3):n instanceof THREE.Face4&&(m+=4,v+=2,J+=4);for(var o=j,p=k,z=u=A=void 0,E=void 0,z=void 0,n=[],A=0,u=p.materials.length;A<u;A++)if(z=p.materials[A],z instanceof THREE.MeshFaceMaterial){z=0;for(l=
|
|
|
-o.materials.length;z<l;z++)(E=o.materials[z])&&n.push(E)}else(E=z)&&n.push(E);o=n;a:{A=p=void 0;u=o.length;for(p=0;p<u;p++)if(A=o[p],A.map||A.lightMap||A instanceof THREE.MeshShaderMaterial){p=!0;break a}p=!1}a:{A=o;n=u=void 0;z=A.length;for(u=0;u<z;u++)if(n=A[u],!(n instanceof THREE.MeshBasicMaterial&&!n.envMap||n instanceof THREE.MeshDepthMaterial)){A=n&&n.shading!=void 0&&n.shading==THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading;break a}A=!1}a:{n=u=void 0;z=o.length;for(u=0;u<z;u++)if(n=
|
|
|
-o[u],n.vertexColors){n=n.vertexColors;break a}n=!1}j.__vertexArray=new Float32Array(m*3);if(A)j.__normalArray=new Float32Array(m*3);if(t.hasTangents)j.__tangentArray=new Float32Array(m*4);if(n)j.__colorArray=new Float32Array(m*3);if(p){if(t.faceUvs.length>0||t.faceVertexUvs.length>0)j.__uvArray=new Float32Array(m*2);if(t.faceUvs.length>1||t.faceVertexUvs.length>1)j.__uv2Array=new Float32Array(m*2)}if(k.geometry.skinWeights.length&&k.geometry.skinIndices.length)j.__skinVertexAArray=new Float32Array(m*
|
|
|
-4),j.__skinVertexBArray=new Float32Array(m*4),j.__skinIndexArray=new Float32Array(m*4),j.__skinWeightArray=new Float32Array(m*4);j.__faceArray=new Uint16Array(v*3+(k.geometry.edgeFaces?k.geometry.edgeFaces.length*6:0));j.__lineArray=new Uint16Array(J*2);if(j.numMorphTargets){j.__morphTargetsArrays=[];t=0;for(u=j.numMorphTargets;t<u;t++)j.__morphTargetsArrays.push(new Float32Array(m*3))}j.__needsSmoothNormals=A==THREE.SmoothShading;j.__uvType=p;j.__vertexColorType=n;j.__normalType=A;j.__webglFaceCount=
|
|
|
-v*3+(k.geometry.edgeFaces?k.geometry.edgeFaces.length*6:0);j.__webglLineCount=J*2;t=0;for(u=o.length;t<u;t++)if(o[t].attributes)for(a in j.__webglCustomAttributes={},o[t].attributes){p={};for(prop in o[t].attributes[a])p[prop]=o[t].attributes[a][prop];if(!p.__webglInitialized||p.createUniqueBuffers)p.__webglInitialized=!0,v=1,p.type==="v2"?v=2:p.type==="v3"?v=3:p.type==="v4"?v=4:p.type==="c"&&(v=3),p.size=v,p.needsUpdate=!0,p.array=new Float32Array(m*v),p.buffer=g.createBuffer(),p.buffer.belongsToAttribute=
|
|
|
-a;j.__webglCustomAttributes[a]=p}j.__inittedArrays=!0;f.__dirtyVertices=!0;f.__dirtyMorphTargets=!0;f.__dirtyElements=!0;f.__dirtyUvs=!0;f.__dirtyNormals=!0;f.__dirtyTangents=!0;f.__dirtyColors=!0}d instanceof THREE.ShadowVolume?x(c.__webglShadowVolumes,h,d):x(c.__webglObjects,h,d)}else if(d instanceof THREE.LensFlare)x(c.__webglLensFlares,void 0,d);else if(d instanceof THREE.Ribbon){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),
|
|
|
-e=f,h=e.vertices.length,e.__vertexArray=new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__webglVertexCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,f,d)}else if(d instanceof THREE.Line){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),e=f,h=e.vertices.length,e.__vertexArray=new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__webglLineCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,
|
|
|
-f,d)}else if(d instanceof THREE.ParticleSystem){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),e=f,h=e.vertices.length,e.__vertexArray=new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__sortArray=[],e.__webglParticleCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,f,d)}else THREE.MarchingCubes!==void 0&&d instanceof THREE.MarchingCubes?c.__webglObjectsImmediate.push({object:d,opaque:{list:[],count:0},
|
|
|
-transparent:{list:[],count:0}}):d instanceof THREE.Sprite&&c.__webglSprites.push(d);b.__objectsAdded.splice(0,1)}for(;b.__objectsRemoved.length;){d=b.__objectsRemoved[0];c=b;e=f=void 0;if(d instanceof THREE.Mesh)for(f=c.__webglObjects.length-1;f>=0;f--){if(e=c.__webglObjects[f].object,d==e){c.__webglObjects.splice(f,1);break}}else if(d instanceof THREE.Sprite)for(f=c.__webglSprites.length-1;f>=0;f--)if(e=c.__webglSprites[f],d==e){c.__webglSprites.splice(f,1);break}b.__objectsRemoved.splice(0,1)}d=
|
|
|
-0;for(c=b.__webglObjects.length;d<c;d++)y(b.__webglObjects[d].object,b);d=0;for(c=b.__webglShadowVolumes.length;d<c;d++)y(b.__webglShadowVolumes[d].object,b);d=0;for(c=b.__webglLensFlares.length;d<c;d++)y(b.__webglLensFlares[d].object,b)};this.setFaceCulling=function(b,d){b?(!d||d=="ccw"?g.frontFace(g.CCW):g.frontFace(g.CW),b=="back"?g.cullFace(g.BACK):b=="front"?g.cullFace(g.FRONT):g.cullFace(g.FRONT_AND_BACK),g.enable(g.CULL_FACE)):g.disable(g.CULL_FACE)};this.supportsVertexTextures=function(){return va}};
|
|
|
+z,D.shading)})}b.__webglSprites.length&&v(b,c);J&&b.__webglShadowVolumes.length&&b.lights.length&&u(b);b.__webglLensFlares.length&&C(b,c);n&&n.minFilter!==THREE.NearestFilter&&n.minFilter!==THREE.LinearFilter&&(g.bindTexture(g.TEXTURE_2D,n.__webglTexture),g.generateMipmap(g.TEXTURE_2D),g.bindTexture(g.TEXTURE_2D,null))};this.initWebGLObjects=function(b){if(!b.__webglObjects)b.__webglObjects=[],b.__webglObjectsImmediate=[],b.__webglShadowVolumes=[],b.__webglLensFlares=[],b.__webglSprites=[];for(;b.__objectsAdded.length;){var d=
|
|
|
+b.__objectsAdded[0],c=b,e=void 0,f=void 0,h=void 0;if(d._modelViewMatrix==void 0)d._modelViewMatrix=new THREE.Matrix4,d._normalMatrixArray=new Float32Array(9),d._modelViewMatrixArray=new Float32Array(16),d._objectMatrixArray=new Float32Array(16),d.matrixWorld.flattenToArray(d._objectMatrixArray);if(d instanceof THREE.Mesh)for(e in f=d.geometry,f.geometryGroups==void 0&&D(f),f.geometryGroups){h=f.geometryGroups[e];if(!h.__webglVertexBuffer){var j=h;j.__webglVertexBuffer=g.createBuffer();j.__webglNormalBuffer=
|
|
|
+g.createBuffer();j.__webglTangentBuffer=g.createBuffer();j.__webglColorBuffer=g.createBuffer();j.__webglUVBuffer=g.createBuffer();j.__webglUV2Buffer=g.createBuffer();j.__webglSkinVertexABuffer=g.createBuffer();j.__webglSkinVertexBBuffer=g.createBuffer();j.__webglSkinIndicesBuffer=g.createBuffer();j.__webglSkinWeightsBuffer=g.createBuffer();j.__webglFaceBuffer=g.createBuffer();j.__webglLineBuffer=g.createBuffer();if(j.numMorphTargets){var k=void 0,m=void 0;j.__webglMorphTargetsBuffers=[];k=0;for(m=
|
|
|
+j.numMorphTargets;k<m;k++)j.__webglMorphTargetsBuffers.push(g.createBuffer())}for(var j=h,k=d,o=void 0,p=void 0,n=void 0,t=n=void 0,u=void 0,v=void 0,J=v=m=0,A=n=p=void 0,p=o=void 0,t=k.geometry,A=t.faces,u=j.faces,o=0,p=u.length;o<p;o++)n=u[o],n=A[n],n instanceof THREE.Face3?(m+=3,v+=1,J+=3):n instanceof THREE.Face4&&(m+=4,v+=2,J+=4);for(var o=j,p=k,z=u=A=void 0,E=void 0,z=void 0,n=[],A=0,u=p.materials.length;A<u;A++)if(z=p.materials[A],z instanceof THREE.MeshFaceMaterial){z=0;for(l=o.materials.length;z<
|
|
|
+l;z++)(E=o.materials[z])&&n.push(E)}else(E=z)&&n.push(E);o=n;a:{A=p=void 0;u=o.length;for(p=0;p<u;p++)if(A=o[p],A.map||A.lightMap||A instanceof THREE.MeshShaderMaterial){p=!0;break a}p=!1}a:{A=o;n=u=void 0;z=A.length;for(u=0;u<z;u++)if(n=A[u],!(n instanceof THREE.MeshBasicMaterial&&!n.envMap||n instanceof THREE.MeshDepthMaterial)){A=n&&n.shading!=void 0&&n.shading==THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading;break a}A=!1}a:{n=u=void 0;z=o.length;for(u=0;u<z;u++)if(n=o[u],n.vertexColors){n=
|
|
|
+n.vertexColors;break a}n=!1}j.__vertexArray=new Float32Array(m*3);if(A)j.__normalArray=new Float32Array(m*3);if(t.hasTangents)j.__tangentArray=new Float32Array(m*4);if(n)j.__colorArray=new Float32Array(m*3);if(p){if(t.faceUvs.length>0||t.faceVertexUvs.length>0)j.__uvArray=new Float32Array(m*2);if(t.faceUvs.length>1||t.faceVertexUvs.length>1)j.__uv2Array=new Float32Array(m*2)}if(k.geometry.skinWeights.length&&k.geometry.skinIndices.length)j.__skinVertexAArray=new Float32Array(m*4),j.__skinVertexBArray=
|
|
|
+new Float32Array(m*4),j.__skinIndexArray=new Float32Array(m*4),j.__skinWeightArray=new Float32Array(m*4);j.__faceArray=new Uint16Array(v*3+(k.geometry.edgeFaces?k.geometry.edgeFaces.length*6:0));j.__lineArray=new Uint16Array(J*2);if(j.numMorphTargets){j.__morphTargetsArrays=[];t=0;for(u=j.numMorphTargets;t<u;t++)j.__morphTargetsArrays.push(new Float32Array(m*3))}j.__needsSmoothNormals=A==THREE.SmoothShading;j.__uvType=p;j.__vertexColorType=n;j.__normalType=A;j.__webglFaceCount=v*3+(k.geometry.edgeFaces?
|
|
|
+k.geometry.edgeFaces.length*6:0);j.__webglLineCount=J*2;t=0;for(u=o.length;t<u;t++)if(o[t].attributes)for(a in j.__webglCustomAttributes={},o[t].attributes){p={};for(prop in o[t].attributes[a])p[prop]=o[t].attributes[a][prop];if(!p.__webglInitialized||p.createUniqueBuffers)p.__webglInitialized=!0,v=1,p.type==="v2"?v=2:p.type==="v3"?v=3:p.type==="v4"?v=4:p.type==="c"&&(v=3),p.size=v,p.needsUpdate=!0,p.array=new Float32Array(m*v),p.buffer=g.createBuffer(),p.buffer.belongsToAttribute=a;j.__webglCustomAttributes[a]=
|
|
|
+p}j.__inittedArrays=!0;f.__dirtyVertices=!0;f.__dirtyMorphTargets=!0;f.__dirtyElements=!0;f.__dirtyUvs=!0;f.__dirtyNormals=!0;f.__dirtyTangents=!0;f.__dirtyColors=!0}d instanceof THREE.ShadowVolume?x(c.__webglShadowVolumes,h,d):x(c.__webglObjects,h,d)}else if(d instanceof THREE.LensFlare)x(c.__webglLensFlares,void 0,d);else if(d instanceof THREE.Ribbon){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),e=f,h=e.vertices.length,e.__vertexArray=
|
|
|
+new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__webglVertexCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,f,d)}else if(d instanceof THREE.Line){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),e=f,h=e.vertices.length,e.__vertexArray=new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__webglLineCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,f,d)}else if(d instanceof
|
|
|
+THREE.ParticleSystem){f=d.geometry;if(!f.__webglVertexBuffer)e=f,e.__webglVertexBuffer=g.createBuffer(),e.__webglColorBuffer=g.createBuffer(),e=f,h=e.vertices.length,e.__vertexArray=new Float32Array(h*3),e.__colorArray=new Float32Array(h*3),e.__sortArray=[],e.__webglParticleCount=h,f.__dirtyVertices=!0,f.__dirtyColors=!0;x(c.__webglObjects,f,d)}else THREE.MarchingCubes!==void 0&&d instanceof THREE.MarchingCubes?c.__webglObjectsImmediate.push({object:d,opaque:{list:[],count:0},transparent:{list:[],
|
|
|
+count:0}}):d instanceof THREE.Sprite&&c.__webglSprites.push(d);b.__objectsAdded.splice(0,1)}for(;b.__objectsRemoved.length;){d=b.__objectsRemoved[0];c=b;e=f=void 0;if(d instanceof THREE.Mesh)for(f=c.__webglObjects.length-1;f>=0;f--){if(e=c.__webglObjects[f].object,d==e){c.__webglObjects.splice(f,1);break}}else if(d instanceof THREE.Sprite)for(f=c.__webglSprites.length-1;f>=0;f--)if(e=c.__webglSprites[f],d==e){c.__webglSprites.splice(f,1);break}b.__objectsRemoved.splice(0,1)}d=0;for(c=b.__webglObjects.length;d<
|
|
|
+c;d++)y(b.__webglObjects[d].object,b);d=0;for(c=b.__webglShadowVolumes.length;d<c;d++)y(b.__webglShadowVolumes[d].object,b);d=0;for(c=b.__webglLensFlares.length;d<c;d++)y(b.__webglLensFlares[d].object,b)};this.setFaceCulling=function(b,d){b?(!d||d=="ccw"?g.frontFace(g.CCW):g.frontFace(g.CW),b=="back"?g.cullFace(g.BACK):b=="front"?g.cullFace(g.FRONT):g.cullFace(g.FRONT_AND_BACK),g.enable(g.CULL_FACE)):g.disable(g.CULL_FACE)};this.supportsVertexTextures=function(){return va}};
|
|
|
THREE.WebGLRenderTarget=function(b,c,d){this.width=b;this.height=c;d=d||{};this.wrapS=d.wrapS!==void 0?d.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=d.wrapT!==void 0?d.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=d.magFilter!==void 0?d.magFilter:THREE.LinearFilter;this.minFilter=d.minFilter!==void 0?d.minFilter:THREE.LinearMipMapLinearFilter;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=d.format!==void 0?d.format:THREE.RGBAFormat;this.type=d.type!==void 0?d.type:
|
|
|
THREE.UnsignedByteType;this.depthBuffer=d.depthBuffer!==void 0?d.depthBuffer:!0;this.stencilBuffer=d.stencilBuffer!==void 0?d.stencilBuffer:!0};
|
|
|
THREE.SoundRenderer=function(){this.volume=1;this.domElement=document.createElement("div");this.domElement.id="THREESound";this.cameraPosition=new THREE.Vector3;this.soundPosition=new THREE.Vector3;this.render=function(b,c,d){d&&b.update(void 0,!1,c);var d=b.sounds,e,f=d.length;for(e=0;e<f;e++)b=d[e],this.soundPosition.set(b.matrixWorld.n14,b.matrixWorld.n24,b.matrixWorld.n34),this.soundPosition.subSelf(c.position),b.isPlaying&&b.isLoaded&&(b.isAddedToDOM||b.addToDOM(this.domElement),b.calculateVolumeAndPan(this.soundPosition))}};
|