|
@@ -196,26 +196,26 @@ a.bones;d.animation=a.animation;if(void 0!==a.morphTargets){i=0;for(k=a.morphTar
|
|
|
THREE.SceneLoader.prototype.load=function(a,b){var c=this,d=new XMLHttpRequest;d.onreadystatechange=function(){if(4===d.readyState)if(200===d.status||0===d.status){var e=JSON.parse(d.responseText);c.parse(e,b,a)}else console.error("THREE.SceneLoader: Couldn't load ["+a+"] ["+d.status+"]")};d.open("GET",a,!0);d.send(null)};THREE.SceneLoader.prototype.addGeometryHandler=function(a,b){this.geometryHandlerMap[a]={loaderClass:b}};
|
|
|
THREE.SceneLoader.prototype.addHierarchyHandler=function(a,b){this.hierarchyHandlerMap[a]={loaderClass:b}};
|
|
|
THREE.SceneLoader.prototype.parse=function(a,b,c){function d(a,b){return"relativeToHTML"==b?a:p+"/"+a}function e(){f(A.scene,G.objects)}function f(a,b){var c,e,g,i,k,p;for(p in b)if(void 0===A.objects[p]){var l=b[p],q=null;if(l.type&&l.type in n.hierarchyHandlerMap){if(void 0===l.loading){c={type:1,url:1,material:1,position:1,rotation:1,scale:1,visible:1,children:1,properties:1,skin:1,morph:1,mirroredLoop:1,duration:1};e={};for(var t in l)t in c||(e[t]=l[t]);r=A.materials[l.material];l.loading=!0;
|
|
|
-c=n.hierarchyHandlerMap[l.type].loaderObject;c.addEventListener?(c.addEventListener("load",h(p,a,r,l)),c.load(d(l.url,G.urlBaseType))):c.options?c.load(d(l.url,G.urlBaseType),h(p,a,r,l)):c.load(d(l.url,G.urlBaseType),h(p,a,r,l),e)}}else if(void 0!==l.geometry){if(m=A.geometries[l.geometry]){q=!1;r=A.materials[l.material];q=r instanceof THREE.ShaderMaterial;e=l.position;g=l.rotation;i=l.scale;c=l.matrix;k=0;l.material||(r=new THREE.MeshFaceMaterial(A.face_materials[l.geometry]));r instanceof THREE.MeshFaceMaterial&&
|
|
|
-0===r.materials.length&&(r=new THREE.MeshFaceMaterial(A.face_materials[l.geometry]));if(r instanceof THREE.MeshFaceMaterial)for(var y=0;y<r.materials.length;y++)q=q||r.materials[y]instanceof THREE.ShaderMaterial;q&&m.computeTangents();l.skin?q=new THREE.SkinnedMesh(m,r):l.morph?(q=new THREE.MorphAnimMesh(m,r),void 0!==l.duration&&(q.duration=l.duration),void 0!==l.time&&(q.time=l.time),void 0!==l.mirroredLoop&&(q.mirroredLoop=l.mirroredLoop),r.morphNormals&&m.computeMorphNormals()):q=new THREE.Mesh(m,
|
|
|
-r);q.name=p;c?(q.matrixAutoUpdate=!1,q.matrix.set(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])):(q.position.set(e[0],e[1],e[2]),k?(q.quaternion.set(k[0],k[1],k[2],k[3]),q.useQuaternion=!0):q.rotation.set(g[0],g[1],g[2]),q.scale.set(i[0],i[1],i[2]));q.visible=l.visible;q.castShadow=l.castShadow;q.receiveShadow=l.receiveShadow;a.add(q);A.objects[p]=q}}else"DirectionalLight"===l.type||"PointLight"===l.type||"AmbientLight"===l.type?(B=void 0!==l.color?l.color:
|
|
|
-16777215,x=void 0!==l.intensity?l.intensity:1,"DirectionalLight"===l.type?(e=l.direction,u=new THREE.DirectionalLight(B,x),u.position.set(e[0],e[1],e[2]),l.target&&(H.push({object:u,targetName:l.target}),u.target=null)):"PointLight"===l.type?(e=l.position,c=l.distance,u=new THREE.PointLight(B,x,c),u.position.set(e[0],e[1],e[2])):"AmbientLight"===l.type&&(u=new THREE.AmbientLight(B)),a.add(u),u.name=p,A.lights[p]=u,A.objects[p]=u):"PerspectiveCamera"===l.type||"OrthographicCamera"===l.type?("PerspectiveCamera"===
|
|
|
-l.type?s=new THREE.PerspectiveCamera(l.fov,l.aspect,l.near,l.far):"OrthographicCamera"===l.type&&(s=new THREE.OrthographicCamera(l.left,l.right,l.top,l.bottom,l.near,l.far)),e=l.position,s.position.set(e[0],e[1],e[2]),a.add(s),s.name=p,A.cameras[p]=s,A.objects[p]=s):(e=l.position,g=l.rotation,i=l.scale,k=0,q=new THREE.Object3D,q.name=p,q.position.set(e[0],e[1],e[2]),k?(q.quaternion.set(k[0],k[1],k[2],k[3]),q.useQuaternion=!0):q.rotation.set(g[0],g[1],g[2]),q.scale.set(i[0],i[1],i[2]),q.visible=void 0!==
|
|
|
-l.visible?l.visible:!1,a.add(q),A.objects[p]=q,A.empties[p]=q);if(q){if(void 0!==l.properties)for(var z in l.properties)q.properties[z]=l.properties[z];void 0!==l.children&&f(q,l.children)}}}function g(a){return function(b,c){A.geometries[a]=b;A.face_materials[a]=c;e();t-=1;n.onLoadComplete();k()}}function h(a,b,c,d){return function(f){var f=f.content?f.content:f.dae?f.scene:f,g=d.position,h=d.rotation,i=d.quaternion,l=d.scale;f.position.set(g[0],g[1],g[2]);i?(f.quaternion.set(i[0],i[1],i[2],i[3]),
|
|
|
-f.useQuaternion=!0):f.rotation.set(h[0],h[1],h[2]);f.scale.set(l[0],l[1],l[2]);c&&f.traverse(function(a){a.material=c});var m=void 0!==d.visible?d.visible:!0;f.traverse(function(a){a.visible=m});b.add(f);f.name=a;A.objects[a]=f;e();t-=1;n.onLoadComplete();k()}}function i(a){return function(b,c){A.geometries[a]=b;A.face_materials[a]=c}}function k(){n.callbackProgress({totalModels:C,totalTextures:z,loadedModels:C-t,loadedTextures:z-F},A);n.onLoadProgress();if(0===t&&0===F){for(var a=0;a<H.length;a++){var c=
|
|
|
-H[a],d=A.objects[c.targetName];d?c.object.target=d:(c.object.target=new THREE.Object3D,A.scene.add(c.object.target));c.object.target.properties.targetInverse=c.object}b(A)}}var n=this,p=THREE.Loader.prototype.extractUrlBase(c),m,r,s,l,q,u,B,x,t,F,C,z,A,H=[],G=a,I;for(I in this.geometryHandlerMap)a=this.geometryHandlerMap[I].loaderClass,this.geometryHandlerMap[I].loaderObject=new a;for(I in this.hierarchyHandlerMap)a=this.hierarchyHandlerMap[I].loaderClass,this.hierarchyHandlerMap[I].loaderObject=
|
|
|
-new a;F=t=0;A={scene:new THREE.Scene,geometries:{},face_materials:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},empties:{}};if(G.transform&&(I=G.transform.position,a=G.transform.rotation,c=G.transform.scale,I&&A.scene.position.set(I[0],I[1],I[2]),a&&A.scene.rotation.set(a[0],a[1],a[2]),c&&A.scene.scale.set(c[0],c[1],c[2]),I||a||c))A.scene.updateMatrix(),A.scene.updateMatrixWorld();I=function(a){return function(){F-=a;k();n.onLoadComplete()}};for(var $ in G.fogs)a=G.fogs[$],"linear"===
|
|
|
-a.type?l=new THREE.Fog(0,a.near,a.far):"exp2"===a.type&&(l=new THREE.FogExp2(0,a.density)),a=a.color,l.color.setRGB(a[0],a[1],a[2]),A.fogs[$]=l;for(var D in G.geometries)l=G.geometries[D],l.type in this.geometryHandlerMap&&(t+=1,n.onLoadStart());for(var L in G.objects)l=G.objects[L],l.type&&l.type in this.hierarchyHandlerMap&&(t+=1,n.onLoadStart());C=t;for(D in G.geometries)if(l=G.geometries[D],"cube"===l.type)m=new THREE.CubeGeometry(l.width,l.height,l.depth,l.widthSegments,l.heightSegments,l.depthSegments),
|
|
|
-A.geometries[D]=m;else if("plane"===l.type)m=new THREE.PlaneGeometry(l.width,l.height,l.widthSegments,l.heightSegments),A.geometries[D]=m;else if("sphere"===l.type)m=new THREE.SphereGeometry(l.radius,l.widthSegments,l.heightSegments),A.geometries[D]=m;else if("cylinder"===l.type)m=new THREE.CylinderGeometry(l.topRad,l.botRad,l.height,l.radSegs,l.heightSegs),A.geometries[D]=m;else if("torus"===l.type)m=new THREE.TorusGeometry(l.radius,l.tube,l.segmentsR,l.segmentsT),A.geometries[D]=m;else if("icosahedron"===
|
|
|
-l.type)m=new THREE.IcosahedronGeometry(l.radius,l.subdivisions),A.geometries[D]=m;else if(l.type in this.geometryHandlerMap){L={};for(q in l)"type"!==q&&"url"!==q&&(L[q]=l[q]);this.geometryHandlerMap[l.type].loaderObject.load(d(l.url,G.urlBaseType),g(D),L)}else"embedded"===l.type&&(L=G.embeds[l.id],L.metadata=G.metadata,L&&this.geometryHandlerMap.ascii.loaderObject.createModel(L,i(D),""));for(var y in G.textures)if(D=G.textures[y],D.url instanceof Array){F+=D.url.length;for(q=0;q<D.url.length;q++)n.onLoadStart()}else F+=
|
|
|
-1,n.onLoadStart();z=F;for(y in G.textures){D=G.textures[y];void 0!==D.mapping&&void 0!==THREE[D.mapping]&&(D.mapping=new THREE[D.mapping]);if(D.url instanceof Array){L=D.url.length;l=[];for(q=0;q<L;q++)l[q]=d(D.url[q],G.urlBaseType);q=(q=l[0].endsWith(".dds"))?THREE.ImageUtils.loadCompressedTextureCube(l,D.mapping,I(L)):THREE.ImageUtils.loadTextureCube(l,D.mapping,I(L))}else q=D.url.toLowerCase().endsWith(".dds"),L=d(D.url,G.urlBaseType),l=I(1),q=q?THREE.ImageUtils.loadCompressedTexture(L,D.mapping,
|
|
|
-l):THREE.ImageUtils.loadTexture(L,D.mapping,l),void 0!==THREE[D.minFilter]&&(q.minFilter=THREE[D.minFilter]),void 0!==THREE[D.magFilter]&&(q.magFilter=THREE[D.magFilter]),D.anisotropy&&(q.anisotropy=D.anisotropy),D.repeat&&(q.repeat.set(D.repeat[0],D.repeat[1]),1!==D.repeat[0]&&(q.wrapS=THREE.RepeatWrapping),1!==D.repeat[1]&&(q.wrapT=THREE.RepeatWrapping)),D.offset&&q.offset.set(D.offset[0],D.offset[1]),D.wrap&&(L={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==L[D.wrap[0]]&&
|
|
|
-(q.wrapS=L[D.wrap[0]]),void 0!==L[D.wrap[1]]&&(q.wrapT=L[D.wrap[1]]));A.textures[y]=q}var K,J;for(K in G.materials){y=G.materials[K];for(J in y.parameters)"envMap"===J||"map"===J||"lightMap"===J||"bumpMap"===J?y.parameters[J]=A.textures[y.parameters[J]]:"shading"===J?y.parameters[J]="flat"===y.parameters[J]?THREE.FlatShading:THREE.SmoothShading:"side"===J?y.parameters[J]="double"==y.parameters[J]?THREE.DoubleSide:"back"==y.parameters[J]?THREE.BackSide:THREE.FrontSide:"blending"===J?y.parameters[J]=
|
|
|
-y.parameters[J]in THREE?THREE[y.parameters[J]]:THREE.NormalBlending:"combine"===J?y.parameters[J]="MixOperation"==y.parameters[J]?THREE.MixOperation:THREE.MultiplyOperation:"vertexColors"===J?"face"==y.parameters[J]?y.parameters[J]=THREE.FaceColors:y.parameters[J]&&(y.parameters[J]=THREE.VertexColors):"wrapRGB"===J&&(I=y.parameters[J],y.parameters[J]=new THREE.Vector3(I[0],I[1],I[2]));void 0!==y.parameters.opacity&&1>y.parameters.opacity&&(y.parameters.transparent=!0);y.parameters.normalMap?(I=THREE.ShaderUtils.lib.normal,
|
|
|
-D=THREE.UniformsUtils.clone(I.uniforms),q=y.parameters.color,L=y.parameters.specular,l=y.parameters.ambient,$=y.parameters.shininess,D.tNormal.value=A.textures[y.parameters.normalMap],y.parameters.normalScale&&D.uNormalScale.value.set(y.parameters.normalScale[0],y.parameters.normalScale[1]),y.parameters.map&&(D.tDiffuse.value=y.parameters.map,D.enableDiffuse.value=!0),y.parameters.envMap&&(D.tCube.value=y.parameters.envMap,D.enableReflection.value=!0,D.uReflectivity.value=y.parameters.reflectivity),
|
|
|
-y.parameters.lightMap&&(D.tAO.value=y.parameters.lightMap,D.enableAO.value=!0),y.parameters.specularMap&&(D.tSpecular.value=A.textures[y.parameters.specularMap],D.enableSpecular.value=!0),y.parameters.displacementMap&&(D.tDisplacement.value=A.textures[y.parameters.displacementMap],D.enableDisplacement.value=!0,D.uDisplacementBias.value=y.parameters.displacementBias,D.uDisplacementScale.value=y.parameters.displacementScale),D.uDiffuseColor.value.setHex(q),D.uSpecularColor.value.setHex(L),D.uAmbientColor.value.setHex(l),
|
|
|
-D.uShininess.value=$,y.parameters.opacity&&(D.uOpacity.value=y.parameters.opacity),r=new THREE.ShaderMaterial({fragmentShader:I.fragmentShader,vertexShader:I.vertexShader,uniforms:D,lights:!0,fog:!0})):r=new THREE[y.type](y.parameters);A.materials[K]=r}for(K in G.materials)if(y=G.materials[K],y.parameters.materials){J=[];for(q=0;q<y.parameters.materials.length;q++)J.push(A.materials[y.parameters.materials[q]]);A.materials[K].materials=J}e();A.cameras&&G.defaults.camera&&(A.currentCamera=A.cameras[G.defaults.camera]);
|
|
|
-A.fogs&&G.defaults.fog&&(A.scene.fog=A.fogs[G.defaults.fog]);a=G.defaults.bgcolor;A.bgColor=new THREE.Color;A.bgColor.setRGB(a[0],a[1],a[2]);A.bgColorAlpha=G.defaults.bgalpha;n.callbackSync(A);k()};THREE.TextureLoader=function(){THREE.EventDispatcher.call(this);this.crossOrigin=null};THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a){var b=this,c=new Image;c.addEventListener("load",function(){var a=new THREE.Texture(c);a.needsUpdate=!0;b.dispatchEvent({type:"load",content:a})},!1);c.addEventListener("error",function(){b.dispatchEvent({type:"error",message:"Couldn't load URL ["+a+"]"})},!1);b.crossOrigin&&(c.crossOrigin=b.crossOrigin);c.src=a}};THREE.Material=function(){THREE.EventDispatcher.call(this);this.id=THREE.MaterialIdCount++;this.name="";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.overdraw=!1;this.needsUpdate=this.visible=!0};
|
|
|
+c=n.hierarchyHandlerMap[l.type].loaderObject;c.options?c.load(d(l.url,G.urlBaseType),h(p,a,r,l)):c.load(d(l.url,G.urlBaseType),h(p,a,r,l),e)}}else if(void 0!==l.geometry){if(m=A.geometries[l.geometry]){q=!1;r=A.materials[l.material];q=r instanceof THREE.ShaderMaterial;e=l.position;g=l.rotation;i=l.scale;c=l.matrix;k=0;l.material||(r=new THREE.MeshFaceMaterial(A.face_materials[l.geometry]));r instanceof THREE.MeshFaceMaterial&&0===r.materials.length&&(r=new THREE.MeshFaceMaterial(A.face_materials[l.geometry]));
|
|
|
+if(r instanceof THREE.MeshFaceMaterial)for(var y=0;y<r.materials.length;y++)q=q||r.materials[y]instanceof THREE.ShaderMaterial;q&&m.computeTangents();l.skin?q=new THREE.SkinnedMesh(m,r):l.morph?(q=new THREE.MorphAnimMesh(m,r),void 0!==l.duration&&(q.duration=l.duration),void 0!==l.time&&(q.time=l.time),void 0!==l.mirroredLoop&&(q.mirroredLoop=l.mirroredLoop),r.morphNormals&&m.computeMorphNormals()):q=new THREE.Mesh(m,r);q.name=p;c?(q.matrixAutoUpdate=!1,q.matrix.set(c[0],c[1],c[2],c[3],c[4],c[5],
|
|
|
+c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15])):(q.position.set(e[0],e[1],e[2]),k?(q.quaternion.set(k[0],k[1],k[2],k[3]),q.useQuaternion=!0):q.rotation.set(g[0],g[1],g[2]),q.scale.set(i[0],i[1],i[2]));q.visible=l.visible;q.castShadow=l.castShadow;q.receiveShadow=l.receiveShadow;a.add(q);A.objects[p]=q}}else"DirectionalLight"===l.type||"PointLight"===l.type||"AmbientLight"===l.type?(B=void 0!==l.color?l.color:16777215,x=void 0!==l.intensity?l.intensity:1,"DirectionalLight"===l.type?(e=l.direction,
|
|
|
+u=new THREE.DirectionalLight(B,x),u.position.set(e[0],e[1],e[2]),l.target&&(H.push({object:u,targetName:l.target}),u.target=null)):"PointLight"===l.type?(e=l.position,c=l.distance,u=new THREE.PointLight(B,x,c),u.position.set(e[0],e[1],e[2])):"AmbientLight"===l.type&&(u=new THREE.AmbientLight(B)),a.add(u),u.name=p,A.lights[p]=u,A.objects[p]=u):"PerspectiveCamera"===l.type||"OrthographicCamera"===l.type?("PerspectiveCamera"===l.type?s=new THREE.PerspectiveCamera(l.fov,l.aspect,l.near,l.far):"OrthographicCamera"===
|
|
|
+l.type&&(s=new THREE.OrthographicCamera(l.left,l.right,l.top,l.bottom,l.near,l.far)),e=l.position,s.position.set(e[0],e[1],e[2]),a.add(s),s.name=p,A.cameras[p]=s,A.objects[p]=s):(e=l.position,g=l.rotation,i=l.scale,k=0,q=new THREE.Object3D,q.name=p,q.position.set(e[0],e[1],e[2]),k?(q.quaternion.set(k[0],k[1],k[2],k[3]),q.useQuaternion=!0):q.rotation.set(g[0],g[1],g[2]),q.scale.set(i[0],i[1],i[2]),q.visible=void 0!==l.visible?l.visible:!1,a.add(q),A.objects[p]=q,A.empties[p]=q);if(q){if(void 0!==l.properties)for(var z in l.properties)q.properties[z]=
|
|
|
+l.properties[z];void 0!==l.children&&f(q,l.children)}}}function g(a){return function(b,c){A.geometries[a]=b;A.face_materials[a]=c;e();t-=1;n.onLoadComplete();k()}}function h(a,b,c,d){return function(f){var f=f.content?f.content:f.dae?f.scene:f,g=d.position,h=d.rotation,i=d.quaternion,l=d.scale;f.position.set(g[0],g[1],g[2]);i?(f.quaternion.set(i[0],i[1],i[2],i[3]),f.useQuaternion=!0):f.rotation.set(h[0],h[1],h[2]);f.scale.set(l[0],l[1],l[2]);c&&f.traverse(function(a){a.material=c});var m=void 0!==
|
|
|
+d.visible?d.visible:!0;f.traverse(function(a){a.visible=m});b.add(f);f.name=a;A.objects[a]=f;e();t-=1;n.onLoadComplete();k()}}function i(a){return function(b,c){A.geometries[a]=b;A.face_materials[a]=c}}function k(){n.callbackProgress({totalModels:C,totalTextures:z,loadedModels:C-t,loadedTextures:z-F},A);n.onLoadProgress();if(0===t&&0===F){for(var a=0;a<H.length;a++){var c=H[a],d=A.objects[c.targetName];d?c.object.target=d:(c.object.target=new THREE.Object3D,A.scene.add(c.object.target));c.object.target.properties.targetInverse=
|
|
|
+c.object}b(A)}}var n=this,p=THREE.Loader.prototype.extractUrlBase(c),m,r,s,l,q,u,B,x,t,F,C,z,A,H=[],G=a,I;for(I in this.geometryHandlerMap)a=this.geometryHandlerMap[I].loaderClass,this.geometryHandlerMap[I].loaderObject=new a;for(I in this.hierarchyHandlerMap)a=this.hierarchyHandlerMap[I].loaderClass,this.hierarchyHandlerMap[I].loaderObject=new a;F=t=0;A={scene:new THREE.Scene,geometries:{},face_materials:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},empties:{}};if(G.transform&&
|
|
|
+(I=G.transform.position,a=G.transform.rotation,c=G.transform.scale,I&&A.scene.position.set(I[0],I[1],I[2]),a&&A.scene.rotation.set(a[0],a[1],a[2]),c&&A.scene.scale.set(c[0],c[1],c[2]),I||a||c))A.scene.updateMatrix(),A.scene.updateMatrixWorld();I=function(a){return function(){F-=a;k();n.onLoadComplete()}};for(var $ in G.fogs)a=G.fogs[$],"linear"===a.type?l=new THREE.Fog(0,a.near,a.far):"exp2"===a.type&&(l=new THREE.FogExp2(0,a.density)),a=a.color,l.color.setRGB(a[0],a[1],a[2]),A.fogs[$]=l;for(var D in G.geometries)l=
|
|
|
+G.geometries[D],l.type in this.geometryHandlerMap&&(t+=1,n.onLoadStart());for(var L in G.objects)l=G.objects[L],l.type&&l.type in this.hierarchyHandlerMap&&(t+=1,n.onLoadStart());C=t;for(D in G.geometries)if(l=G.geometries[D],"cube"===l.type)m=new THREE.CubeGeometry(l.width,l.height,l.depth,l.widthSegments,l.heightSegments,l.depthSegments),A.geometries[D]=m;else if("plane"===l.type)m=new THREE.PlaneGeometry(l.width,l.height,l.widthSegments,l.heightSegments),A.geometries[D]=m;else if("sphere"===l.type)m=
|
|
|
+new THREE.SphereGeometry(l.radius,l.widthSegments,l.heightSegments),A.geometries[D]=m;else if("cylinder"===l.type)m=new THREE.CylinderGeometry(l.topRad,l.botRad,l.height,l.radSegs,l.heightSegs),A.geometries[D]=m;else if("torus"===l.type)m=new THREE.TorusGeometry(l.radius,l.tube,l.segmentsR,l.segmentsT),A.geometries[D]=m;else if("icosahedron"===l.type)m=new THREE.IcosahedronGeometry(l.radius,l.subdivisions),A.geometries[D]=m;else if(l.type in this.geometryHandlerMap){L={};for(q in l)"type"!==q&&"url"!==
|
|
|
+q&&(L[q]=l[q]);this.geometryHandlerMap[l.type].loaderObject.load(d(l.url,G.urlBaseType),g(D),L)}else"embedded"===l.type&&(L=G.embeds[l.id],L.metadata=G.metadata,L&&this.geometryHandlerMap.ascii.loaderObject.createModel(L,i(D),""));for(var y in G.textures)if(D=G.textures[y],D.url instanceof Array){F+=D.url.length;for(q=0;q<D.url.length;q++)n.onLoadStart()}else F+=1,n.onLoadStart();z=F;for(y in G.textures){D=G.textures[y];void 0!==D.mapping&&void 0!==THREE[D.mapping]&&(D.mapping=new THREE[D.mapping]);
|
|
|
+if(D.url instanceof Array){L=D.url.length;l=[];for(q=0;q<L;q++)l[q]=d(D.url[q],G.urlBaseType);q=(q=l[0].endsWith(".dds"))?THREE.ImageUtils.loadCompressedTextureCube(l,D.mapping,I(L)):THREE.ImageUtils.loadTextureCube(l,D.mapping,I(L))}else q=D.url.toLowerCase().endsWith(".dds"),L=d(D.url,G.urlBaseType),l=I(1),q=q?THREE.ImageUtils.loadCompressedTexture(L,D.mapping,l):THREE.ImageUtils.loadTexture(L,D.mapping,l),void 0!==THREE[D.minFilter]&&(q.minFilter=THREE[D.minFilter]),void 0!==THREE[D.magFilter]&&
|
|
|
+(q.magFilter=THREE[D.magFilter]),D.anisotropy&&(q.anisotropy=D.anisotropy),D.repeat&&(q.repeat.set(D.repeat[0],D.repeat[1]),1!==D.repeat[0]&&(q.wrapS=THREE.RepeatWrapping),1!==D.repeat[1]&&(q.wrapT=THREE.RepeatWrapping)),D.offset&&q.offset.set(D.offset[0],D.offset[1]),D.wrap&&(L={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping},void 0!==L[D.wrap[0]]&&(q.wrapS=L[D.wrap[0]]),void 0!==L[D.wrap[1]]&&(q.wrapT=L[D.wrap[1]]));A.textures[y]=q}var K,J;for(K in G.materials){y=G.materials[K];
|
|
|
+for(J in y.parameters)"envMap"===J||"map"===J||"lightMap"===J||"bumpMap"===J?y.parameters[J]=A.textures[y.parameters[J]]:"shading"===J?y.parameters[J]="flat"===y.parameters[J]?THREE.FlatShading:THREE.SmoothShading:"side"===J?y.parameters[J]="double"==y.parameters[J]?THREE.DoubleSide:"back"==y.parameters[J]?THREE.BackSide:THREE.FrontSide:"blending"===J?y.parameters[J]=y.parameters[J]in THREE?THREE[y.parameters[J]]:THREE.NormalBlending:"combine"===J?y.parameters[J]="MixOperation"==y.parameters[J]?THREE.MixOperation:
|
|
|
+THREE.MultiplyOperation:"vertexColors"===J?"face"==y.parameters[J]?y.parameters[J]=THREE.FaceColors:y.parameters[J]&&(y.parameters[J]=THREE.VertexColors):"wrapRGB"===J&&(I=y.parameters[J],y.parameters[J]=new THREE.Vector3(I[0],I[1],I[2]));void 0!==y.parameters.opacity&&1>y.parameters.opacity&&(y.parameters.transparent=!0);y.parameters.normalMap?(I=THREE.ShaderUtils.lib.normal,D=THREE.UniformsUtils.clone(I.uniforms),q=y.parameters.color,L=y.parameters.specular,l=y.parameters.ambient,$=y.parameters.shininess,
|
|
|
+D.tNormal.value=A.textures[y.parameters.normalMap],y.parameters.normalScale&&D.uNormalScale.value.set(y.parameters.normalScale[0],y.parameters.normalScale[1]),y.parameters.map&&(D.tDiffuse.value=y.parameters.map,D.enableDiffuse.value=!0),y.parameters.envMap&&(D.tCube.value=y.parameters.envMap,D.enableReflection.value=!0,D.uReflectivity.value=y.parameters.reflectivity),y.parameters.lightMap&&(D.tAO.value=y.parameters.lightMap,D.enableAO.value=!0),y.parameters.specularMap&&(D.tSpecular.value=A.textures[y.parameters.specularMap],
|
|
|
+D.enableSpecular.value=!0),y.parameters.displacementMap&&(D.tDisplacement.value=A.textures[y.parameters.displacementMap],D.enableDisplacement.value=!0,D.uDisplacementBias.value=y.parameters.displacementBias,D.uDisplacementScale.value=y.parameters.displacementScale),D.uDiffuseColor.value.setHex(q),D.uSpecularColor.value.setHex(L),D.uAmbientColor.value.setHex(l),D.uShininess.value=$,y.parameters.opacity&&(D.uOpacity.value=y.parameters.opacity),r=new THREE.ShaderMaterial({fragmentShader:I.fragmentShader,
|
|
|
+vertexShader:I.vertexShader,uniforms:D,lights:!0,fog:!0})):r=new THREE[y.type](y.parameters);A.materials[K]=r}for(K in G.materials)if(y=G.materials[K],y.parameters.materials){J=[];for(q=0;q<y.parameters.materials.length;q++)J.push(A.materials[y.parameters.materials[q]]);A.materials[K].materials=J}e();A.cameras&&G.defaults.camera&&(A.currentCamera=A.cameras[G.defaults.camera]);A.fogs&&G.defaults.fog&&(A.scene.fog=A.fogs[G.defaults.fog]);a=G.defaults.bgcolor;A.bgColor=new THREE.Color;A.bgColor.setRGB(a[0],
|
|
|
+a[1],a[2]);A.bgColorAlpha=G.defaults.bgalpha;n.callbackSync(A);k()};THREE.TextureLoader=function(){THREE.EventDispatcher.call(this);this.crossOrigin=null};THREE.TextureLoader.prototype={constructor:THREE.TextureLoader,load:function(a){var b=this,c=new Image;c.addEventListener("load",function(){var a=new THREE.Texture(c);a.needsUpdate=!0;b.dispatchEvent({type:"load",content:a})},!1);c.addEventListener("error",function(){b.dispatchEvent({type:"error",message:"Couldn't load URL ["+a+"]"})},!1);b.crossOrigin&&(c.crossOrigin=b.crossOrigin);c.src=a}};THREE.Material=function(){THREE.EventDispatcher.call(this);this.id=THREE.MaterialIdCount++;this.name="";this.side=THREE.FrontSide;this.opacity=1;this.transparent=!1;this.blending=THREE.NormalBlending;this.blendSrc=THREE.SrcAlphaFactor;this.blendDst=THREE.OneMinusSrcAlphaFactor;this.blendEquation=THREE.AddEquation;this.depthWrite=this.depthTest=!0;this.polygonOffset=!1;this.alphaTest=this.polygonOffsetUnits=this.polygonOffsetFactor=0;this.overdraw=!1;this.needsUpdate=this.visible=!0};
|
|
|
THREE.Material.prototype.setValues=function(a){if(void 0!==a)for(var b in a){var c=a[b];if(void 0===c)console.warn("THREE.Material: '"+b+"' parameter is undefined.");else if(b in this){var d=this[b];d instanceof THREE.Color&&c instanceof THREE.Color?d.copy(c):d instanceof THREE.Color?d.set(c):d instanceof THREE.Vector3&&c instanceof THREE.Vector3?d.copy(c):this[b]=c}}};
|
|
|
THREE.Material.prototype.clone=function(a){void 0===a&&(a=new THREE.Material);a.name=this.name;a.side=this.side;a.opacity=this.opacity;a.transparent=this.transparent;a.blending=this.blending;a.blendSrc=this.blendSrc;a.blendDst=this.blendDst;a.blendEquation=this.blendEquation;a.depthTest=this.depthTest;a.depthWrite=this.depthWrite;a.polygonOffset=this.polygonOffset;a.polygonOffsetFactor=this.polygonOffsetFactor;a.polygonOffsetUnits=this.polygonOffsetUnits;a.alphaTest=this.alphaTest;a.overdraw=this.overdraw;
|
|
|
a.visible=this.visible;return a};THREE.Material.prototype.dispose=function(){this.dispatchEvent({type:"dispose"})};THREE.MaterialIdCount=0;THREE.LineBasicMaterial=function(a){THREE.Material.call(this);this.color=new THREE.Color(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.LineBasicMaterial.prototype=Object.create(THREE.Material.prototype);
|