diff --git a/dist/UltimateLoader2.js b/dist/UltimateLoader2.js index 906f3b1..c0fabd7 100644 --- a/dist/UltimateLoader2.js +++ b/dist/UltimateLoader2.js @@ -3,7 +3,7 @@ * A tool to help load objects in Three.js * * @Author NorybiaK - * version 1.1.5 + * version 1.1.6 */ var UltimateLoader = UltimateLoader || {}; @@ -210,8 +210,6 @@ var UltimateLoader = UltimateLoader || {}; var filename = fileInfo[0]; var fileExt = fileInfo[fileInfo.length-1].toLowerCase(); //We need to make sure we grab the extension and lower the case. - console.log(base); - var info = {name: filename, ext: fileExt, baseUrl: base, url: url}; return info; diff --git a/dist/UltimateLoader2.min.js b/dist/UltimateLoader2.min.js index 4a57ca5..a5c7c7f 100644 --- a/dist/UltimateLoader2.min.js +++ b/dist/UltimateLoader2.min.js @@ -1,4 +1,4 @@ -var UltimateLoader=UltimateLoader||{};!function(e){"use strict";function t(e){var t=r(e);if(t){var o={};return o.urlInfo=n(t),o.shouldUpdate=!1,"mtl"===o.urlInfo.ext?void(I=o.urlInfo):o}}function o(e){var t=[];return a(e,function(o,a){var l=r(a.url);if(l){var i={};if(i.urlInfo=n(l),i.object=a,i.shouldUpdate=!0,i.name=o,i.parent=e,a.mtl){var s=r(a.mtl);s&&(i.mtl=n(s))}t.push(i)}}),t}function a(e,t){for(var o in e)t.apply(this,[o,e[o]]),null!==e[o]&&"object"==typeof e[o]&&a(e[o],t)}function n(e){var t=e.slice(0,e.lastIndexOf("/")+1);if(""===t||null===t||"undefined"===t)return void console.error("UltimateLoader: "+name+" failed to load as it must pass a valid url");var o=e.substr(e.lastIndexOf("/")+1),a=o.split("."),n=a[0],r=a[a.length-1].toLowerCase();console.log(t);var l={name:n,ext:r,baseUrl:t,url:e};return l}function r(e){if("string"!=typeof e||""===e)return!1;if(/^https?:\/\//i.test(e))return e;var t=new URL(e,location.href.substring(0,location.href.lastIndexOf("/")+1));return t.toString()}function l(e,t,o){switch(e){case 0:o.x=t;break;case 1:o.y=t;break;case 2:o.z=t;break;case 3:o.w=t;break;default:throw new Error("index is out of range: "+e)}}function i(){this.count=0,this.complete=!1,this.size=0,this.loadedObjects=[]}function s(e){if(R[e.urlInfo.url]){var t=R[e.urlInfo.url];t.model.object3d?c(e,t):t.toClone.push(e),e.fetchFromCache=!0}else R[e.urlInfo.url]={toClone:[],model:e},e.isCache=!0}function c(e,t){e.object3d=t.model.object3d.clone(),e.object3d.position.set(0,0,0),e.object3d.rotation.set(0,0,0),e.object3d.quaternion.set(0,0,0,1),e.object3d.scale.set(1,1,1),e.object3d.traverse(function(e){e instanceof THREE.Mesh&&(e.material=e.material.clone())}),e.callback()}function u(t,o){if(t.isCache)for(var a=R[t.urlInfo.url].toClone,n=0;n=0?o.substring(0,n):o;p=p.toLowerCase();var h=n>=0?o.substring(n+1):"";if(h=h.trim(),"newmtl"===p)e={name:h},s[h]=e;else if(e)if("ka"===p||"kd"===p||"ks"===p){var l=h.split(r,3);e[p]=[parseFloat(l[0]),parseFloat(l[1]),parseFloat(l[2])]}else e[p]=h}}var c=new THREE.MTLLoader.MaterialCreator(this.texturePath||this.path,this.materialOptions);return c.setCrossOrigin(this.crossOrigin),c.setManager(this.manager),c.setMaterials(s),c}},THREE.MTLLoader.MaterialCreator=function(t,a){this.baseUrl=t||"",this.options=a,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:THREE.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:THREE.RepeatWrapping},THREE.MTLLoader.MaterialCreator.prototype={constructor:THREE.MTLLoader.MaterialCreator,setCrossOrigin:function(t){this.crossOrigin=t},setManager:function(t){this.manager=t},setMaterials:function(t){this.materialsInfo=this.convert(t),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(t){if(!this.options)return t;var a={};for(var e in t){var r=t[e],s={};a[e]=s;for(var i in r){var o=!0,n=r[i],p=i.toLowerCase();switch(p){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(n=[n[0]/255,n[1]/255,n[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===n[0]&&0===n[1]&&0===n[2]&&(o=!1)}o&&(s[p]=n)}}return a},preload:function(){for(var t in this.materialsInfo)this.create(t)},getIndex:function(t){return this.nameLookup[t]},getAsArray:function(){var t=0;for(var a in this.materialsInfo)this.materialsArray[t]=this.create(a),this.nameLookup[a]=t,t++;return this.materialsArray},create:function(t){return void 0===this.materials[t]&&this.createMaterial_(t),this.materials[t]},createMaterial_:function(t){function a(t,a){return"string"!=typeof a||""===a?"":/^https?:\/\//i.test(a)?a:t+a}function e(t,e){if(!i[t]){var s=r.getTextureParams(e,i),o=r.loadTexture(a(r.baseUrl,s.url));o.repeat.copy(s.scale),o.offset.copy(s.offset),o.wrapS=r.wrap,o.wrapT=r.wrap,i[t]=o}}var r=this,s=this.materialsInfo[t],i={name:t,side:this.side};for(var o in s){var n=s[o];if(""!==n)switch(o.toLowerCase()){case"kd":i.color=(new THREE.Color).fromArray(n);break;case"ks":i.specular=(new THREE.Color).fromArray(n);break;case"map_kd":e("map",n);break;case"map_ks":e("specularMap",n);break;case"map_bump":case"bump":e("bumpMap",n);break;case"ns":i.shininess=parseFloat(n);break;case"d":n<1&&(i.opacity=n,i.transparent=!0);break;case"Tr":n>0&&(i.opacity=1-n,i.transparent=!0)}}return this.materials[t]=new THREE.MeshPhongMaterial(i),this.materials[t]},getTextureParams:function(t,a){var e,r={scale:new THREE.Vector2(1,1),offset:new THREE.Vector2(0,0)},s=t.split(/\s+/);return e=s.indexOf("-bm"),e>=0&&(a.bumpScale=parseFloat(s[e+1]),s.splice(e,2)),e=s.indexOf("-s"),e>=0&&(r.scale.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),e=s.indexOf("-o"),e>=0&&(r.offset.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),r.url=s.join(" ").trim(),r},loadTexture:function(t,a,e,r,s){var i;if(altspace&&altspace.inClient)i=new THREE.Texture({src:t});else{var o=THREE.Loader.Handlers.get(t),n=void 0!==this.manager?this.manager:THREE.DefaultLoadingManager;null===o&&(o=new THREE.TextureLoader(n)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin),i=o.load(t,e,r,s)}return void 0!==a&&(i.mapping=a),i}}; THREE.OBJLoader=function(e){this.manager=void 0!==e?e:THREE.DefaultLoadingManager,this.materials=null,this.regexp={vertex_pattern:/^v\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,normal_pattern:/^vn\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,uv_pattern:/^vt\s+([\d|\.|\+|\-|e|E]+)\s+([\d|\.|\+|\-|e|E]+)/,face_vertex:/^f\s+(-?\d+)\s+(-?\d+)\s+(-?\d+)(?:\s+(-?\d+))?/,face_vertex_uv:/^f\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+))?/,face_vertex_uv_normal:/^f\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)\s+(-?\d+)\/(-?\d+)\/(-?\d+)(?:\s+(-?\d+)\/(-?\d+)\/(-?\d+))?/,face_vertex_normal:/^f\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)\s+(-?\d+)\/\/(-?\d+)(?:\s+(-?\d+)\/\/(-?\d+))?/,object_pattern:/^[og]\s*(.+)?/,smoothing_pattern:/^s\s+(\d+|on|off)/,material_library_pattern:/^mtllib /,material_use_pattern:/^usemtl /}},THREE.OBJLoader.prototype={constructor:THREE.OBJLoader,load:function(e,t,r,a){var i=this,s=new THREE.FileLoader(i.manager);s.setPath(this.path),s.load(e,function(e){t(i.parse(e))},r,a)},setPath:function(e){this.path=e},setMaterials:function(e){this.materials=e},_createParserState:function(){var e={objects:[],object:{},vertices:[],normals:[],uvs:[],materialLibraries:[],startObject:function(e,t){if(this.object&&this.object.fromDeclaration===!1)return this.object.name=e,void(this.object.fromDeclaration=t!==!1);var r=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:t!==!1,geometry:{vertices:[],normals:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(e,t){var r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);var a={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){var t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(a),a},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){var t=this.currentMaterial();if(t&&t.groupEnd===-1&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(var r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},r&&r.name&&"function"==typeof r.clone){var a=r.clone(0);a.inherited=!0,this.object.materials.push(a)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){var r=parseInt(e,10);return 3*(r>=0?r-1:r+t/3)},parseNormalIndex:function(e,t){var r=parseInt(e,10);return 3*(r>=0?r-1:r+t/3)},parseUVIndex:function(e,t){var r=parseInt(e,10);return 2*(r>=0?r-1:r+t/2)},addVertex:function(e,t,r){var a=this.vertices,i=this.object.geometry.vertices;i.push(a[e+0]),i.push(a[e+1]),i.push(a[e+2]),i.push(a[t+0]),i.push(a[t+1]),i.push(a[t+2]),i.push(a[r+0]),i.push(a[r+1]),i.push(a[r+2])},addVertexLine:function(e){var t=this.vertices,r=this.object.geometry.vertices;r.push(t[e+0]),r.push(t[e+1]),r.push(t[e+2])},addNormal:function(e,t,r){var a=this.normals,i=this.object.geometry.normals;i.push(a[e+0]),i.push(a[e+1]),i.push(a[e+2]),i.push(a[t+0]),i.push(a[t+1]),i.push(a[t+2]),i.push(a[r+0]),i.push(a[r+1]),i.push(a[r+2])},addUV:function(e,t,r){var a=this.uvs,i=this.object.geometry.uvs;i.push(a[e+0]),i.push(a[e+1]),i.push(a[t+0]),i.push(a[t+1]),i.push(a[r+0]),i.push(a[r+1])},addUVLine:function(e){var t=this.uvs,r=this.object.geometry.uvs;r.push(t[e+0]),r.push(t[e+1])},addFace:function(e,t,r,a,i,s,n,o,h,l,d,u){var p,c=this.vertices.length,m=this.parseVertexIndex(e,c),f=this.parseVertexIndex(t,c),v=this.parseVertexIndex(r,c);if(void 0===a?this.addVertex(m,f,v):(p=this.parseVertexIndex(a,c),this.addVertex(m,f,p),this.addVertex(f,v,p)),void 0!==i){var g=this.uvs.length;m=this.parseUVIndex(i,g),f=this.parseUVIndex(s,g),v=this.parseUVIndex(n,g),void 0===a?this.addUV(m,f,v):(p=this.parseUVIndex(o,g),this.addUV(m,f,p),this.addUV(f,v,p))}if(void 0!==h){var x=this.normals.length;m=this.parseNormalIndex(h,x),f=h===l?m:this.parseNormalIndex(l,x),v=h===d?m:this.parseNormalIndex(d,x),void 0===a?this.addNormal(m,f,v):(p=this.parseNormalIndex(u,x),this.addNormal(m,f,p),this.addNormal(f,v,p))}},addLineGeometry:function(e,t){this.object.geometry.type="Line";for(var r=this.vertices.length,a=this.uvs.length,i=0,s=e.length;i0?V.addAttribute("normal",new THREE.BufferAttribute(new Float32Array(j.normals),3)):V.computeVertexNormals(),j.uvs.length>0&&V.addAttribute("uv",new THREE.BufferAttribute(new Float32Array(j.uvs),2));for(var w=[],H=0,R=y.length;H1){for(var H=0,R=y.length;H0?t:"visual_scene0"]}return null}function n(){var e=Le.querySelectorAll("instance_kinematics_model")[0];if(e){var t=e.getAttribute("url").replace(/^#/,"");return Oe[t.length>0?t:"kinematics_model0"]}return null}function o(){He=[],h(Ve)}function h(e){var t=Ae.getChildById(e.colladaId,!0),i=null;if(t&&t.keys){i={fps:60,hierarchy:[{node:t,keys:t.keys,sids:t.sids}],node:e,name:"animation_"+e.name,length:0},He.push(i);for(var s=0,r=t.keys.length;s=0){var n=t.invBindMatrices[r];s.invBindMatrix=n,s.skinningMatrix=new THREE.Matrix4,s.skinningMatrix.multiplyMatrices(s.world,n),s.animatrix=new THREE.Matrix4,s.animatrix.copy(s.localworld),s.weights=[];for(var a=0;aa.limits.max||i1)for(C=new THREE.MultiMaterial(w),a=0;a0?(C.morphTargets=!0,C.skinning=!1):(C.morphTargets=!1,C.skinning=!0),A=new THREE.SkinnedMesh(H,C,(!1)),A.name="skin_"+qe.length,qe.push(A)):void 0!==s?(c(H,s),C.morphTargets=!0,A=new THREE.Mesh(H,C),A.name="morph_"+Ie.length,Ie.push(A)):A=H.isLineStrip===!0?new THREE.Line(H):new THREE.Mesh(H,C),n.add(A)}}for(r=0;rt)break}return i}function N(e,t){for(var i=-1,s=0,r=e.length;s=t&&(i=s)}return i}function k(e,t,i,s){var r=E(e,s,i?i-1:0),a=T(e,s,i+1);if(r&&a){var n,o=(t.time-r.time)/(a.time-r.time),h=r.getTarget(s),l=a.getTarget(s).data,c=h.data;if("matrix"===h.type)n=c;else if(c.length){n=[];for(var d=0;d=0?i:i+e.length;i>=0;i--){var s=e[i];if(s.hasTarget(t))return s}return null}function R(){this.id="",this.init_from=""}function _(){this.id="",this.name="",this.type="",this.skin=null,this.morph=null}function A(){this.method=null,this.source=null,this.targets=null,this.weights=null}function C(){this.source="",this.bindShapeMatrix=null,this.invBindMatrices=[],this.joints=[],this.weights=[]}function H(){this.id="",this.name="",this.nodes=[],this.scene=new THREE.Group}function M(){this.id="",this.name="",this.sid="",this.nodes=[],this.controllers=[],this.transforms=[],this.geometries=[],this.channels=[],this.matrix=new THREE.Matrix4}function j(){this.sid="",this.type="",this.data=[],this.obj=null}function O(){this.url="",this.skeleton=[],this.instance_material=[]}function S(){this.symbol="",this.target=""}function I(){this.url="",this.instance_material=[]}function q(){this.id="",this.mesh=null}function L(e){this.geometry=e.id,this.primitives=[],this.vertices=null,this.geometry3js=null}function V(){this.material="",this.count=0,this.inputs=[],this.vcount=null,this.p=[],this.geometry=new THREE.Geometry}function X(){V.call(this),this.vcount=[]}function Y(){V.call(this),this.vcount=1}function Z(){V.call(this),this.vcount=3}function z(){this.source="",this.count=0,this.stride=0,this.params=[]}function F(){this.input={}}function U(){this.semantic="",this.offset=0,this.source="",this.set=0}function B(e){this.id=e,this.type=null}function D(){this.id="",this.name="",this.instance_effect=null}function P(){this.color=new THREE.Color,this.color.setRGB(Math.random(),Math.random(),Math.random()),this.color.a=1,this.texture=null,this.texcoord=null,this.texOpts=null}function G(e,t){this.type=e,this.effect=t,this.material=null}function J(e){this.effect=e,this.init_from=null,this.format=null}function W(e){this.effect=e,this.source=null,this.wrap_s=null,this.wrap_t=null,this.minfilter=null,this.magfilter=null,this.mipfilter=null}function Q(){this.id="",this.name="",this.shader=null,this.surface={},this.sampler={}}function $(){this.url=""}function K(){this.id="",this.name="",this.source={},this.sampler=[],this.channel=[]}function ee(e){this.animation=e,this.source="",this.target="",this.fullSid=null,this.sid=null,this.dotSyntax=null,this.arrSyntax=null,this.arrIndices=null,this.member=null}function te(e){this.id="",this.animation=e,this.inputs=[],this.input=null,this.output=null,this.strideOut=null,this.interpolation=null,this.startTime=null,this.endTime=null,this.duration=0}function ie(e){this.targets=[],this.time=e}function se(){this.id="",this.name="",this.technique=""}function re(){this.url=""}function ae(){this.id="",this.name="",this.technique=""}function ne(){this.url=""}function oe(){this.id="",this.name="",this.joints=[],this.links=[]}function he(){this.sid="",this.name="",this.axis=new THREE.Vector3,this.limits={min:0,max:0},this.type="",this.static=!1,this.zeroPosition=0,this.middlePosition=0}function le(){this.sid="",this.name="",this.transforms=[],this.attachments=[]}function ce(){this.joint="",this.transforms=[],this.links=[]}function de(e){var t=e.getAttribute("id");return void 0!=Ye[t]?Ye[t]:(Ye[t]=new B(t).parse(e),Ye[t])}function pe(e){for(var t=me(e),i=[],s=0,r=t.length;s0?ge(e).split(/\s+/):[]}function ge(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")}function ve(e,t,i){return e.hasAttribute(t)?parseInt(e.getAttribute(t),10):i}function ye(e,t){if("string"!=typeof e||""===e)return"";if(/^(https?:)?\/\//i.test(e))return e;if(/^data:.*,.*$/i.test(e))return e;var i=new URL((t||"")+e,location.href.substring(0,location.href.lastIndexOf("/")+1));return i.toString()}function be(e,t){var i=new THREE.ImageLoader;i.load(t,function(t){e.image=t,e.needsUpdate=!0})}function we(e,t){e.doubleSided=!1;var i=t.querySelectorAll("extra double_sided")[0];i&&i&&1===parseInt(i.textContent,10)&&(e.doubleSided=!0)}function xe(){if(We.convertUpAxis!==!0||$e===We.upAxis)Ke=null;else switch($e){case"X":Ke="Y"===We.upAxis?"XtoY":"XtoZ";break;case"Y":Ke="X"===We.upAxis?"YtoX":"YtoZ";break;case"Z":Ke="X"===We.upAxis?"ZtoX":"ZtoY"}}function Ne(e,t){if(We.convertUpAxis===!0&&$e!==We.upAxis)switch(Ke){case"XtoY":var i=e[0];e[0]=t*e[1],e[1]=i;break;case"XtoZ":var i=e[2];e[2]=e[1],e[1]=e[0],e[0]=i;break;case"YtoX":var i=e[0];e[0]=e[1],e[1]=t*i;break;case"YtoZ":var i=e[1];e[1]=t*e[2],e[2]=i;break;case"ZtoX":var i=e[0];e[0]=e[1],e[1]=e[2],e[2]=i;break;case"ZtoY":var i=e[1];e[1]=e[2],e[2]=t*i}}function ke(e,t){if(We.convertUpAxis!==!0||$e===We.upAxis)return t;switch(e){case"X":t="XtoY"===Ke?t*-1:t;break;case"Y":t="YtoZ"===Ke||"YtoX"===Ke?t*-1:t;break;case"Z":t="ZtoY"===Ke?t*-1:t}return t}function Te(e,t){var i=[e[t],e[t+1],e[t+2]];return Ne(i,-1),new THREE.Vector3(i[0],i[1],i[2])}function Ee(e){if(We.convertUpAxis){var t=[e[0],e[4],e[8]];Ne(t,-1),e[0]=t[0],e[4]=t[1],e[8]=t[2],t=[e[1],e[5],e[9]],Ne(t,-1),e[1]=t[0],e[5]=t[1],e[9]=t[2],t=[e[2],e[6],e[10]],Ne(t,-1),e[2]=t[0],e[6]=t[1],e[10]=t[2],t=[e[0],e[1],e[2]],Ne(t,-1),e[0]=t[0],e[1]=t[1],e[2]=t[2],t=[e[4],e[5],e[6]],Ne(t,-1),e[4]=t[0],e[5]=t[1],e[6]=t[2],t=[e[8],e[9],e[10]],Ne(t,-1),e[8]=t[0],e[9]=t[1],e[10]=t[2],t=[e[3],e[7],e[11]],Ne(t,-1),e[3]=t[0],e[7]=t[1],e[11]=t[2]}return(new THREE.Matrix4).set(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])}function Re(e){if(e>-1&&e<3){var t=["X","Y","Z"],i={X:0,Y:1,Z:2};e=_e(t[e]),e=i[e]}return e}function _e(e){if(We.convertUpAxis)switch(e){case"X":switch(Ke){case"XtoY":case"XtoZ":case"YtoX":e="Y";break;case"ZtoX":e="Z"}break;case"Y":switch(Ke){case"XtoY":case"YtoX":case"ZtoX":e="X";break;case"XtoZ":case"YtoZ":case"ZtoY":e="Z"}break;case"Z":switch(Ke){case"XtoZ":e="X";break;case"YtoZ":case"ZtoX":case"ZtoY":e="Y"}}return e}var Ae,Ce,He,Me,je,Oe,Se,Ie,qe,Le=null,Ve=null,Xe=null,Ye={},Ze={},ze={},Fe={},Ue={},Be={},De={},Pe={},Ge={},Je=THREE.SmoothShading,We={centerGeometry:!1,convertUpAxis:!1,subdivideFaces:!0,upAxis:"Y",defaultEnvMap:null},Qe=1,$e="Y",Ke=null;return R.prototype.parse=function(e){this.id=e.getAttribute("id");for(var t=0;t=0,h=n.indexOf("(")>=0;if(o)a=n.split("."),n=a.shift(),s=a.shift();else if(h){i=n.split("("),n=i.shift();for(var l=0;l4&&We.subdivideFaces){var C=N.length?N:new THREE.Color;for(s=1;s4?[E[0],E[k+1],E[k+2]]:4===p?0===k?[E[0],E[1],E[3]]:[E[1].clone(),E[2],E[3].clone()]:[E[0],E[1],E[2]],void 0===t.faceVertexUvs[s]&&(t.faceVertexUvs[s]=[]),t.faceVertexUvs[s].push(R);else console.log("dropped face with vcount "+p+" for geometry with id: "+t.id);y+=u*p}},V.prototype.setVertices=function(e){for(var t=0;t