fengmap.plugins-compositemarker.min.js
130.3 KB
/**Released Version v3.1.2,BUILD 8,Time 1681293328909. Fengmap Javascript SDK , see: https://www.fengmap.com for details**/
!function(t,i){"object"==typeof exports&&"object"==typeof module?module.exports=i():"function"==typeof define&&define.amd?define([],i):"object"==typeof exports?exports.fengmap=i():t.fengmap=i()}(this,function(){return s={},h.m=n=[function(t,i,n){"use strict";n.r(i);for(var h=[],s=0;s<256;s++)h[s]=(s<16?"0":"")+s.toString(16);var l={DEG2RAD:Math.PI/180,RAD2DEG:180/Math.PI,generateUUID:function(){var t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,n=4294967295*Math.random()|0,s=4294967295*Math.random()|0;return(h[255&t]+h[t>>8&255]+h[t>>16&255]+h[t>>24&255]+"-"+h[255&i]+h[i>>8&255]+"-"+h[i>>16&15|64]+h[i>>24&255]+"-"+h[63&n|128]+h[n>>8&255]+"-"+h[n>>16&255]+h[n>>24&255]+h[255&s]+h[s>>8&255]+h[s>>16&255]+h[s>>24&255]).toUpperCase()},clamp:function(t,i,n){return Math.max(i,Math.min(n,t))},euclideanModulo:function(t,i){return(t%i+i)%i},mapLinear:function(t,i,n,s,h){return s+(t-i)*(h-s)/(n-i)},lerp:function(t,i,n){return(1-n)*t+n*i},smoothstep:function(t,i,n){return t<=i?0:n<=t?1:(t=(t-i)/(n-i))*t*(3-2*t)},smootherstep:function(t,i,n){return t<=i?0:n<=t?1:(t=(t-i)/(n-i))*t*t*(t*(6*t-15)+10)},randInt:function(t,i){return t+Math.floor(Math.random()*(i-t+1))},randFloat:function(t,i){return t+Math.random()*(i-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*l.DEG2RAD},radToDeg:function(t){return t*l.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))},setQuaternionFromProperEuler:function(t,i,n,s,h){var e=Math.cos,r=Math.sin,o=e(n/2),u=r(n/2),a=e((i+s)/2),c=r((i+s)/2),f=e((i-s)/2),n=r((i-s)/2),e=e((s-i)/2),i=r((s-i)/2);"XYX"===h?t.set(o*c,u*f,u*n,o*a):"YZY"===h?t.set(u*n,o*c,u*f,o*a):"ZXZ"===h?t.set(u*f,u*n,o*c,o*a):"XZX"===h?t.set(o*c,u*i,u*e,o*a):"YXY"===h?t.set(u*e,o*c,u*i,o*a):"ZYZ"===h?t.set(u*i,u*e,o*c,o*a):console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order.")}};function e(t,i,n,s){this.e=t||0,this.u=i||0,this.f=n||0,this.v=void 0!==s?s:1}Object.assign(e,{slerp:function(t,i,n,s){return n.copy(t).slerp(i,s)},slerpFlat:function(t,i,n,s,h,e,r){var o=n[s+0],u=n[s+1],a=n[s+2],c=n[s+3],f=h[e+0],l=h[e+1],v=h[e+2],d=h[e+3];c===d&&o===f&&u===l&&a===v||(n=1-r,h=0<=(s=o*f+u*l+a*v+c*d)?1:-1,(e=1-s*s)>Number.EPSILON&&(e=Math.sqrt(e),s=Math.atan2(e,s*h),n=Math.sin(n*s)/e,r=Math.sin(r*s)/e),o=o*n+f*(h=r*h),u=u*n+l*h,a=a*n+v*h,c=c*n+d*h,n===1-r&&(o*=r=1/Math.sqrt(o*o+u*u+a*a+c*c),u*=r,a*=r,c*=r)),t[i]=o,t[i+1]=u,t[i+2]=a,t[i+3]=c}}),Object.defineProperties(e.prototype,{x:{get:function(){return this.e},set:function(t){this.e=t,this.M()}},y:{get:function(){return this.u},set:function(t){this.u=t,this.M()}},z:{get:function(){return this.f},set:function(t){this.f=t,this.M()}},w:{get:function(){return this.v},set:function(t){this.v=t,this.M()}}}),Object.assign(e.prototype,{isQuaternion:!0,set:function(t,i,n,s){return this.e=t,this.u=i,this.f=n,this.v=s,this.M(),this},clone:function(){return new this.constructor(this.e,this.u,this.f,this.v)},copy:function(t){return this.e=t.x,this.u=t.y,this.f=t.z,this.v=t.w,this.M(),this},setFromEuler:function(t,i){if(!t||!t.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");var n=t.e,s=t.u,h=t.f,e=t.order,r=Math.cos,o=Math.sin,u=r(n/2),t=r(s/2),r=r(h/2),n=o(n/2),s=o(s/2),h=o(h/2);return"XYZ"===e?(this.e=n*t*r+u*s*h,this.u=u*s*r-n*t*h,this.f=u*t*h+n*s*r,this.v=u*t*r-n*s*h):"YXZ"===e?(this.e=n*t*r+u*s*h,this.u=u*s*r-n*t*h,this.f=u*t*h-n*s*r,this.v=u*t*r+n*s*h):"ZXY"===e?(this.e=n*t*r-u*s*h,this.u=u*s*r+n*t*h,this.f=u*t*h+n*s*r,this.v=u*t*r-n*s*h):"ZYX"===e?(this.e=n*t*r-u*s*h,this.u=u*s*r+n*t*h,this.f=u*t*h-n*s*r,this.v=u*t*r+n*s*h):"YZX"===e?(this.e=n*t*r+u*s*h,this.u=u*s*r+n*t*h,this.f=u*t*h-n*s*r,this.v=u*t*r-n*s*h):"XZY"===e&&(this.e=n*t*r-u*s*h,this.u=u*s*r-n*t*h,this.f=u*t*h+n*s*r,this.v=u*t*r+n*s*h),!1!==i&&this.M(),this},setFromAxisAngle:function(t,i){var n=i/2,i=Math.sin(n);return this.e=t.x*i,this.u=t.y*i,this.f=t.z*i,this.v=Math.cos(n),this.M(),this},setFromRotationMatrix:function(t){var i,n=t.elements,s=n[0],h=n[4],e=n[8],r=n[1],o=n[5],u=n[9],a=n[2],c=n[6],t=n[10],n=s+o+t;return 0<n?(i=.5/Math.sqrt(n+1),this.v=.25/i,this.e=(c-u)*i,this.u=(e-a)*i,this.f=(r-h)*i):o<s&&t<s?(i=2*Math.sqrt(1+s-o-t),this.v=(c-u)/i,this.e=.25*i,this.u=(h+r)/i,this.f=(e+a)/i):t<o?(i=2*Math.sqrt(1+o-s-t),this.v=(e-a)/i,this.e=(h+r)/i,this.u=.25*i,this.f=(u+c)/i):(i=2*Math.sqrt(1+t-s-o),this.v=(r-h)/i,this.e=(e+a)/i,this.u=(u+c)/i,this.f=.25*i),this.M(),this},setFromUnitVectors:function(t,i){var n=t.dot(i)+1;return n<1e-6?(n=0,Math.abs(t.x)>Math.abs(t.z)?(this.e=-t.y,this.u=t.x,this.f=0):(this.e=0,this.u=-t.z,this.f=t.y)):(this.e=t.y*i.z-t.z*i.y,this.u=t.z*i.x-t.x*i.z,this.f=t.x*i.y-t.y*i.x),this.v=n,this.normalize()},angleTo:function(t){return 2*Math.acos(Math.abs(l.clamp(this.dot(t),-1,1)))},rotateTowards:function(t,i){var n=this.angleTo(t);if(0===n)return this;n=Math.min(1,i/n);return this.slerp(t,n),this},inverse:function(){return this.conjugate()},conjugate:function(){return this.e*=-1,this.u*=-1,this.f*=-1,this.M(),this},dot:function(t){return this.e*t.e+this.u*t.u+this.f*t.f+this.v*t.v},lengthSq:function(){return this.e*this.e+this.u*this.u+this.f*this.f+this.v*this.v},length:function(){return Math.sqrt(this.e*this.e+this.u*this.u+this.f*this.f+this.v*this.v)},normalize:function(){var t=this.length();return 0===t?(this.e=0,this.u=0,this.f=0,this.v=1):(this.e=this.e*(t=1/t),this.u=this.u*t,this.f=this.f*t,this.v=this.v*t),this.M(),this},multiply:function(t,i){return void 0!==i?(console.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(t,i)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,i){var n=t.e,s=t.u,h=t.f,e=t.v,r=i.e,o=i.u,t=i.f,i=i.v;return this.e=n*i+e*r+s*t-h*o,this.u=s*i+e*o+h*r-n*t,this.f=h*i+e*t+n*o-s*r,this.v=e*i-n*r-s*o-h*t,this.M(),this},slerp:function(t,i){if(0===i)return this;if(1===i)return this.copy(t);var n=this.e,s=this.u,h=this.f,e=this.v,r=e*t.v+n*t.e+s*t.u+h*t.f;if(r<0?(this.v=-t.v,this.e=-t.e,this.u=-t.u,this.f=-t.f,r=-r):this.copy(t),1<=r)return this.v=e,this.e=n,this.u=s,this.f=h,this;t=1-r*r;if(t<=Number.EPSILON){var o=1-i;return this.v=o*e+i*this.v,this.e=o*n+i*this.e,this.u=o*s+i*this.u,this.f=o*h+i*this.f,this.normalize(),this.M(),this}o=Math.sqrt(t),t=Math.atan2(o,r),r=Math.sin((1-i)*t)/o,o=Math.sin(i*t)/o;return this.v=e*r+this.v*o,this.e=n*r+this.e*o,this.u=s*r+this.u*o,this.f=h*r+this.f*o,this.M(),this},equals:function(t){return t.e===this.e&&t.u===this.u&&t.f===this.f&&t.v===this.v},fromArray:function(t,i){return this.e=t[i=void 0===i?0:i],this.u=t[i+1],this.f=t[i+2],this.v=t[i+3],this.M(),this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.e,t[i+1]=this.u,t[i+2]=this.f,t[i+3]=this.v,t},fromBufferAttribute:function(t,i){return this.e=t.getX(i),this.u=t.getY(i),this.f=t.getZ(i),this.v=t.getW(i),this},k:function(t){return this.M=t,this},M:function(){}});var r=new M,o=new e;function M(t,i,n){this.x=t||0,this.y=i||0,this.z=n||0}function P(t,i){this.x=t||0,this.y=i||0}Object.assign(M.prototype,{isVector3:!0,set:function(t,i,n){return this.x=t,this.y=i,this.z=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,i){switch(t){case 0:this.x=i;break;case 1:this.y=i;break;case 2:this.z=i;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,i){return void 0!==i?(console.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,i)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,i){return this.x=t.x+i.x,this.y=t.y+i.y,this.z=t.z+i.z,this},addScaledVector:function(t,i){return this.x+=t.x*i,this.y+=t.y*i,this.z+=t.z*i,this},sub:function(t,i){return void 0!==i?(console.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,i)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,i){return this.x=t.x-i.x,this.y=t.y-i.y,this.z=t.z-i.z,this},multiply:function(t,i){return void 0!==i?(console.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(t,i)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,i){return this.x=t.x*i.x,this.y=t.y*i.y,this.z=t.z*i.z,this},applyEuler:function(t){return t&&t.isEuler||console.error("THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order."),this.applyQuaternion(o.setFromEuler(t))},applyAxisAngle:function(t,i){return this.applyQuaternion(o.setFromAxisAngle(t,i))},applyMatrix3:function(t){var i=this.x,n=this.y,s=this.z,t=t.elements;return this.x=t[0]*i+t[3]*n+t[6]*s,this.y=t[1]*i+t[4]*n+t[7]*s,this.z=t[2]*i+t[5]*n+t[8]*s,this},applyNormalMatrix:function(t){return this.applyMatrix3(t).normalize()},applyMatrix4:function(t){var i=this.x,n=this.y,s=this.z,h=t.elements,t=1/(h[3]*i+h[7]*n+h[11]*s+h[15]);return this.x=(h[0]*i+h[4]*n+h[8]*s+h[12])*t,this.y=(h[1]*i+h[5]*n+h[9]*s+h[13])*t,this.z=(h[2]*i+h[6]*n+h[10]*s+h[14])*t,this},applyQuaternion:function(t){var i=this.x,n=this.y,s=this.z,h=t.x,e=t.y,r=t.z,o=t.w,u=o*i+e*s-r*n,a=o*n+r*i-h*s,t=o*s+h*n-e*i,s=-h*i-e*n-r*s;return this.x=u*o+s*-h+a*-r-t*-e,this.y=a*o+s*-e+t*-h-u*-r,this.z=t*o+s*-r+u*-e-a*-h,this},project:function(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)},unproject:function(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)},transformDirection:function(t){var i=this.x,n=this.y,s=this.z,t=t.elements;return this.x=t[0]*i+t[4]*n+t[8]*s,this.y=t[1]*i+t[5]*n+t[9]*s,this.z=t[2]*i+t[6]*n+t[10]*s,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,i){return this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y)),this.z=Math.max(t.z,Math.min(i.z,this.z)),this},clampScalar:function(t,i){return this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y)),this.z=Math.max(t,Math.min(i,this.z)),this},clampLength:function(t,i){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(i,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,i){return this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i,this.z+=(t.z-this.z)*i,this},lerpVectors:function(t,i,n){return this.subVectors(i,t).multiplyScalar(n).add(t)},cross:function(t,i){return void 0!==i?(console.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(t,i)):this.crossVectors(this,t)},crossVectors:function(t,i){var n=t.x,s=t.y,h=t.z,e=i.x,t=i.y,i=i.z;return this.x=s*i-h*t,this.y=h*e-n*i,this.z=n*t-s*e,this},projectOnVector:function(t){var i=t.lengthSq();if(0===i)return this.set(0,0,0);i=t.dot(this)/i;return this.copy(t).multiplyScalar(i)},projectOnPlane:function(t){return r.copy(this).projectOnVector(t),this.sub(r)},reflect:function(t){return this.sub(r.copy(t).multiplyScalar(2*this.dot(t)))},angleTo:function(t){var i=Math.sqrt(this.lengthSq()*t.lengthSq());if(0===i)return Math.PI/2;i=this.dot(t)/i;return Math.acos(l.clamp(i,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var i=this.x-t.x,n=this.y-t.y,t=this.z-t.z;return i*i+n*n+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)},setFromSphericalCoords:function(t,i,n){var s=Math.sin(i)*t;return this.x=s*Math.sin(n),this.y=Math.cos(i)*t,this.z=s*Math.cos(n),this},setFromCylindrical:function(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)},setFromCylindricalCoords:function(t,i,n){return this.x=t*Math.sin(i),this.y=n,this.z=t*Math.cos(i),this},setFromMatrixPosition:function(t){t=t.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this},setFromMatrixScale:function(t){var i=this.setFromMatrixColumn(t,0).length(),n=this.setFromMatrixColumn(t,1).length(),t=this.setFromMatrixColumn(t,2).length();return this.x=i,this.y=n,this.z=t,this},setFromMatrixColumn:function(t,i){return this.fromArray(t.elements,4*i)},setFromMatrix3Column:function(t,i){return this.fromArray(t.elements,3*i)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,i){return this.x=t[i=void 0===i?0:i],this.y=t[i+1],this.z=t[i+2],this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.x,t[i+1]=this.y,t[i+2]=this.z,t},fromBufferAttribute:function(t,i,n){return void 0!==n&&console.warn("THREE.Vector3: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(i),this.y=t.getY(i),this.z=t.getZ(i),this}}),Object.defineProperties(P.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(P.prototype,{isVector2:!0,set:function(t,i){return this.x=t,this.y=i,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,i){switch(t){case 0:this.x=i;break;case 1:this.y=i;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,i){return void 0!==i?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,i)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,i){return this.x=t.x+i.x,this.y=t.y+i.y,this},addScaledVector:function(t,i){return this.x+=t.x*i,this.y+=t.y*i,this},sub:function(t,i){return void 0!==i?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,i)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,i){return this.x=t.x-i.x,this.y=t.y-i.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var i=this.x,n=this.y,t=t.elements;return this.x=t[0]*i+t[3]*n+t[6],this.y=t[1]*i+t[4]*n+t[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,i){return this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y)),this},clampScalar:function(t,i){return this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y)),this},clampLength:function(t,i){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(i,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},cross:function(t){return this.x*t.y-this.y*t.x},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){return Math.atan2(-this.y,-this.x)+Math.PI},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var i=this.x-t.x,t=this.y-t.y;return i*i+t*t},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,i){return this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i,this},lerpVectors:function(t,i,n){return this.subVectors(i,t).multiplyScalar(n).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,i){return this.x=t[i=void 0===i?0:i],this.y=t[i+1],this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.x,t[i+1]=this.y,t},fromBufferAttribute:function(t,i,n){return void 0!==n&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(i),this.y=t.getY(i),this},rotateAround:function(t,i){var n=Math.cos(i),s=Math.sin(i),h=this.x-t.x,i=this.y-t.y;return this.x=h*n-i*s+t.x,this.y=h*s+i*n+t.y,this}});var u=[new M,new M,new M,new M,new M,new M,new M,new M],a=new M,c=new k,f=new M,v=new M,d=new M,p=new M,w=new M,m=new M,y=new M,g=new M,b=new M,E=new M;function k(t,i){this.min=void 0!==t?t:new M(1/0,1/0,1/0),this.max=void 0!==i?i:new M(-1/0,-1/0,-1/0)}function T(t,i,n,s,h){for(var e=0,r=t.length-3;e<=r;e+=3){E.fromArray(t,e);var o=h.x*Math.abs(E.x)+h.y*Math.abs(E.y)+h.z*Math.abs(E.z),u=i.dot(E),a=n.dot(E),c=s.dot(E);if(Math.max(-Math.max(u,a,c),Math.min(u,a,c))>o)return!1}return!0}Object.assign(k.prototype,{isBox3:!0,set:function(t,i){return this.min.copy(t),this.max.copy(i),this},setFromArray:function(t){for(var i=1/0,n=1/0,s=1/0,h=-1/0,e=-1/0,r=-1/0,o=0,u=t.length;o<u;o+=3){var a=t[o],c=t[o+1],f=t[o+2];a<i&&(i=a),c<n&&(n=c),f<s&&(s=f),h<a&&(h=a),e<c&&(e=c),r<f&&(r=f)}return this.min.set(i,n,s),this.max.set(h,e,r),this},setFromBufferAttribute:function(t){for(var i=1/0,n=1/0,s=1/0,h=-1/0,e=-1/0,r=-1/0,o=0,u=t.count;o<u;o++){var a=t.getX(o),c=t.getY(o),f=t.getZ(o);a<i&&(i=a),c<n&&(n=c),f<s&&(s=f),h<a&&(h=a),e<c&&(e=c),r<f&&(r=f)}return this.min.set(i,n,s),this.max.set(h,e,r),this},setFromPoints:function(t){this.makeEmpty();for(var i=0,n=t.length;i<n;i++)this.expandByPoint(t[i]);return this},setFromCenterAndSize:function(t,i){i=a.copy(i).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this},setFromObject:function(t){return this.makeEmpty(),this.expandByObject(t)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.min.copy(t.min),this.max.copy(t.max),this},makeEmpty:function(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this},isEmpty:function(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z},getCenter:function(t){return void 0===t&&(console.warn("THREE.Box3: .getCenter() target is now required"),t=new M),this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)},getSize:function(t){return void 0===t&&(console.warn("THREE.Box3: .getSize() target is now required"),t=new M),this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)},expandByPoint:function(t){return this.min.min(t),this.max.max(t),this},expandByVector:function(t){return this.min.sub(t),this.max.add(t),this},expandByScalar:function(t){return this.min.addScalar(-t),this.max.addScalar(t),this},expandByObject:function(t){t.updateWorldMatrix(!1,!1);var i=t.geometry;void 0!==i&&(null===i.boundingBox&&i.computeBoundingBox(),c.copy(i.boundingBox),c.applyMatrix4(t.matrixWorld),this.union(c));for(var n=t.children,s=0,h=n.length;s<h;s++)this.expandByObject(n[s]);return this},containsPoint:function(t){return!(t.x<this.min.x||t.x>this.max.x||t.y<this.min.y||t.y>this.max.y||t.z<this.min.z||t.z>this.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,i){return void 0===i&&(console.warn("THREE.Box3: .getParameter() target is now required"),i=new M),i.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.x<this.min.x||t.min.x>this.max.x||t.max.y<this.min.y||t.min.y>this.max.y||t.max.z<this.min.z||t.min.z>this.max.z)},intersectsSphere:function(t){return this.clampPoint(t.center,a),a.distanceToSquared(t.center)<=t.radius*t.radius},intersectsPlane:function(t){var i,n=0<t.normal.x?(i=t.normal.x*this.min.x,t.normal.x*this.max.x):(i=t.normal.x*this.max.x,t.normal.x*this.min.x);return 0<t.normal.y?(i+=t.normal.y*this.min.y,n+=t.normal.y*this.max.y):(i+=t.normal.y*this.max.y,n+=t.normal.y*this.min.y),0<t.normal.z?(i+=t.normal.z*this.min.z,n+=t.normal.z*this.max.z):(i+=t.normal.z*this.max.z,n+=t.normal.z*this.min.z),i<=-t.constant&&n>=-t.constant},intersectsTriangle:function(t){if(this.isEmpty())return!1;this.getCenter(y),g.subVectors(this.max,y),f.subVectors(t.a,y),v.subVectors(t.b,y),d.subVectors(t.c,y),p.subVectors(v,f),w.subVectors(d,v),m.subVectors(f,d);t=[0,-p.z,p.y,0,-w.z,w.y,0,-m.z,m.y,p.z,0,-p.x,w.z,0,-w.x,m.z,0,-m.x,-p.y,p.x,0,-w.y,w.x,0,-m.y,m.x,0];return!!T(t,f,v,d,g)&&(!!T(t=[1,0,0,0,1,0,0,0,1],f,v,d,g)&&(b.crossVectors(p,w),T(t=[b.x,b.y,b.z],f,v,d,g)))},clampPoint:function(t,i){return void 0===i&&(console.warn("THREE.Box3: .clampPoint() target is now required"),i=new M),i.copy(t).clamp(this.min,this.max)},distanceToPoint:function(t){return a.copy(t).clamp(this.min,this.max).sub(t).length()},getBoundingSphere:function(t){return void 0===t&&console.error("THREE.Box3: .getBoundingSphere() target is now required"),this.getCenter(t.center),t.radius=.5*this.getSize(a).length(),t},intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(t){return this.isEmpty()||(u[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),u[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),u[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),u[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),u[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),u[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),u[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),u[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(u)),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}});var x=new k;function O(t,i){this.center=void 0!==t?t:new M,this.radius=void 0!==i?i:0}Object.assign(O.prototype,{set:function(t,i){return this.center.copy(t),this.radius=i,this},setFromPoints:function(t,i){var n=this.center;void 0!==i?n.copy(i):x.setFromPoints(t).getCenter(n);for(var s=0,h=0,e=t.length;h<e;h++)s=Math.max(s,n.distanceToSquared(t[h]));return this.radius=Math.sqrt(s),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.center.copy(t.center),this.radius=t.radius,this},empty:function(){return this.radius<=0},containsPoint:function(t){return t.distanceToSquared(this.center)<=this.radius*this.radius},distanceToPoint:function(t){return t.distanceTo(this.center)-this.radius},intersectsSphere:function(t){var i=this.radius+t.radius;return t.center.distanceToSquared(this.center)<=i*i},intersectsBox:function(t){return t.intersectsSphere(this)},intersectsPlane:function(t){return Math.abs(t.distanceToPoint(this.center))<=this.radius},clampPoint:function(t,i){var n=this.center.distanceToSquared(t);return void 0===i&&(console.warn("THREE.Sphere: .clampPoint() target is now required"),i=new M),i.copy(t),n>this.radius*this.radius&&(i.sub(this.center).normalize(),i.multiplyScalar(this.radius).add(this.center)),i},getBoundingBox:function(t){return void 0===t&&(console.warn("THREE.Sphere: .getBoundingBox() target is now required"),t=new k),t.set(this.center,this.center),t.expandByScalar(this.radius),t},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}});var R=new M,A=new M,j=new M,S=new M,H=new M,B=new M,F=new M;function C(t,i){this.origin=void 0!==t?t:new M,this.direction=void 0!==i?i:new M(0,0,-1)}Object.assign(C.prototype,{set:function(t,i){return this.origin.copy(t),this.direction.copy(i),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this},at:function(t,i){return void 0===i&&(console.warn("THREE.Ray: .at() target is now required"),i=new M),i.copy(this.direction).multiplyScalar(t).add(this.origin)},lookAt:function(t){return this.direction.copy(t).sub(this.origin).normalize(),this},recast:function(t){return this.origin.copy(this.at(t,R)),this},closestPointToPoint:function(t,i){void 0===i&&(console.warn("THREE.Ray: .closestPointToPoint() target is now required"),i=new M),i.subVectors(t,this.origin);t=i.dot(this.direction);return t<0?i.copy(this.origin):i.copy(this.direction).multiplyScalar(t).add(this.origin)},distanceToPoint:function(t){return Math.sqrt(this.distanceSqToPoint(t))},distanceSqToPoint:function(t){var i=R.subVectors(t,this.origin).dot(this.direction);return i<0?this.origin.distanceToSquared(t):(R.copy(this.direction).multiplyScalar(i).add(this.origin),R.distanceToSquared(t))},distanceSqToSegment:function(t,i,n,s){A.copy(t).add(i).multiplyScalar(.5),j.copy(i).sub(t).normalize(),S.copy(this.origin).sub(A);var h,e,r=.5*t.distanceTo(i),o=-this.direction.dot(j),u=S.dot(this.direction),a=-S.dot(j),c=S.lengthSq(),t=Math.abs(1-o*o);return c=0<t?(e=o*u-a,i=r*t,0<=(h=o*a-u)?-i<=e?e<=i?(h*=t=1/t)*(h+o*(e*=t)+2*u)+e*(o*h+e+2*a)+c:(e=r,-(h=Math.max(0,-(o*e+u)))*h+e*(e+2*a)+c):(e=-r,-(h=Math.max(0,-(o*e+u)))*h+e*(e+2*a)+c):e<=-i?-(h=Math.max(0,-(-o*r+u)))*h+(e=0<h?-r:Math.min(Math.max(-r,-a),r))*(e+2*a)+c:e<=i?(h=0,(e=Math.min(Math.max(-r,-a),r))*(e+2*a)+c):-(h=Math.max(0,-(o*r+u)))*h+(e=0<h?r:Math.min(Math.max(-r,-a),r))*(e+2*a)+c):(e=0<o?-r:r,-(h=Math.max(0,-(o*e+u)))*h+e*(e+2*a)+c),n&&n.copy(this.direction).multiplyScalar(h).add(this.origin),s&&s.copy(j).multiplyScalar(e).add(A),c},intersectSphere:function(t,i){R.subVectors(t.center,this.origin);var n=R.dot(this.direction),s=R.dot(R)-n*n,t=t.radius*t.radius;if(t<s)return null;t=Math.sqrt(t-s),s=n-t,t=n+t;return s<0&&t<0?null:s<0?this.at(t,i):this.at(s,i)},intersectsSphere:function(t){return this.distanceSqToPoint(t.center)<=t.radius*t.radius},distanceToPlane:function(t){var i=t.normal.dot(this.direction);if(0===i)return 0===t.distanceToPoint(this.origin)?0:null;i=-(this.origin.dot(t.normal)+t.constant)/i;return 0<=i?i:null},intersectPlane:function(t,i){t=this.distanceToPlane(t);return null===t?null:this.at(t,i)},intersectsPlane:function(t){var i=t.distanceToPoint(this.origin);return 0===i||t.normal.dot(this.direction)*i<0},intersectBox:function(t,i){var n,s,h,e=1/this.direction.x,r=1/this.direction.y,o=1/this.direction.z,u=this.origin,e=0<=e?(n=(t.min.x-u.x)*e,(t.max.x-u.x)*e):(n=(t.max.x-u.x)*e,(t.min.x-u.x)*e),r=0<=r?(s=(t.min.y-u.y)*r,(t.max.y-u.y)*r):(s=(t.max.y-u.y)*r,(t.min.y-u.y)*r);return r<n||e<s?null:((r<e||e!=e)&&(e=r),(o=0<=o?(h=(t.min.z-u.z)*o,(t.max.z-u.z)*o):(h=(t.max.z-u.z)*o,(t.min.z-u.z)*o))<(n=n<s||n!=n?s:n)||e<h?null:((n<h||n!=n)&&(n=h),(e=o<e||e!=e?o:e)<0?null:this.at(0<=n?n:e,i)))},intersectsBox:function(t){return null!==this.intersectBox(t,R)},intersectTriangle:function(t,i,n,s,h){H.subVectors(i,t),B.subVectors(n,t),F.crossVectors(H,B);n=this.direction.dot(F);if(0<n){if(s)return null;e=1}else{if(!(n<0))return null;e=-1,n=-n}S.subVectors(this.origin,t);s=e*this.direction.dot(B.crossVectors(S,B));if(s<0)return null;t=e*this.direction.dot(H.cross(S));if(t<0)return null;if(n<s+t)return null;var e=-e*S.dot(F);return e<0?null:this.at(e/n,h)},applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}});var V=new M,q=new Y,I=new M(0,0,0),U=new M(1,1,1),N=new M,Z=new M,X=new M;function Y(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function D(){}Object.assign(Y.prototype,{isMatrix4:!0,set:function(t,i,n,s,h,e,r,o,u,a,c,f,l,v,d,p){var M=this.elements;return M[0]=t,M[4]=i,M[8]=n,M[12]=s,M[1]=h,M[5]=e,M[9]=r,M[13]=o,M[2]=u,M[6]=a,M[10]=c,M[14]=f,M[3]=l,M[7]=v,M[11]=d,M[15]=p,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new Y).fromArray(this.elements)},copy:function(t){var i=this.elements,t=t.elements;return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=t[12],i[13]=t[13],i[14]=t[14],i[15]=t[15],this},copyPosition:function(t){var i=this.elements,t=t.elements;return i[12]=t[12],i[13]=t[13],i[14]=t[14],this},extractBasis:function(t,i,n){return t.setFromMatrixColumn(this,0),i.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this},makeBasis:function(t,i,n){return this.set(t.x,i.x,n.x,0,t.y,i.y,n.y,0,t.z,i.z,n.z,0,0,0,0,1),this},extractRotation:function(t){var i=this.elements,n=t.elements,s=1/V.setFromMatrixColumn(t,0).length(),h=1/V.setFromMatrixColumn(t,1).length(),t=1/V.setFromMatrixColumn(t,2).length();return i[0]=n[0]*s,i[1]=n[1]*s,i[2]=n[2]*s,i[3]=0,i[4]=n[4]*h,i[5]=n[5]*h,i[6]=n[6]*h,i[7]=0,i[8]=n[8]*t,i[9]=n[9]*t,i[10]=n[10]*t,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this},makeRotationFromEuler:function(t){t&&t.isEuler||console.error("THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.");var i,n,s,h,e,r,o,u,a,c,f,l,v=this.elements,d=t.x,p=t.y,M=t.z,w=Math.cos(d),m=Math.sin(d),y=Math.cos(p),d=Math.sin(p),p=Math.cos(M),M=Math.sin(M);return"XYZ"===t.order?(e=w*p,r=w*M,o=m*p,u=m*M,v[0]=y*p,v[4]=-y*M,v[8]=d,v[1]=r+o*d,v[5]=e-u*d,v[9]=-m*y,v[2]=u-e*d,v[6]=o+r*d,v[10]=w*y):"YXZ"===t.order?(n=y*M,s=d*p,v[0]=(i=y*p)+(h=d*M)*m,v[4]=s*m-n,v[8]=w*d,v[1]=w*M,v[5]=w*p,v[9]=-m,v[2]=n*m-s,v[6]=h+i*m,v[10]=w*y):"ZXY"===t.order?(n=y*M,s=d*p,v[0]=(i=y*p)-(h=d*M)*m,v[4]=-w*M,v[8]=s+n*m,v[1]=n+s*m,v[5]=w*p,v[9]=h-i*m,v[2]=-w*d,v[6]=m,v[10]=w*y):"ZYX"===t.order?(e=w*p,r=w*M,o=m*p,u=m*M,v[0]=y*p,v[4]=o*d-r,v[8]=e*d+u,v[1]=y*M,v[5]=u*d+e,v[9]=r*d-o,v[2]=-d,v[6]=m*y,v[10]=w*y):"YZX"===t.order?(a=w*y,c=w*d,f=m*y,l=m*d,v[0]=y*p,v[4]=l-a*M,v[8]=f*M+c,v[1]=M,v[5]=w*p,v[9]=-m*p,v[2]=-d*p,v[6]=c*M+f,v[10]=a-l*M):"XZY"===t.order&&(a=w*y,c=w*d,f=m*y,l=m*d,v[0]=y*p,v[4]=-M,v[8]=d*p,v[1]=a*M+l,v[5]=w*p,v[9]=c*M-f,v[2]=f*M-c,v[6]=m*p,v[10]=l*M+a),v[3]=0,v[7]=0,v[11]=0,v[12]=0,v[13]=0,v[14]=0,v[15]=1,this},makeRotationFromQuaternion:function(t){return this.compose(I,t,U)},lookAt:function(t,i,n){var s=this.elements;return X.subVectors(t,i),0===X.lengthSq()&&(X.z=1),X.normalize(),N.crossVectors(n,X),0===N.lengthSq()&&(1===Math.abs(n.z)?X.x+=1e-4:X.z+=1e-4,X.normalize(),N.crossVectors(n,X)),N.normalize(),Z.crossVectors(X,N),s[0]=N.x,s[4]=Z.x,s[8]=X.x,s[1]=N.y,s[5]=Z.y,s[9]=X.y,s[2]=N.z,s[6]=Z.z,s[10]=X.z,this},multiply:function(t,i){return void 0!==i?(console.warn("THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead."),this.multiplyMatrices(t,i)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,i){var n=t.elements,s=i.elements,h=this.elements,e=n[0],r=n[4],o=n[8],u=n[12],a=n[1],c=n[5],f=n[9],l=n[13],v=n[2],d=n[6],p=n[10],M=n[14],w=n[3],m=n[7],y=n[11],g=n[15],b=s[0],E=s[4],k=s[8],T=s[12],x=s[1],O=s[5],R=s[9],A=s[13],j=s[2],S=s[6],H=s[10],B=s[14],t=s[3],i=s[7],n=s[11],s=s[15];return h[0]=e*b+r*x+o*j+u*t,h[4]=e*E+r*O+o*S+u*i,h[8]=e*k+r*R+o*H+u*n,h[12]=e*T+r*A+o*B+u*s,h[1]=a*b+c*x+f*j+l*t,h[5]=a*E+c*O+f*S+l*i,h[9]=a*k+c*R+f*H+l*n,h[13]=a*T+c*A+f*B+l*s,h[2]=v*b+d*x+p*j+M*t,h[6]=v*E+d*O+p*S+M*i,h[10]=v*k+d*R+p*H+M*n,h[14]=v*T+d*A+p*B+M*s,h[3]=w*b+m*x+y*j+g*t,h[7]=w*E+m*O+y*S+g*i,h[11]=w*k+m*R+y*H+g*n,h[15]=w*T+m*A+y*B+g*s,this},multiplyScalar:function(t){var i=this.elements;return i[0]*=t,i[4]*=t,i[8]*=t,i[12]*=t,i[1]*=t,i[5]*=t,i[9]*=t,i[13]*=t,i[2]*=t,i[6]*=t,i[10]*=t,i[14]*=t,i[3]*=t,i[7]*=t,i[11]*=t,i[15]*=t,this},determinant:function(){var t=this.elements,i=t[0],n=t[4],s=t[8],h=t[12],e=t[1],r=t[5],o=t[9],u=t[13],a=t[2],c=t[6],f=t[10],l=t[14];return t[3]*(+h*o*c-s*u*c-h*r*f+n*u*f+s*r*l-n*o*l)+t[7]*(+i*o*l-i*u*f+h*e*f-s*e*l+s*u*a-h*o*a)+t[11]*(+i*u*c-i*r*l-h*e*c+n*e*l+h*r*a-n*u*a)+t[15]*(-s*r*a-i*o*c+i*r*f+s*e*c-n*e*f+n*o*a)},transpose:function(){var t=this.elements,i=t[1];return t[1]=t[4],t[4]=i,i=t[2],t[2]=t[8],t[8]=i,i=t[6],t[6]=t[9],t[9]=i,i=t[3],t[3]=t[12],t[12]=i,i=t[7],t[7]=t[13],t[13]=i,i=t[11],t[11]=t[14],t[14]=i,this},setPosition:function(t,i,n){var s=this.elements;return t.isVector3?(s[12]=t.x,s[13]=t.y,s[14]=t.z):(s[12]=t,s[13]=i,s[14]=n),this},getInverse:function(t,i){void 0!==i&&console.warn("THREE.Matrix4: .getInverse() can no longer be configured to throw on degenerate.");var n=this.elements,s=t.elements,h=s[0],e=s[1],r=s[2],o=s[3],u=s[4],a=s[5],c=s[6],f=s[7],l=s[8],v=s[9],d=s[10],p=s[11],M=s[12],w=s[13],m=s[14],y=s[15],g=v*m*f-w*d*f+w*c*p-a*m*p-v*c*y+a*d*y,b=M*d*f-l*m*f-M*c*p+u*m*p+l*c*y-u*d*y,i=l*w*f-M*v*f+M*a*p-u*w*p-l*a*y+u*v*y,t=M*v*c-l*w*c-M*a*d+u*w*d+l*a*m-u*v*m,s=h*g+e*b+r*i+o*t;if(0==s)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);s=1/s;return n[0]=g*s,n[1]=(w*d*o-v*m*o-w*r*p+e*m*p+v*r*y-e*d*y)*s,n[2]=(a*m*o-w*c*o+w*r*f-e*m*f-a*r*y+e*c*y)*s,n[3]=(v*c*o-a*d*o-v*r*f+e*d*f+a*r*p-e*c*p)*s,n[4]=b*s,n[5]=(l*m*o-M*d*o+M*r*p-h*m*p-l*r*y+h*d*y)*s,n[6]=(M*c*o-u*m*o-M*r*f+h*m*f+u*r*y-h*c*y)*s,n[7]=(u*d*o-l*c*o+l*r*f-h*d*f-u*r*p+h*c*p)*s,n[8]=i*s,n[9]=(M*v*o-l*w*o-M*e*p+h*w*p+l*e*y-h*v*y)*s,n[10]=(u*w*o-M*a*o+M*e*f-h*w*f-u*e*y+h*a*y)*s,n[11]=(l*a*o-u*v*o-l*e*f+h*v*f+u*e*p-h*a*p)*s,n[12]=t*s,n[13]=(l*w*r-M*v*r+M*e*d-h*w*d-l*e*m+h*v*m)*s,n[14]=(M*a*r-u*w*r-M*e*c+h*w*c+u*e*m-h*a*m)*s,n[15]=(u*v*r-l*a*r+l*e*c-h*v*c-u*e*d+h*a*d)*s,this},invert:function(){var t=this.elements,i=t[0],n=t[1],s=t[2],h=t[3],e=t[4],r=t[5],o=t[6],u=t[7],a=t[8],c=t[9],f=t[10],l=t[11],v=t[12],d=t[13],p=t[14],M=t[15],w=c*p*u-d*f*u+d*o*l-r*p*l-c*o*M+r*f*M,m=v*f*u-a*p*u-v*o*l+e*p*l+a*o*M-e*f*M,y=a*d*u-v*c*u+v*r*l-e*d*l-a*r*M+e*c*M,g=v*c*o-a*d*o-v*r*f+e*d*f+a*r*p-e*c*p,b=i*w+n*m+s*y+h*g;if(0==b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);b=1/b;return t[0]=w*b,t[1]=(d*f*h-c*p*h-d*s*l+n*p*l+c*s*M-n*f*M)*b,t[2]=(r*p*h-d*o*h+d*s*u-n*p*u-r*s*M+n*o*M)*b,t[3]=(c*o*h-r*f*h-c*s*u+n*f*u+r*s*l-n*o*l)*b,t[4]=m*b,t[5]=(a*p*h-v*f*h+v*s*l-i*p*l-a*s*M+i*f*M)*b,t[6]=(v*o*h-e*p*h-v*s*u+i*p*u+e*s*M-i*o*M)*b,t[7]=(e*f*h-a*o*h+a*s*u-i*f*u-e*s*l+i*o*l)*b,t[8]=y*b,t[9]=(v*c*h-a*d*h-v*n*l+i*d*l+a*n*M-i*c*M)*b,t[10]=(e*d*h-v*r*h+v*n*u-i*d*u-e*n*M+i*r*M)*b,t[11]=(a*r*h-e*c*h-a*n*u+i*c*u+e*n*l-i*r*l)*b,t[12]=g*b,t[13]=(a*d*s-v*c*s+v*n*f-i*d*f-a*n*p+i*c*p)*b,t[14]=(v*r*s-e*d*s-v*n*o+i*d*o+e*n*p-i*r*p)*b,t[15]=(e*c*s-a*r*s+a*n*o-i*c*o-e*n*f+i*r*f)*b,this},scale:function(t){var i=this.elements,n=t.x,s=t.y,t=t.z;return i[0]*=n,i[4]*=s,i[8]*=t,i[1]*=n,i[5]*=s,i[9]*=t,i[2]*=n,i[6]*=s,i[10]*=t,i[3]*=n,i[7]*=s,i[11]*=t,this},getMaxScaleOnAxis:function(){var t=this.elements,i=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],n=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],t=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(i,n,t))},makeTranslation:function(t,i,n){return this.set(1,0,0,t,0,1,0,i,0,0,1,n,0,0,0,1),this},makeRotationX:function(t){var i=Math.cos(t),t=Math.sin(t);return this.set(1,0,0,0,0,i,-t,0,0,t,i,0,0,0,0,1),this},makeRotationY:function(t){var i=Math.cos(t),t=Math.sin(t);return this.set(i,0,t,0,0,1,0,0,-t,0,i,0,0,0,0,1),this},makeRotationZ:function(t){var i=Math.cos(t),t=Math.sin(t);return this.set(i,-t,0,0,t,i,0,0,0,0,1,0,0,0,0,1),this},makeRotationAxis:function(t,i){var n=Math.cos(i),s=Math.sin(i),h=1-n,e=t.x,r=t.y,o=t.z,i=h*e,t=h*r;return this.set(i*e+n,i*r-s*o,i*o+s*r,0,i*r+s*o,t*r+n,t*o-s*e,0,i*o-s*r,t*o+s*e,h*o*o+n,0,0,0,0,1),this},makeScale:function(t,i,n){return this.set(t,0,0,0,0,i,0,0,0,0,n,0,0,0,0,1),this},makeShear:function(t,i,n){return this.set(1,i,n,0,t,1,n,0,t,i,1,0,0,0,0,1),this},compose:function(t,i,n){var s=this.elements,h=i.e,e=i.u,r=i.f,o=i.v,u=h+h,a=e+e,c=r+r,f=h*u,l=h*a,v=h*c,i=e*a,h=e*c,e=r*c,r=o*u,u=o*a,a=o*c,o=n.x,c=n.y,n=n.z;return s[0]=(1-(i+e))*o,s[1]=(l+a)*o,s[2]=(v-u)*o,s[3]=0,s[4]=(l-a)*c,s[5]=(1-(f+e))*c,s[6]=(h+r)*c,s[7]=0,s[8]=(v+u)*n,s[9]=(h-r)*n,s[10]=(1-(f+i))*n,s[11]=0,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=1,this},decompose:function(t,i,n){var s=this.elements,h=V.set(s[0],s[1],s[2]).length(),e=V.set(s[4],s[5],s[6]).length(),r=V.set(s[8],s[9],s[10]).length();this.determinant()<0&&(h=-h),t.x=s[12],t.y=s[13],t.z=s[14],q.copy(this);var o=1/h,t=1/e,s=1/r;return q.elements[0]*=o,q.elements[1]*=o,q.elements[2]*=o,q.elements[4]*=t,q.elements[5]*=t,q.elements[6]*=t,q.elements[8]*=s,q.elements[9]*=s,q.elements[10]*=s,i.setFromRotationMatrix(q),n.x=h,n.y=e,n.z=r,this},makePerspective:function(t,i,n,s,h,e){void 0===e&&console.warn("THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.");var r=this.elements,o=2*h/(n-s),u=(i+t)/(i-t),n=(n+s)/(n-s),s=-(e+h)/(e-h),e=-2*e*h/(e-h);return r[0]=2*h/(i-t),r[4]=0,r[8]=u,r[12]=0,r[1]=0,r[5]=o,r[9]=n,r[13]=0,r[2]=0,r[6]=0,r[10]=s,r[14]=e,r[3]=0,r[7]=0,r[11]=-1,r[15]=0,this},makeOrthographic:function(t,i,n,s,h,e){var r=this.elements,o=1/(i-t),u=1/(n-s),a=1/(e-h),t=(i+t)*o,s=(n+s)*u,h=(e+h)*a;return r[0]=2*o,r[4]=0,r[8]=0,r[12]=-t,r[1]=0,r[5]=2*u,r[9]=0,r[13]=-s,r[2]=0,r[6]=0,r[10]=-2*a,r[14]=-h,r[3]=0,r[7]=0,r[11]=0,r[15]=1,this},equals:function(t){for(var i=this.elements,n=t.elements,s=0;s<16;s++)if(i[s]!==n[s])return!1;return!0},fromArray:function(t,i){void 0===i&&(i=0);for(var n=0;n<16;n++)this.elements[n]=t[n+i];return this},toArray:function(t,i){var n=this.elements;return(t=void 0===t?[]:t)[i=void 0===i?0:i]=n[0],t[i+1]=n[1],t[i+2]=n[2],t[i+3]=n[3],t[i+4]=n[4],t[i+5]=n[5],t[i+6]=n[6],t[i+7]=n[7],t[i+8]=n[8],t[i+9]=n[9],t[i+10]=n[10],t[i+11]=n[11],t[i+12]=n[12],t[i+13]=n[13],t[i+14]=n[14],t[i+15]=n[15],t}}),Object.assign(D.prototype,{addEventListener:function(t,i){void 0===this.T&&(this.T={});var n=this.T;void 0===n[t]&&(n[t]=[]),-1===n[t].indexOf(i)&&n[t].push(i)},hasEventListener:function(t,i){if(void 0===this.T)return!1;var n=this.T;return void 0!==n[t]&&-1!==n[t].indexOf(i)},removeEventListener:function(t,i){void 0!==this.T&&(void 0===(t=this.T[t])||-1!==(i=t.indexOf(i))&&t.splice(i,1))},dispatchEvent:function(t){if(void 0!==this.T){var i=this.T[t.type];if(void 0!==i){t.target=this;for(var n=i.slice(0),s=0,h=n.length;s<h;s++)n[s].call(this,t)}}}});var _=new Y,L=new e;function G(t,i,n,s){this.e=t||0,this.u=i||0,this.f=n||0,this.O=s||G.DefaultOrder}function z(){this.mask=1}function W(){this.elements=[1,0,0,0,1,0,0,0,1],0<arguments.length&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}G.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"],G.DefaultOrder="XYZ",Object.defineProperties(G.prototype,{x:{get:function(){return this.e},set:function(t){this.e=t,this.M()}},y:{get:function(){return this.u},set:function(t){this.u=t,this.M()}},z:{get:function(){return this.f},set:function(t){this.f=t,this.M()}},order:{get:function(){return this.O},set:function(t){this.O=t,this.M()}}}),Object.assign(G.prototype,{isEuler:!0,set:function(t,i,n,s){return this.e=t,this.u=i,this.f=n,this.O=s||this.O,this.M(),this},clone:function(){return new this.constructor(this.e,this.u,this.f,this.O)},copy:function(t){return this.e=t.e,this.u=t.u,this.f=t.f,this.O=t.O,this.M(),this},setFromRotationMatrix:function(t,i,n){var s=l.clamp,h=t.elements,e=h[0],r=h[4],o=h[8],u=h[1],a=h[5],c=h[9],f=h[2],t=h[6],h=h[10];return"XYZ"===(i=i||this.O)?(this.u=Math.asin(s(o,-1,1)),Math.abs(o)<.9999999?(this.e=Math.atan2(-c,h),this.f=Math.atan2(-r,e)):(this.e=Math.atan2(t,a),this.f=0)):"YXZ"===i?(this.e=Math.asin(-s(c,-1,1)),Math.abs(c)<.9999999?(this.u=Math.atan2(o,h),this.f=Math.atan2(u,a)):(this.u=Math.atan2(-f,e),this.f=0)):"ZXY"===i?(this.e=Math.asin(s(t,-1,1)),Math.abs(t)<.9999999?(this.u=Math.atan2(-f,h),this.f=Math.atan2(-r,a)):(this.u=0,this.f=Math.atan2(u,e))):"ZYX"===i?(this.u=Math.asin(-s(f,-1,1)),Math.abs(f)<.9999999?(this.e=Math.atan2(t,h),this.f=Math.atan2(u,e)):(this.e=0,this.f=Math.atan2(-r,a))):"YZX"===i?(this.f=Math.asin(s(u,-1,1)),Math.abs(u)<.9999999?(this.e=Math.atan2(-c,a),this.u=Math.atan2(-f,e)):(this.e=0,this.u=Math.atan2(o,h))):"XZY"===i?(this.f=Math.asin(-s(r,-1,1)),Math.abs(r)<.9999999?(this.e=Math.atan2(t,a),this.u=Math.atan2(o,e)):(this.e=Math.atan2(-c,h),this.u=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+i),this.O=i,!1!==n&&this.M(),this},setFromQuaternion:function(t,i,n){return _.makeRotationFromQuaternion(t),this.setFromRotationMatrix(_,i,n)},setFromVector3:function(t,i){return this.set(t.x,t.y,t.z,i||this.O)},reorder:function(t){return L.setFromEuler(this),this.setFromQuaternion(L,t)},equals:function(t){return t.e===this.e&&t.u===this.u&&t.f===this.f&&t.O===this.O},fromArray:function(t){return this.e=t[0],this.u=t[1],this.f=t[2],void 0!==t[3]&&(this.O=t[3]),this.M(),this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.e,t[i+1]=this.u,t[i+2]=this.f,t[i+3]=this.O,t},toVector3:function(t){return t?t.set(this.e,this.u,this.f):new M(this.e,this.u,this.f)},k:function(t){return this.M=t,this},M:function(){}}),Object.assign(z.prototype,{set:function(t){this.mask=1<<t|0},enable:function(t){this.mask|=1<<t|0},enableAll:function(){this.mask=-1},toggle:function(t){this.mask^=1<<t|0},disable:function(t){this.mask&=~(1<<t|0)},disableAll:function(){this.mask=0},test:function(t){return 0!=(this.mask&t.mask)}}),Object.assign(W.prototype,{isMatrix3:!0,set:function(t,i,n,s,h,e,r,o,u){var a=this.elements;return a[0]=t,a[1]=s,a[2]=r,a[3]=i,a[4]=h,a[5]=o,a[6]=n,a[7]=e,a[8]=u,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var i=this.elements,t=t.elements;return i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],this},extractBasis:function(t,i,n){return t.setFromMatrix3Column(this,0),i.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this},setFromMatrix4:function(t){t=t.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this},multiply:function(t){return this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,i){var n=t.elements,s=i.elements,h=this.elements,e=n[0],r=n[3],o=n[6],u=n[1],a=n[4],c=n[7],f=n[2],l=n[5],v=n[8],d=s[0],p=s[3],M=s[6],w=s[1],m=s[4],t=s[7],i=s[2],n=s[5],s=s[8];return h[0]=e*d+r*w+o*i,h[3]=e*p+r*m+o*n,h[6]=e*M+r*t+o*s,h[1]=u*d+a*w+c*i,h[4]=u*p+a*m+c*n,h[7]=u*M+a*t+c*s,h[2]=f*d+l*w+v*i,h[5]=f*p+l*m+v*n,h[8]=f*M+l*t+v*s,this},multiplyScalar:function(t){var i=this.elements;return i[0]*=t,i[3]*=t,i[6]*=t,i[1]*=t,i[4]*=t,i[7]*=t,i[2]*=t,i[5]*=t,i[8]*=t,this},determinant:function(){var t=this.elements,i=t[0],n=t[1],s=t[2],h=t[3],e=t[4],r=t[5],o=t[6],u=t[7],t=t[8];return i*e*t-i*r*u-n*h*t+n*r*o+s*h*u-s*e*o},getInverse:function(t,i){void 0!==i&&console.warn("THREE.Matrix3: .getInverse() can no longer be configured to throw on degenerate.");var n=t.elements,s=this.elements,h=n[0],e=n[1],r=n[2],o=n[3],u=n[4],a=n[5],c=n[6],f=n[7],l=n[8],v=l*u-a*f,i=a*c-l*o,t=f*o-u*c,n=h*v+e*i+r*t;if(0==n)return this.set(0,0,0,0,0,0,0,0,0);n=1/n;return s[0]=v*n,s[1]=(r*f-l*e)*n,s[2]=(a*e-r*u)*n,s[3]=i*n,s[4]=(l*h-r*c)*n,s[5]=(r*o-a*h)*n,s[6]=t*n,s[7]=(e*c-f*h)*n,s[8]=(u*h-e*o)*n,this},transpose:function(){var t=this.elements,i=t[1];return t[1]=t[3],t[3]=i,i=t[2],t[2]=t[6],t[6]=i,i=t[5],t[5]=t[7],t[7]=i,this},getNormalMatrix:function(t){return this.setFromMatrix4(t).getInverse(this).transpose()},transposeIntoArray:function(t){var i=this.elements;return t[0]=i[0],t[1]=i[3],t[2]=i[6],t[3]=i[1],t[4]=i[4],t[5]=i[7],t[6]=i[2],t[7]=i[5],t[8]=i[8],this},setUvTransform:function(t,i,n,s,h,e,r){var o=Math.cos(h),h=Math.sin(h);this.set(n*o,n*h,-n*(o*e+h*r)+e+t,-s*h,s*o,-s*(-h*e+o*r)+r+i,0,0,1)},scale:function(t,i){var n=this.elements;return n[0]*=t,n[3]*=t,n[6]*=t,n[1]*=i,n[4]*=i,n[7]*=i,this},rotate:function(t){var i=Math.cos(t),n=Math.sin(t),s=this.elements,h=s[0],e=s[3],r=s[6],o=s[1],u=s[4],t=s[7];return s[0]=i*h+n*o,s[3]=i*e+n*u,s[6]=i*r+n*t,s[1]=-n*h+i*o,s[4]=-n*e+i*u,s[7]=-n*r+i*t,this},translate:function(t,i){var n=this.elements;return n[0]+=t*n[2],n[3]+=t*n[5],n[6]+=t*n[8],n[1]+=i*n[2],n[4]+=i*n[5],n[7]+=i*n[8],this},equals:function(t){for(var i=this.elements,n=t.elements,s=0;s<9;s++)if(i[s]!==n[s])return!1;return!0},fromArray:function(t,i){void 0===i&&(i=0);for(var n=0;n<9;n++)this.elements[n]=t[n+i];return this},toArray:function(t,i){var n=this.elements;return(t=void 0===t?[]:t)[i=void 0===i?0:i]=n[0],t[i+1]=n[1],t[i+2]=n[2],t[i+3]=n[3],t[i+4]=n[4],t[i+5]=n[5],t[i+6]=n[6],t[i+7]=n[7],t[i+8]=n[8],t}});var Q=0,J=new M,$=new e,K=new Y,tt=new M,it=new M,nt=new M,st=new e,ht=new M(1,0,0),et=new M(0,1,0),rt=new M(0,0,1),ot={type:"added"},ut={type:"removed"};function at(){Object.defineProperty(this,"id",{value:Q++}),this.uuid=l.generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=at.DefaultUp.clone();var t=new M,i=new G,n=new e,s=new M(1,1,1);i.k(function(){n.setFromEuler(i,!1)}),n.k(function(){i.setFromQuaternion(n,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:n},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new Y},normalMatrix:{value:new W}}),this.matrix=new Y,this.matrixWorld=new Y,this.matrixAutoUpdate=at.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new z,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}at.DefaultUp=new M(0,1,0),at.DefaultMatrixAutoUpdate=!0,at.prototype=Object.assign(Object.create(D.prototype),{constructor:at,isObject3D:!0,onBeforeRender:function(){},onAfterRender:function(){},applyMatrix4:function(t){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)},applyQuaternion:function(t){return this.quaternion.premultiply(t),this},setRotationFromAxisAngle:function(t,i){this.quaternion.setFromAxisAngle(t,i)},setRotationFromEuler:function(t){this.quaternion.setFromEuler(t,!0)},setRotationFromMatrix:function(t){this.quaternion.setFromRotationMatrix(t)},setRotationFromQuaternion:function(t){this.quaternion.copy(t)},rotateOnAxis:function(t,i){return $.setFromAxisAngle(t,i),this.quaternion.multiply($),this},rotateOnWorldAxis:function(t,i){return $.setFromAxisAngle(t,i),this.quaternion.premultiply($),this},rotateX:function(t){return this.rotateOnAxis(ht,t)},rotateY:function(t){return this.rotateOnAxis(et,t)},rotateZ:function(t){return this.rotateOnAxis(rt,t)},translateOnAxis:function(t,i){return J.copy(t).applyQuaternion(this.quaternion),this.position.add(J.multiplyScalar(i)),this},translateX:function(t){return this.translateOnAxis(ht,t)},translateY:function(t){return this.translateOnAxis(et,t)},translateZ:function(t){return this.translateOnAxis(rt,t)},localToWorld:function(t){return t.applyMatrix4(this.matrixWorld)},worldToLocal:function(t){return t.applyMatrix4(K.getInverse(this.matrixWorld))},lookAt:function(t,i,n){t.isVector3?tt.copy(t):tt.set(t,i,n);n=this.parent;this.updateWorldMatrix(!0,!1),it.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?K.lookAt(it,tt,this.up):K.lookAt(tt,it,this.up),this.quaternion.setFromRotationMatrix(K),n&&(K.extractRotation(n.matrixWorld),$.setFromRotationMatrix(K),this.quaternion.premultiply($.inverse()))},add:function(t){if(1<arguments.length){for(var i=0;i<arguments.length;i++)this.add(arguments[i]);return this}return t===this?console.error("THREE.Object3D.add: object can't be added as a child of itself.",t):t&&t.isObject3D?(null!==t.parent&&t.parent.remove(t),(t.parent=this).children.push(t),t.dispatchEvent(ot)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this},remove:function(t){if(1<arguments.length){for(var i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}var n=this.children.indexOf(t);return-1!==n&&(t.parent=null,this.children.splice(n,1),t.dispatchEvent(ut)),this},attach:function(t){return this.updateWorldMatrix(!0,!1),K.getInverse(this.matrixWorld),null!==t.parent&&(t.parent.updateWorldMatrix(!0,!1),K.multiply(t.parent.matrixWorld)),t.applyMatrix4(K),t.updateWorldMatrix(!1,!1),this.add(t),this},getObjectById:function(t){return this.getObjectByProperty("id",t)},getObjectByName:function(t){return this.getObjectByProperty("name",t)},getObjectByProperty:function(t,i){if(this[t]===i)return this;for(var n=0,s=this.children.length;n<s;n++){var h=this.children[n].getObjectByProperty(t,i);if(void 0!==h)return h}},getWorldPosition:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldPosition() target is now required"),t=new M),this.updateMatrixWorld(!0),t.setFromMatrixPosition(this.matrixWorld)},getWorldQuaternion:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldQuaternion() target is now required"),t=new e),this.updateMatrixWorld(!0),this.matrixWorld.decompose(it,t,nt),t},getWorldScale:function(t){return void 0===t&&(console.warn("THREE.Object3D: .getWorldScale() target is now required"),t=new M),this.updateMatrixWorld(!0),this.matrixWorld.decompose(it,st,t),t},getWorldDirection:function(t){void 0===t&&(console.warn("THREE.Object3D: .getWorldDirection() target is now required"),t=new M),this.updateMatrixWorld(!0);var i=this.matrixWorld.elements;return t.set(i[8],i[9],i[10]).normalize()},raycast:function(){},traverse:function(t){t(this);for(var i=this.children,n=0,s=i.length;n<s;n++)i[n].traverse(t)},traverseVisible:function(t){if(!1!==this.visible){t(this);for(var i=this.children,n=0,s=i.length;n<s;n++)i[n].traverseVisible(t)}},traverseAncestors:function(t){var i=this.parent;null!==i&&(t(i),i.traverseAncestors(t))},updateMatrix:function(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0},updateMatrixWorld:function(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),t=!(this.matrixWorldNeedsUpdate=!1));for(var i=this.children,n=0,s=i.length;n<s;n++)i[n].updateMatrixWorld(t)},updateWorldMatrix:function(t,i){var n=this.parent;if(!0===t&&null!==n&&n.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===i)for(var s=this.children,h=0,e=s.length;h<e;h++)s[h].updateWorldMatrix(!1,!0)},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,i){if(void 0===i&&(i=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===i)for(var n=0;n<t.children.length;n++){var s=t.children[n];this.add(s.clone())}return this}});var ct=new M,ft=new M,lt=new W;function vt(t,i){this.normal=void 0!==t?t:new M(1,0,0),this.constant=void 0!==i?i:0}Object.assign(vt.prototype,{isPlane:!0,set:function(t,i){return this.normal.copy(t),this.constant=i,this},setComponents:function(t,i,n,s){return this.normal.set(t,i,n),this.constant=s,this},setFromNormalAndCoplanarPoint:function(t,i){return this.normal.copy(t),this.constant=-i.dot(this.normal),this},setFromCoplanarPoints:function(t,i,n){i=ct.subVectors(n,i).cross(ft.subVectors(t,i)).normalize();return this.setFromNormalAndCoplanarPoint(i,t),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,i){return void 0===i&&(console.warn("THREE.Plane: .projectPoint() target is now required"),i=new M),i.copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(t,i){void 0===i&&(console.warn("THREE.Plane: .intersectLine() target is now required"),i=new M);var n=t.delta(ct),s=this.normal.dot(n);if(0===s)return 0===this.distanceToPoint(t.start)?i.copy(t.start):void 0;s=-(t.start.dot(this.normal)+this.constant)/s;return s<0||1<s?void 0:i.copy(n).multiplyScalar(s).add(t.start)},intersectsLine:function(t){var i=this.distanceToPoint(t.start),t=this.distanceToPoint(t.end);return i<0&&0<t||t<0&&0<i},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return void 0===t&&(console.warn("THREE.Plane: .coplanarPoint() target is now required"),t=new M),t.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(t,i){i=i||lt.getNormalMatrix(t),t=this.coplanarPoint(ct).applyMatrix4(t),i=this.normal.applyMatrix3(i).normalize();return this.constant=-t.dot(i),this},translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}});var dt=new M,pt=new M,Mt=new M,wt=new M,mt=new M,yt=new M,gt=new M,bt=new M,Et=new M,kt=new M;function Tt(t,i,n){this.a=void 0!==t?t:new M,this.b=void 0!==i?i:new M,this.c=void 0!==n?n:new M}Object.assign(Tt,{getNormal:function(t,i,n,s){void 0===s&&(console.warn("THREE.Triangle: .getNormal() target is now required"),s=new M),s.subVectors(n,i),dt.subVectors(t,i),s.cross(dt);i=s.lengthSq();return 0<i?s.multiplyScalar(1/Math.sqrt(i)):s.set(0,0,0)},getBarycoord:function(t,i,n,s,h){dt.subVectors(s,i),pt.subVectors(n,i),Mt.subVectors(t,i);var e=dt.dot(dt),r=dt.dot(pt),s=dt.dot(Mt),n=pt.dot(pt),t=pt.dot(Mt),i=e*n-r*r;if(void 0===h&&(console.warn("THREE.Triangle: .getBarycoord() target is now required"),h=new M),0==i)return h.set(-2,-1,-1);i=1/i,n=(n*s-r*t)*i,i*=e*t-r*s;return h.set(1-n-i,i,n)},containsPoint:function(t,i,n,s){return Tt.getBarycoord(t,i,n,s,wt),0<=wt.x&&0<=wt.y&&wt.x+wt.y<=1},getUV:function(t,i,n,s,h,e,r,o){return this.getBarycoord(t,i,n,s,wt),o.set(0,0),o.addScaledVector(h,wt.x),o.addScaledVector(e,wt.y),o.addScaledVector(r,wt.z),o},isFrontFacing:function(t,i,n,s){return dt.subVectors(n,i),pt.subVectors(t,i),dt.cross(pt).dot(s)<0}}),Object.assign(Tt.prototype,{set:function(t,i,n){return this.a.copy(t),this.b.copy(i),this.c.copy(n),this},setFromPointsAndIndices:function(t,i,n,s){return this.a.copy(t[i]),this.b.copy(t[n]),this.c.copy(t[s]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},getArea:function(){return dt.subVectors(this.c,this.b),pt.subVectors(this.a,this.b),.5*dt.cross(pt).length()},getMidpoint:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getMidpoint() target is now required"),t=new M),t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},getNormal:function(t){return Tt.getNormal(this.a,this.b,this.c,t)},getPlane:function(t){return void 0===t&&(console.warn("THREE.Triangle: .getPlane() target is now required"),t=new vt),t.setFromCoplanarPoints(this.a,this.b,this.c)},getBarycoord:function(t,i){return Tt.getBarycoord(t,this.a,this.b,this.c,i)},getUV:function(t,i,n,s,h){return Tt.getUV(t,this.a,this.b,this.c,i,n,s,h)},containsPoint:function(t){return Tt.containsPoint(t,this.a,this.b,this.c)},isFrontFacing:function(t){return Tt.isFrontFacing(this.a,this.b,this.c,t)},intersectsBox:function(t){return t.intersectsTriangle(this)},closestPointToPoint:function(t,i){void 0===i&&(console.warn("THREE.Triangle: .closestPointToPoint() target is now required"),i=new M);var n=this.a,s=this.b,h=this.c;mt.subVectors(s,n),yt.subVectors(h,n),bt.subVectors(t,n);var e=mt.dot(bt),r=yt.dot(bt);if(e<=0&&r<=0)return i.copy(n);Et.subVectors(t,s);var o=mt.dot(Et),u=yt.dot(Et);if(0<=o&&u<=o)return i.copy(s);var a=e*u-o*r;if(a<=0&&0<=e&&o<=0)return f=e/(e-o),i.copy(n).addScaledVector(mt,f);kt.subVectors(t,h);var c=mt.dot(kt),t=yt.dot(kt);if(0<=t&&c<=t)return i.copy(h);e=c*r-e*t;if(e<=0&&0<=r&&t<=0)return l=r/(r-t),i.copy(n).addScaledVector(yt,l);r=o*t-c*u;if(r<=0&&0<=u-o&&0<=c-t)return gt.subVectors(h,s),l=(u-o)/(u-o+(c-t)),i.copy(s).addScaledVector(gt,l);var r=1/(r+e+a),f=e*r,l=a*r;return i.copy(n).addScaledVector(mt,f).addScaledVector(yt,l)},equals:function(t){return t.a.equals(this.a)&&t.b.equals(this.b)&&t.c.equals(this.c)}});var xt={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ot={h:0,s:0,l:0},Rt={h:0,s:0,l:0};function At(t,i,n){return void 0===i&&void 0===n?this.set(t):this.setRGB(t,i,n)}function jt(t,i,n){return n<0&&(n+=1),1<n&&--n,n<1/6?t+6*(i-t)*n:n<.5?i:n<2/3?t+6*(i-t)*(2/3-n):t}function St(t){return t<.04045?.0773993808*t:Math.pow(.9478672986*t+.0521327014,2.4)}function Ht(t){return t<.0031308?12.92*t:1.055*Math.pow(t,.41666)-.055}function Bt(t,i,n,s,h,e){this.a=t,this.b=i,this.c=n,this.normal=s&&s.isVector3?s:new M,this.vertexNormals=Array.isArray(s)?s:[],this.color=h&&h.isColor?h:new At,this.vertexColors=Array.isArray(h)?h:[],this.materialIndex=void 0!==e?e:0}Object.assign(At.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):"number"==typeof t?this.setHex(t):"string"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,i,n){return this.r=t,this.g=i,this.b=n,this},setHSL:function(t,i,n){return t=l.euclideanModulo(t,1),i=l.clamp(i,0,1),n=l.clamp(n,0,1),0===i?this.r=this.g=this.b=n:(this.r=jt(i=2*n-(n=n<=.5?n*(1+i):n+i-n*i),n,t+1/3),this.g=jt(i,n,t),this.b=jt(i,n,t-1/3)),this},setStyle:function(i){function t(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+i+" will be ignored.")}if(u=/^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/.exec(i)){var n,s=u[1],h=u[2];switch(s){case"rgb":case"rgba":if(n=/^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(h))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,t(n[5]),this;if(n=/^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(h))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,t(n[5]),this;break;case"hsl":case"hsla":if(n=/^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/.exec(h)){var e=parseFloat(n[1])/360,r=parseInt(n[2],10)/100,o=parseInt(n[3],10)/100;return t(n[5]),this.setHSL(e,r,o)}}}else if(u=/^\#([A-Fa-f0-9]+)$/.exec(i)){var s=u[1],u=s.length;if(3===u)return this.r=parseInt(s.charAt(0)+s.charAt(0),16)/255,this.g=parseInt(s.charAt(1)+s.charAt(1),16)/255,this.b=parseInt(s.charAt(2)+s.charAt(2),16)/255,this;if(6===u)return this.r=parseInt(s.charAt(0)+s.charAt(1),16)/255,this.g=parseInt(s.charAt(2)+s.charAt(3),16)/255,this.b=parseInt(s.charAt(4)+s.charAt(5),16)/255,this}return i&&0<i.length?this.setColorName(i):this},setColorName:function(t){var i=xt[t];return void 0!==i?this.setHex(i):console.warn("THREE.Color: Unknown color "+t),this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,i){return void 0===i&&(i=2),this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},copyLinearToGamma:function(t,i){i=0<(i=void 0===i?2:i)?1/i:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(t){return this.copyGammaToLinear(this,t),this},convertLinearToGamma:function(t){return this.copyLinearToGamma(this,t),this},copySRGBToLinear:function(t){return this.r=St(t.r),this.g=St(t.g),this.b=St(t.b),this},copyLinearToSRGB:function(t){return this.r=Ht(t.r),this.g=Ht(t.g),this.b=Ht(t.b),this},convertSRGBToLinear:function(){return this.copySRGBToLinear(this),this},convertLinearToSRGB:function(){return this.copyLinearToSRGB(this),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return("000000"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){void 0===t&&(console.warn("THREE.Color: .getHSL() target is now required"),t={h:0,s:0,l:0});var i,n=this.r,s=this.g,h=this.b,e=Math.max(n,s,h),r=Math.min(n,s,h),o=(r+e)/2;if(r===e)a=i=0;else{var u=e-r,a=o<=.5?u/(e+r):u/(2-e-r);switch(e){case n:i=(s-h)/u+(s<h?6:0);break;case s:i=(h-n)/u+2;break;case h:i=(n-s)/u+4}i/=6}return t.h=i,t.s=a,t.l=o,t},getStyle:function(){return"rgb("+(255*this.r|0)+","+(255*this.g|0)+","+(255*this.b|0)+")"},offsetHSL:function(t,i,n){return this.getHSL(Ot),Ot.h+=t,Ot.s+=i,Ot.l+=n,this.setHSL(Ot.h,Ot.s,Ot.l),this},add:function(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this},addColors:function(t,i){return this.r=t.r+i.r,this.g=t.g+i.g,this.b=t.b+i.b,this},addScalar:function(t){return this.r+=t,this.g+=t,this.b+=t,this},sub:function(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this},multiply:function(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this},multiplyScalar:function(t){return this.r*=t,this.g*=t,this.b*=t,this},lerp:function(t,i){return this.r+=(t.r-this.r)*i,this.g+=(t.g-this.g)*i,this.b+=(t.b-this.b)*i,this},lerpHSL:function(t,i){this.getHSL(Ot),t.getHSL(Rt);var n=l.lerp(Ot.h,Rt.h,i),t=l.lerp(Ot.s,Rt.s,i),i=l.lerp(Ot.l,Rt.l,i);return this.setHSL(n,t,i),this},equals:function(t){return t.r===this.r&&t.g===this.g&&t.b===this.b},fromArray:function(t,i){return this.r=t[i=void 0===i?0:i],this.g=t[i+1],this.b=t[i+2],this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.r,t[i+1]=this.g,t[i+2]=this.b,t}}),At.NAMES=xt,Object.assign(Bt.prototype,{clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(var i=0,n=t.vertexNormals.length;i<n;i++)this.vertexNormals[i]=t.vertexNormals[i].clone();for(i=0,n=t.vertexColors.length;i<n;i++)this.vertexColors[i]=t.vertexColors[i].clone();return this}});var Ft=0,Pt=1,Ct=2,Vt=1,qt=100,It=204,Ut=205,Nt=3,Zt=0,Xt=1001,Yt=1006,Dt=1008,_t=1009,Lt=1023,Gt=3e3,zt=7680,Wt=519,Qt=35044,Jt=0;function $t(){Object.defineProperty(this,"id",{value:Jt++}),this.uuid=l.generateUUID(),this.name="",this.type="Material",this.fog=!0,this.blending=Vt,this.side=Ft,this.flatShading=!1,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=It,this.blendDst=Ut,this.blendEquation=qt,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=Nt,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Wt,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=zt,this.stencilZFail=zt,this.stencilZPass=zt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaTest=0,this.premultipliedAlpha=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0}function Kt(t){$t.call(this),this.type="MeshBasicMaterial",this.color=new At(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Zt,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.setValues(t)}function ti(t,i,n,s){this.x=t||0,this.y=i||0,this.z=n||0,this.w=void 0!==s?s:1}$t.prototype=Object.assign(Object.create(D.prototype),{constructor:$t,isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(void 0!==t)for(var i in t){var n,s=t[i];void 0!==s?"shading"!==i?void 0!==(n=this[i])?n&&n.isColor?n.set(s):n&&n.isVector3&&s&&s.isVector3?n.copy(s):this[i]=s:console.warn("THREE."+this.type+": '"+i+"' is not a property of this material."):(console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=1===s):console.warn("THREE.Material: '"+i+"' parameter is undefined.")}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;var i=t.clippingPlanes,n=null;if(null!==i)for(var s=i.length,n=new Array(s),h=0;h!==s;++h)n[h]=i[h].clone();return this.clippingPlanes=n,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this},dispose:function(){this.dispatchEvent({type:"dispose"})}}),Object.defineProperty($t.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),((Kt.prototype=Object.create($t.prototype)).constructor=Kt).prototype.isMeshBasicMaterial=!0,Kt.prototype.copy=function(t){return $t.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this},Object.defineProperties(ti.prototype,{width:{get:function(){return this.z},set:function(t){this.z=t}},height:{get:function(){return this.w},set:function(t){this.w=t}}}),Object.assign(ti.prototype,{isVector4:!0,set:function(t,i,n,s){return this.x=t,this.y=i,this.z=n,this.w=s,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,i){switch(t){case 0:this.x=i;break;case 1:this.y=i;break;case 2:this.z=i;break;case 3:this.w=i;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,i){return void 0!==i?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,i)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,i){return this.x=t.x+i.x,this.y=t.y+i.y,this.z=t.z+i.z,this.w=t.w+i.w,this},addScaledVector:function(t,i){return this.x+=t.x*i,this.y+=t.y*i,this.z+=t.z*i,this.w+=t.w*i,this},sub:function(t,i){return void 0!==i?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,i)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,i){return this.x=t.x-i.x,this.y=t.y-i.y,this.z=t.z-i.z,this.w=t.w-i.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var i=this.x,n=this.y,s=this.z,h=this.w,t=t.elements;return this.x=t[0]*i+t[4]*n+t[8]*s+t[12]*h,this.y=t[1]*i+t[5]*n+t[9]*s+t[13]*h,this.z=t[2]*i+t[6]*n+t[10]*s+t[14]*h,this.w=t[3]*i+t[7]*n+t[11]*s+t[15]*h,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var i=Math.sqrt(1-t.w*t.w);return i<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/i,this.y=t.y/i,this.z=t.z/i),this},setAxisAngleFromRotationMatrix:function(t){var i,n,s,h=t.elements,e=h[0],r=h[4],o=h[8],u=h[1],a=h[5],c=h[9],f=h[2],l=h[6],v=h[10];if(Math.abs(r-u)<.01&&Math.abs(o-f)<.01&&Math.abs(c-l)<.01){if(Math.abs(r+u)<.1&&Math.abs(o+f)<.1&&Math.abs(c+l)<.1&&Math.abs(e+a+v-3)<.1)return this.set(1,0,0,0),this;var d=Math.PI,p=(e+1)/2,M=(a+1)/2,w=(v+1)/2,m=(r+u)/4,t=(o+f)/4,h=(c+l)/4;return M<p&&w<p?s=p<.01?(i=0,n=.707106781):(n=m/(i=Math.sqrt(p)),t/i):w<M?s=M<.01?(n=0,i=.707106781):(i=m/(n=Math.sqrt(M)),h/n):w<.01?(n=i=.707106781,s=0):(i=t/(s=Math.sqrt(w)),n=h/s),this.set(i,n,s,d),this}d=Math.sqrt((l-c)*(l-c)+(o-f)*(o-f)+(u-r)*(u-r));return Math.abs(d)<.001&&(d=1),this.x=(l-c)/d,this.y=(o-f)/d,this.z=(u-r)/d,this.w=Math.acos((e+a+v-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,i){return this.x=Math.max(t.x,Math.min(i.x,this.x)),this.y=Math.max(t.y,Math.min(i.y,this.y)),this.z=Math.max(t.z,Math.min(i.z,this.z)),this.w=Math.max(t.w,Math.min(i.w,this.w)),this},clampScalar:function(t,i){return this.x=Math.max(t,Math.min(i,this.x)),this.y=Math.max(t,Math.min(i,this.y)),this.z=Math.max(t,Math.min(i,this.z)),this.w=Math.max(t,Math.min(i,this.w)),this},clampLength:function(t,i){var n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(i,n)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,i){return this.x+=(t.x-this.x)*i,this.y+=(t.y-this.y)*i,this.z+=(t.z-this.z)*i,this.w+=(t.w-this.w)*i,this},lerpVectors:function(t,i,n){return this.subVectors(i,t).multiplyScalar(n).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,i){return this.x=t[i=void 0===i?0:i],this.y=t[i+1],this.z=t[i+2],this.w=t[i+3],this},toArray:function(t,i){return(t=void 0===t?[]:t)[i=void 0===i?0:i]=this.x,t[i+1]=this.y,t[i+2]=this.z,t[i+3]=this.w,t},fromBufferAttribute:function(t,i,n){return void 0!==n&&console.warn("THREE.Vector4: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(i),this.y=t.getY(i),this.z=t.getZ(i),this.w=t.getW(i),this}});var ii=new M;function ni(t,i,n){if(Array.isArray(t))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=t,this.itemSize=i,this.count=void 0!==t?t.length/i:0,this.normalized=!0===n,this.usage=Qt,this.updateRange={offset:0,count:-1},this.version=0}function si(t,i,n){ni.call(this,new Int8Array(t),i,n)}function hi(t,i,n){ni.call(this,new Uint8Array(t),i,n)}function ei(t,i,n){ni.call(this,new Uint8ClampedArray(t),i,n)}function ri(t,i,n){ni.call(this,new Int16Array(t),i,n)}function oi(t,i,n){ni.call(this,new Uint16Array(t),i,n)}function ui(t,i,n){ni.call(this,new Int32Array(t),i,n)}function ai(t,i,n){ni.call(this,new Uint32Array(t),i,n)}function ci(t,i,n){ni.call(this,new Float32Array(t),i,n)}function fi(t,i,n){ni.call(this,new Float64Array(t),i,n)}function li(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}Object.defineProperty(ni.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(ni.prototype,{isBufferAttribute:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this},copyAt:function(t,i,n){t*=this.itemSize,n*=i.itemSize;for(var s=0,h=this.itemSize;s<h;s++)this.array[t+s]=i.array[n+s];return this},copyArray:function(t){return this.array.set(t),this},copyColorsArray:function(t){for(var i=this.array,n=0,s=0,h=t.length;s<h;s++){var e=t[s];void 0===e&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",s),e=new At),i[n++]=e.r,i[n++]=e.g,i[n++]=e.b}return this},copyVector2sArray:function(t){for(var i=this.array,n=0,s=0,h=t.length;s<h;s++){var e=t[s];void 0===e&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",s),e=new P),i[n++]=e.x,i[n++]=e.y}return this},copyVector3sArray:function(t){for(var i=this.array,n=0,s=0,h=t.length;s<h;s++){var e=t[s];void 0===e&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",s),e=new M),i[n++]=e.x,i[n++]=e.y,i[n++]=e.z}return this},copyVector4sArray:function(t){for(var i=this.array,n=0,s=0,h=t.length;s<h;s++){var e=t[s];void 0===e&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",s),e=new ti),i[n++]=e.x,i[n++]=e.y,i[n++]=e.z,i[n++]=e.w}return this},applyMatrix3:function(t){for(var i=0,n=this.count;i<n;i++)ii.x=this.getX(i),ii.y=this.getY(i),ii.z=this.getZ(i),ii.applyMatrix3(t),this.setXYZ(i,ii.x,ii.y,ii.z);return this},applyMatrix4:function(t){for(var i=0,n=this.count;i<n;i++)ii.x=this.getX(i),ii.y=this.getY(i),ii.z=this.getZ(i),ii.applyMatrix4(t),this.setXYZ(i,ii.x,ii.y,ii.z);return this},applyNormalMatrix:function(t){for(var i=0,n=this.count;i<n;i++)ii.x=this.getX(i),ii.y=this.getY(i),ii.z=this.getZ(i),ii.applyNormalMatrix(t),this.setXYZ(i,ii.x,ii.y,ii.z);return this},transformDirection:function(t){for(var i=0,n=this.count;i<n;i++)ii.x=this.getX(i),ii.y=this.getY(i),ii.z=this.getZ(i),ii.transformDirection(t),this.setXYZ(i,ii.x,ii.y,ii.z);return this},set:function(t,i){return this.array.set(t,i=void 0===i?0:i),this},getX:function(t){return this.array[t*this.itemSize]},setX:function(t,i){return this.array[t*this.itemSize]=i,this},getY:function(t){return this.array[t*this.itemSize+1]},setY:function(t,i){return this.array[t*this.itemSize+1]=i,this},getZ:function(t){return this.array[t*this.itemSize+2]},setZ:function(t,i){return this.array[t*this.itemSize+2]=i,this},getW:function(t){return this.array[t*this.itemSize+3]},setW:function(t,i){return this.array[t*this.itemSize+3]=i,this},setXY:function(t,i,n){return t*=this.itemSize,this.array[t+0]=i,this.array[t+1]=n,this},setXYZ:function(t,i,n,s){return t*=this.itemSize,this.array[t+0]=i,this.array[t+1]=n,this.array[t+2]=s,this},setXYZW:function(t,i,n,s,h){return t*=this.itemSize,this.array[t+0]=i,this.array[t+1]=n,this.array[t+2]=s,this.array[t+3]=h,this},onUpload:function(t){return this.onUploadCallback=t,this},clone:function(){return new this.constructor(this.array,this.itemSize).copy(this)}}),(si.prototype=Object.create(ni.prototype)).constructor=si,(hi.prototype=Object.create(ni.prototype)).constructor=hi,(ei.prototype=Object.create(ni.prototype)).constructor=ei,(ri.prototype=Object.create(ni.prototype)).constructor=ri,oi.prototype=Object.create(ni.prototype),oi.prototype.constructor=oi,(ui.prototype=Object.create(ni.prototype)).constructor=ui,ai.prototype=Object.create(ni.prototype),ai.prototype.constructor=ai,(ci.prototype=Object.create(ni.prototype)).constructor=ci,(fi.prototype=Object.create(ni.prototype)).constructor=fi,Object.assign(li.prototype,{computeGroups:function(t){for(var i,n=[],s=void 0,h=t.faces,e=0;e<h.length;e++){var r=h[e];r.materialIndex!==s&&(s=r.materialIndex,void 0!==i&&(i.count=3*e-i.start,n.push(i)),i={start:3*e,materialIndex:s})}void 0!==i&&(i.count=3*e-i.start,n.push(i)),this.groups=n},fromGeometry:function(t){var i=t.faces,n=t.vertices,s=t.faceVertexUvs,h=s[0]&&0<s[0].length,e=s[1]&&0<s[1].length,r=t.morphTargets,o=r.length;if(0<o){for(var u=[],a=0;a<o;a++)u[a]={name:r[a].name,data:[]};this.morphTargets.position=u}var c=t.morphNormals,f=c.length;if(0<f){for(var l=[],a=0;a<f;a++)l[a]={name:c[a].name,data:[]};this.morphTargets.normal=l}var v=t.skinIndices,d=t.skinWeights,p=v.length===n.length,M=d.length===n.length;0<n.length&&0===i.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(a=0;a<i.length;a++){var w=i[a];this.vertices.push(n[w.a],n[w.b],n[w.c]);var m=w.vertexNormals;3===m.length?this.normals.push(m[0],m[1],m[2]):(g=w.normal,this.normals.push(g,g,g));var y,g=w.vertexColors;3===g.length?this.colors.push(g[0],g[1],g[2]):(g=w.color,this.colors.push(g,g,g)),!0===h&&(void 0!==(y=s[0][a])?this.uvs.push(y[0],y[1],y[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",a),this.uvs.push(new P,new P,new P))),!0===e&&(void 0!==(y=s[1][a])?this.uvs2.push(y[0],y[1],y[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",a),this.uvs2.push(new P,new P,new P)));for(var b=0;b<o;b++){var E=r[b].vertices;u[b].data.push(E[w.a],E[w.b],E[w.c])}for(b=0;b<f;b++){var k=c[b].vertexNormals[a];l[b].data.push(k.a,k.b,k.c)}p&&this.skinIndices.push(v[w.a],v[w.b],v[w.c]),M&&this.skinWeights.push(d[w.a],d[w.b],d[w.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this}});var vi=1,di=new Y,pi=new at,Mi=new M,wi=new k,mi=new k,yi=new M;function gi(){Object.defineProperty(this,"id",{value:vi+=2}),this.uuid=l.generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}gi.prototype=Object.assign(Object.create(D.prototype),{constructor:gi,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){Array.isArray(t)?this.index=new(65535<function(t){if(0===t.length)return-1/0;for(var i=t[0],n=1,s=t.length;n<s;++n)t[n]>i&&(i=t[n]);return i}(t)?ai:oi)(t,1):this.index=t},getAttribute:function(t){return this.attributes[t]},setAttribute:function(t,i){return this.attributes[t]=i,this},deleteAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,i,n){this.groups.push({start:t,count:i,materialIndex:void 0!==n?n:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,i){this.drawRange.start=t,this.drawRange.count=i},applyMatrix4:function(t){var i=this.attributes.position;void 0!==i&&(i.applyMatrix4(t),i.needsUpdate=!0);var n=this.attributes.normal;void 0!==n&&(i=(new W).getNormalMatrix(t),n.applyNormalMatrix(i),n.needsUpdate=!0);n=this.attributes.tangent;return void 0!==n&&(n.transformDirection(t),n.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(t){return di.makeRotationX(t),this.applyMatrix4(di),this},rotateY:function(t){return di.makeRotationY(t),this.applyMatrix4(di),this},rotateZ:function(t){return di.makeRotationZ(t),this.applyMatrix4(di),this},translate:function(t,i,n){return di.makeTranslation(t,i,n),this.applyMatrix4(di),this},scale:function(t,i,n){return di.makeScale(t,i,n),this.applyMatrix4(di),this},lookAt:function(t){return pi.lookAt(t),pi.updateMatrix(),this.applyMatrix4(pi.matrix),this},center:function(){return this.computeBoundingBox(),this.boundingBox.getCenter(Mi).negate(),this.translate(Mi.x,Mi.y,Mi.z),this},setFromObject:function(t){var i,n,s=t.geometry;return t.isPoints||t.isLine?(i=new ci(3*s.vertices.length,3),n=new ci(3*s.colors.length,3),this.setAttribute("position",i.copyVector3sArray(s.vertices)),this.setAttribute("color",n.copyColorsArray(s.colors)),s.lineDistances&&s.lineDistances.length===s.vertices.length&&(n=new ci(s.lineDistances.length,1),this.setAttribute("lineDistance",n.copyArray(s.lineDistances))),null!==s.boundingSphere&&(this.boundingSphere=s.boundingSphere.clone()),null!==s.boundingBox&&(this.boundingBox=s.boundingBox.clone())):t.isMesh&&s&&s.isGeometry&&this.fromGeometry(s),this},setFromPoints:function(t){for(var i=[],n=0,s=t.length;n<s;n++){var h=t[n];i.push(h.x,h.y,h.z||0)}return this.setAttribute("position",new ci(i,3)),this},updateFromObject:function(t){var i,n=t.geometry;if(t.isMesh){var s=n.R;if(!0===n.elementsNeedUpdate&&(s=void 0,n.elementsNeedUpdate=!1),void 0===s)return this.fromGeometry(n);s.verticesNeedUpdate=n.verticesNeedUpdate,s.normalsNeedUpdate=n.normalsNeedUpdate,s.colorsNeedUpdate=n.colorsNeedUpdate,s.uvsNeedUpdate=n.uvsNeedUpdate,s.groupsNeedUpdate=n.groupsNeedUpdate,n.verticesNeedUpdate=!1,n.normalsNeedUpdate=!1,n.colorsNeedUpdate=!1,n.uvsNeedUpdate=!1,n.groupsNeedUpdate=!1,n=s}return!0===n.verticesNeedUpdate&&(void 0!==(i=this.attributes.position)&&(i.copyVector3sArray(n.vertices),i.needsUpdate=!0),n.verticesNeedUpdate=!1),!0===n.normalsNeedUpdate&&(void 0!==(i=this.attributes.normal)&&(i.copyVector3sArray(n.normals),i.needsUpdate=!0),n.normalsNeedUpdate=!1),!0===n.colorsNeedUpdate&&(void 0!==(i=this.attributes.color)&&(i.copyColorsArray(n.colors),i.needsUpdate=!0),n.colorsNeedUpdate=!1),n.uvsNeedUpdate&&(void 0!==(i=this.attributes.uv)&&(i.copyVector2sArray(n.uvs),i.needsUpdate=!0),n.uvsNeedUpdate=!1),n.lineDistancesNeedUpdate&&(void 0!==(i=this.attributes.lineDistance)&&(i.copyArray(n.lineDistances),i.needsUpdate=!0),n.lineDistancesNeedUpdate=!1),n.groupsNeedUpdate&&(n.computeGroups(t.geometry),this.groups=n.groups,n.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.R=(new li).fromGeometry(t),this.fromDirectGeometry(t.R)},fromDirectGeometry:function(t){var i,n,s,h,e=new Float32Array(3*t.vertices.length);for(s in this.setAttribute("position",new ni(e,3).copyVector3sArray(t.vertices)),0<t.normals.length&&(i=new Float32Array(3*t.normals.length),this.setAttribute("normal",new ni(i,3).copyVector3sArray(t.normals))),0<t.colors.length&&(i=new Float32Array(3*t.colors.length),this.setAttribute("color",new ni(i,3).copyColorsArray(t.colors))),0<t.uvs.length&&(n=new Float32Array(2*t.uvs.length),this.setAttribute("uv",new ni(n,2).copyVector2sArray(t.uvs))),0<t.uvs2.length&&(n=new Float32Array(2*t.uvs2.length),this.setAttribute("uv2",new ni(n,2).copyVector2sArray(t.uvs2))),this.groups=t.groups,t.morphTargets){for(var r=[],o=t.morphTargets[s],u=0,a=o.length;u<a;u++){var c=o[u],f=new ci(3*c.data.length,3);f.name=c.name,r.push(f.copyVector3sArray(c.data))}this.morphAttributes[s]=r}return 0<t.skinIndices.length&&(h=new ci(4*t.skinIndices.length,4),this.setAttribute("skinIndex",h.copyVector4sArray(t.skinIndices))),0<t.skinWeights.length&&(h=new ci(4*t.skinWeights.length,4),this.setAttribute("skinWeight",h.copyVector4sArray(t.skinWeights))),null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new k);var t=this.attributes.position,i=this.morphAttributes.position;if(void 0!==t){if(this.boundingBox.setFromBufferAttribute(t),i)for(var n=0,s=i.length;n<s;n++){var h=i[n];wi.setFromBufferAttribute(h),this.morphTargetsRelative?(yi.addVectors(this.boundingBox.min,wi.min),this.boundingBox.expandByPoint(yi),yi.addVectors(this.boundingBox.max,wi.max),this.boundingBox.expandByPoint(yi)):(this.boundingBox.expandByPoint(wi.min),this.boundingBox.expandByPoint(wi.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new O);var t=this.attributes.position,i=this.morphAttributes.position;if(t){var n=this.boundingSphere.center;if(wi.setFromBufferAttribute(t),i)for(var s=0,h=i.length;s<h;s++){var e=i[s];mi.setFromBufferAttribute(e),this.morphTargetsRelative?(yi.addVectors(wi.min,mi.min),wi.expandByPoint(yi),yi.addVectors(wi.max,mi.max),wi.expandByPoint(yi)):(wi.expandByPoint(mi.min),wi.expandByPoint(mi.max))}wi.getCenter(n);for(var r=0,s=0,h=t.count;s<h;s++)yi.fromBufferAttribute(t,s),r=Math.max(r,n.distanceToSquared(yi));if(i)for(s=0,h=i.length;s<h;s++)for(var e=i[s],o=this.morphTargetsRelative,u=0,a=e.count;u<a;u++)yi.fromBufferAttribute(e,u),o&&(Mi.fromBufferAttribute(t,u),yi.add(Mi)),r=Math.max(r,n.distanceToSquared(yi));this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}},computeFaceNormals:function(){},computeVertexNormals:function(){var t=this.index,i=this.attributes;if(i.position){var n=i.position.array;if(void 0===i.normal)this.setAttribute("normal",new ni(new Float32Array(n.length),3));else for(var s=i.normal.array,h=0,e=s.length;h<e;h++)s[h]=0;var r,o,u,a=i.normal.array,c=new M,f=new M,l=new M,v=new M,d=new M;if(t)for(var p=t.array,h=0,e=t.count;h<e;h+=3)r=3*p[h+0],o=3*p[h+1],u=3*p[h+2],c.fromArray(n,r),f.fromArray(n,o),l.fromArray(n,u),v.subVectors(l,f),d.subVectors(c,f),v.cross(d),a[r]+=v.x,a[1+r]+=v.y,a[2+r]+=v.z,a[o]+=v.x,a[1+o]+=v.y,a[2+o]+=v.z,a[u]+=v.x,a[1+u]+=v.y,a[2+u]+=v.z;else for(h=0,e=n.length;h<e;h+=9)c.fromArray(n,h),f.fromArray(n,h+3),l.fromArray(n,h+6),v.subVectors(l,f),d.subVectors(c,f),v.cross(d),a[h]=v.x,a[h+1]=v.y,a[h+2]=v.z,a[h+3]=v.x,a[h+4]=v.y,a[h+5]=v.z,a[h+6]=v.x,a[h+7]=v.y,a[h+8]=v.z;this.normalizeNormals(),i.normal.needsUpdate=!0}},normalizeNormals:function(){for(var t=this.attributes.normal,i=0,n=t.count;i<n;i++)yi.x=t.getX(i),yi.y=t.getY(i),yi.z=t.getZ(i),yi.normalize(),t.setXYZ(i,yi.x,yi.y,yi.z)},dispose:function(){this.dispatchEvent({type:"dispose"})}});var bi=new Y,Ei=new C,ki=new O,Ti=new M,xi=new M,Oi=new M,Ri=new M,Ai=new M,ji=new M,Si=new M,Hi=new M,Bi=new M,Fi=new P,Pi=new P,Ci=new P,Vi=new M,qi=new M;function Ii(t,i){at.call(this),this.type="Mesh",this.geometry=void 0!==t?t:new gi,this.material=void 0!==i?i:new Kt,this.updateMorphTargets()}function Ui(t,i,n,s,h,e,r,o){i=i.side===Pt?s.intersectTriangle(r,e,h,!0,o):s.intersectTriangle(h,e,r,i.side!==Ct,o);if(null===i)return null;qi.copy(o),qi.applyMatrix4(t.matrixWorld);o=n.ray.origin.distanceTo(qi);return o<n.near||o>n.far?null:{distance:o,point:qi.clone(),object:t}}function Ni(t,i,n,s,h,e,r,o,u,a,c,f){Ti.fromBufferAttribute(h,a),xi.fromBufferAttribute(h,c),Oi.fromBufferAttribute(h,f);var l=t.morphTargetInfluences;if(i.morphTargets&&e&&l){Si.set(0,0,0),Hi.set(0,0,0),Bi.set(0,0,0);for(var v=0,d=e.length;v<d;v++){var p=l[v],M=e[v];0!==p&&(Ri.fromBufferAttribute(M,a),Ai.fromBufferAttribute(M,c),ji.fromBufferAttribute(M,f),r?(Si.addScaledVector(Ri,p),Hi.addScaledVector(Ai,p),Bi.addScaledVector(ji,p)):(Si.addScaledVector(Ri.sub(Ti),p),Hi.addScaledVector(Ai.sub(xi),p),Bi.addScaledVector(ji.sub(Oi),p)))}Ti.add(Si),xi.add(Hi),Oi.add(Bi)}s=Ui(t,i,n,s,Ti,xi,Oi,Vi);return s&&(o&&(Fi.fromBufferAttribute(o,a),Pi.fromBufferAttribute(o,c),Ci.fromBufferAttribute(o,f),s.uv=Tt.getUV(Vi,Ti,xi,Oi,Fi,Pi,Ci,new P)),u&&(Fi.fromBufferAttribute(u,a),Pi.fromBufferAttribute(u,c),Ci.fromBufferAttribute(u,f),s.uv2=Tt.getUV(Vi,Ti,xi,Oi,Fi,Pi,Ci,new P)),u=new Bt(a,c,f),Tt.getNormal(Ti,xi,Oi,u.normal),s.face=u),s}function Zi(t,i){this.array=t,this.stride=i,this.count=void 0!==t?t.length/i:0,this.usage=Qt,this.updateRange={offset:0,count:-1},this.version=0}Ii.prototype=Object.assign(Object.create(at.prototype),{constructor:Ii,isMesh:!0,copy:function(t){return at.prototype.copy.call(this,t),void 0!==t.morphTargetInfluences&&(this.morphTargetInfluences=t.morphTargetInfluences.slice()),void 0!==t.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this},updateMorphTargets:function(){var t,i,n,s=this.geometry;if(s.isBufferGeometry){var h=s.morphAttributes,e=Object.keys(h);if(0<e.length){var r=h[e[0]];if(void 0!==r)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,i=r.length;t<i;t++)n=r[t].name||String(t),this.morphTargetInfluences.push(0),this.morphTargetDictionary[n]=t}}else{s=s.morphTargets;void 0!==s&&0<s.length&&console.error("THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.")}},raycast:function(t,i){var n=this.geometry,s=this.material,h=this.matrixWorld;if(void 0!==s&&(null===n.boundingSphere&&n.computeBoundingSphere(),ki.copy(n.boundingSphere),ki.applyMatrix4(h),!1!==t.ray.intersectsSphere(ki)&&(bi.getInverse(h),Ei.copy(t.ray).applyMatrix4(bi),null===n.boundingBox||!1!==Ei.intersectsBox(n.boundingBox))))if(n.isBufferGeometry){var e,r,o,u,a,c,f,l,v,d=n.index,p=n.attributes.position,M=n.morphAttributes.position,w=n.morphTargetsRelative,m=n.attributes.uv,y=n.attributes.uv2,g=n.groups,b=n.drawRange;if(null!==d)if(Array.isArray(s))for(u=0,c=g.length;u<c;u++)for(v=s[(l=g[u]).materialIndex],a=Math.max(l.start,b.start),f=Math.min(l.start+l.count,b.start+b.count);a<f;a+=3)e=d.getX(a),r=d.getX(a+1),o=d.getX(a+2),(H=Ni(this,v,t,Ei,p,M,w,m,y,e,r,o))&&(H.faceIndex=Math.floor(a/3),H.face.materialIndex=l.materialIndex,i.push(H));else for(u=Math.max(0,b.start),c=Math.min(d.count,b.start+b.count);u<c;u+=3)e=d.getX(u),r=d.getX(u+1),o=d.getX(u+2),(H=Ni(this,s,t,Ei,p,M,w,m,y,e,r,o))&&(H.faceIndex=Math.floor(u/3),i.push(H));else if(void 0!==p)if(Array.isArray(s))for(u=0,c=g.length;u<c;u++)for(v=s[(l=g[u]).materialIndex],a=Math.max(l.start,b.start),f=Math.min(l.start+l.count,b.start+b.count);a<f;a+=3)(H=Ni(this,v,t,Ei,p,M,w,m,y,e=a,r=a+1,o=a+2))&&(H.faceIndex=Math.floor(a/3),H.face.materialIndex=l.materialIndex,i.push(H));else for(u=Math.max(0,b.start),c=Math.min(p.count,b.start+b.count);u<c;u+=3)(H=Ni(this,s,t,Ei,p,M,w,m,y,e=u,r=u+1,o=u+2))&&(H.faceIndex=Math.floor(u/3),i.push(H))}else if(n.isGeometry){var E,k=Array.isArray(s),T=n.vertices,x=n.faces,n=n.faceVertexUvs[0];0<n.length&&(E=n);for(var O=0,R=x.length;O<R;O++){var A,j,S,H,B=x[O],F=k?s[B.materialIndex]:s;void 0!==F&&(A=T[B.a],j=T[B.b],S=T[B.c],(H=Ui(this,F,t,Ei,A,j,S,Vi))&&(E&&E[O]&&(F=E[O],Fi.copy(F[0]),Pi.copy(F[1]),Ci.copy(F[2]),H.uv=Tt.getUV(Vi,A,j,S,Fi,Pi,Ci,new P)),H.face=B,H.faceIndex=O,i.push(H)))}}},clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Object.defineProperty(Zi.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),Object.assign(Zi.prototype,{isInterleavedBuffer:!0,onUploadCallback:function(){},setUsage:function(t){return this.usage=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this},copyAt:function(t,i,n){t*=this.stride,n*=i.stride;for(var s=0,h=this.stride;s<h;s++)this.array[t+s]=i.array[n+s];return this},set:function(t,i){return this.array.set(t,i=void 0===i?0:i),this},clone:function(){return(new this.constructor).copy(this)},onUpload:function(t){return this.onUploadCallback=t,this}});var Xi=new M;function Yi(t,i,n,s){this.data=t,this.itemSize=i,this.offset=n,this.normalized=!0===s}function Di(t){return(Di="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function _i(t,i){return(_i=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t})(t,i)}function Li(n){var s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,i=Gi(n);return t=s?(t=Gi(this).constructor,Reflect.construct(i,arguments,t)):i.apply(this,arguments),i=this,!(t=t)||"object"!==Di(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(i):t}}function Gi(t){return(Gi=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}Object.defineProperties(Yi.prototype,{count:{get:function(){return this.data.count}},array:{get:function(){return this.data.array}}}),Object.assign(Yi.prototype,{isInterleavedBufferAttribute:!0,applyMatrix4:function(t){for(var i=0,n=this.data.count;i<n;i++)Xi.x=this.getX(i),Xi.y=this.getY(i),Xi.z=this.getZ(i),Xi.applyMatrix4(t),this.setXYZ(i,Xi.x,Xi.y,Xi.z);return this},setX:function(t,i){return this.data.array[t*this.data.stride+this.offset]=i,this},setY:function(t,i){return this.data.array[t*this.data.stride+this.offset+1]=i,this},setZ:function(t,i){return this.data.array[t*this.data.stride+this.offset+2]=i,this},setW:function(t,i){return this.data.array[t*this.data.stride+this.offset+3]=i,this},getX:function(t){return this.data.array[t*this.data.stride+this.offset]},getY:function(t){return this.data.array[t*this.data.stride+this.offset+1]},getZ:function(t){return this.data.array[t*this.data.stride+this.offset+2]},getW:function(t){return this.data.array[t*this.data.stride+this.offset+3]},setXY:function(t,i,n){return t=t*this.data.stride+this.offset,this.data.array[t+0]=i,this.data.array[t+1]=n,this},setXYZ:function(t,i,n,s){return t=t*this.data.stride+this.offset,this.data.array[t+0]=i,this.data.array[t+1]=n,this.data.array[t+2]=s,this},setXYZW:function(t,i,n,s,h){return t=t*this.data.stride+this.offset,this.data.array[t+0]=i,this.data.array[t+1]=n,this.data.array[t+2]=s,this.data.array[t+3]=h,this}});var zi,Wi=function(){!function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(i&&i.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),i&&_i(t,i)}(s,gi);var n=Li(s);function s(){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,s);var t=n.call(this),i=new Zi(new Float32Array([-.5,0,-.5,0,0,.5,0,-.5,1,0,.5,0,.5,1,1,-.5,0,.5,0,1]),5);return t.setIndex([0,1,2,0,2,3]),t.setAttribute("position",new Yi(i,3,0,!1)),t.setAttribute("uv",new Yi(i,2,3,!1)),t}return s}();function Qi(t){$t.call(this),this.type="SpriteMaterial",this.color=new At(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.setValues(t)}((Qi.prototype=Object.create($t.prototype)).constructor=Qi).prototype.isSpriteMaterial=!0,Qi.prototype.copy=function(t){return $t.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this};var Ji=new M,$i=new M,Ki=new M,tn=new P,nn=new P,sn=new Y,hn=new M,en=new M,rn=new M,on=new P,un=new P,an=new P;function cn(t){var i;at.call(this),this.type="Sprite",void 0===zi&&(zi=new gi,i=new Zi(new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),5),zi.setIndex([0,1,2,0,2,3]),zi.setAttribute("position",new Yi(i,3,0,!1)),zi.setAttribute("uv",new Yi(i,2,3,!1))),this.geometry=zi,this.material=void 0!==t?t:new Qi,this.center=new P(.5,.5)}function fn(t,i,n,s,h,e){tn.subVectors(t,n).addScalar(.5).multiply(s),void 0!==h?(nn.x=e*tn.x-h*tn.y,nn.y=h*tn.x+e*tn.y):nn.copy(tn),t.copy(i),t.x+=nn.x,t.y+=nn.y,t.applyMatrix4(sn)}cn.prototype=Object.assign(Object.create(at.prototype),{constructor:cn,isSprite:!0,raycast:function(t,i){null===t.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),$i.setFromMatrixScale(this.matrixWorld),sn.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Ki.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&$i.multiplyScalar(-Ki.z);var n,s,h=this.material.rotation;0!==h&&(s=Math.cos(h),n=Math.sin(h));var e=this.center;fn(hn.set(-.5,-.5,0),Ki,e,$i,n,s),fn(en.set(.5,-.5,0),Ki,e,$i,n,s),fn(rn.set(.5,.5,0),Ki,e,$i,n,s),on.set(0,0),un.set(1,0),an.set(1,1);h=t.ray.intersectTriangle(hn,en,rn,!1,Ji);null===h&&(fn(en.set(-.5,.5,0),Ki,e,$i,n,s),un.set(0,1),null===(h=t.ray.intersectTriangle(hn,rn,en,!1,Ji)))||((h=t.ray.origin.distanceTo(Ji))<t.near||h>t.far||i.push({distance:h,point:Ji.clone(),uv:Tt.getUV(Ji,hn,en,rn,on,un,an,new P),face:null,object:this}))},clone:function(){return new this.constructor(this.material).copy(this)},copy:function(t){return at.prototype.copy.call(this,t),void 0!==t.center&&this.center.copy(t.center),this}});var ln=0;function vn(t,i,n,s,h,e,r,o,u,a){Object.defineProperty(this,"id",{value:ln++}),this.uuid=l.generateUUID(),this.name="",this.image=void 0!==t?t:vn.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==i?i:vn.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:Xt,this.wrapT=void 0!==s?s:Xt,this.magFilter=void 0!==h?h:Yt,this.minFilter=void 0!==e?e:Dt,this.anisotropy=void 0!==u?u:1,this.format=void 0!==r?r:Lt,this.internalFormat=null,this.type=void 0!==o?o:_t,this.offset=new P(0,0),this.repeat=new P(1,1),this.center=new P(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new W,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==a?a:Gt,this.version=0,this.onUpdate=null}function dn(t,i,n,s,h,e,r,o,u){vn.call(this,t,i,n,s,h,e,r,o,u),this.needsUpdate=!0}vn.DEFAULT_IMAGE=void 0,vn.DEFAULT_MAPPING=300,vn.prototype=Object.assign(Object.create(D.prototype),{constructor:vn,isTexture:!0,updateMatrix:function(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.name=t.name,this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},dispose:function(){this.dispatchEvent({type:"dispose"})},transformUv:function(t){if(300!==this.mapping)return t;if(t.applyMatrix3(this.matrix),t.x<0||1<t.x)switch(this.wrapS){case 1e3:t.x=t.x-Math.floor(t.x);break;case Xt:t.x=t.x<0?0:1;break;case 1002:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||1<t.y)switch(this.wrapT){case 1e3:t.y=t.y-Math.floor(t.y);break;case Xt:t.y=t.y<0?0:1;break;case 1002:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}return this.flipY&&(t.y=1-t.y),t}}),Object.defineProperty(vn.prototype,"needsUpdate",{set:function(t){!0===t&&this.version++}}),((dn.prototype=Object.create(vn.prototype)).constructor=dn).prototype.isCanvasTexture=!0;n={FOV:35,CAMERA_NEAR:1,CAMERA_FAR:1e5,ZOOM_UPPER_BOUND:30,TILT_UPPER_BOUND:90,THOUSAND:1e3,DEG2RAD:.0174532,RAD2DEG:57.2957795,DRAW_TIME:500,EPS:.001};Object.freeze(n);var pn=n;function Mn(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}var wn=function(){function n(t,i){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,n),this.A=t,this.j=i,this.S=void 0!==i.depth&&i.depth}var t,i,s;return t=n,(i=[{key:"createFlatMaterial",value:function(n){var s=new Kt;s.depthTest=!1,s.depthWrite=!1,s.transparent=!0,void 0!==this.j.opacity?s.opacity=this.j.opacity:s.opacity=1,s.side=Ct,this.createCanvas(function(t){var i=new dn(t);i.minFilter=Yt,i.generateMipmaps=!1,s.map=i,s.userData.scaleRatio=t.height/t.width,s.userData.mspriteScale=t.spriteScale,n(s)})}},{key:"myUpdateMaterial",value:function(n){var s=this,h=new Qi;h.sizeAttenuation=!1,h.depthTest=!1,h.depthWrite=!1,h.transparent=!0,void 0!==this.j.opacity?h.opacity=this.j.opacity:h.opacity=1,h.side=Ct;var e=this.A.getRenderNode();this.createCanvas(function(t){var i=new dn(t);i.minFilter=Yt,i.generateMipmaps=!1,h.map=i,h.userData.scaleRatio=t.height/t.width,h.userData.mspriteScale=t.spriteScale,"image"!==s.j.layout.style&&"text"!==s.j.layout.style&&(h.userData.style=s.j.layout.style,h.userData.itHeightRatio=t.itHeightRatio),h.depthTest=s.S,h.depthWrite=s.S,e.material.map&&e.material.map.dispose(),e.material.dispose(),e.material=h,s.A.updateSize(),setTimeout(function(){n||(s.A.visible=!0,s.A.collision=s.j.collision)},0)})}},{key:"createCanvas",value:function(t){"image"===this.j.layout.style?this.createImageCanvas(t):"text"===this.j.layout.style?this.createTextCanvas(t):this.createImageTextCanvas(t)}},{key:"getCenterByAnchor",value:function(t,i,n){if("all"!==this.A.myanchor.baseon&&"flat"!==this.A.renderType){var s=i.width/n.width,h=i.height/n.height,i=t.width/n.width,n=t.height/n.height;return"image"===this.A.myanchor.baseon?e(this.A.myanchor.anchor,s,h):e(this.A.myanchor.anchor,i,n)}function e(t,i,n){var s=new P(i/2,n/2);switch(t){case fengmap.FMMarkerAnchor.LEFT:s.setX(0);break;case fengmap.FMMarkerAnchor.RIGHT:s.setX(i);break;case fengmap.FMMarkerAnchor.TOP:s.setY(n);break;case fengmap.FMMarkerAnchor.BOTTOM:s.setY(0);break;case fengmap.FMMarkerAnchor.LEFT_TOP:s.set(0,n);break;case fengmap.FMMarkerAnchor.RIGHT_TOP:s.set(i,n);break;case fengmap.FMMarkerAnchor.LEFT_BOTTOM:s.set(0,0);break;case fengmap.FMMarkerAnchor.RIGHT_BOTTOM:s.set(i,0)}return s}}},{key:"createImageTextCanvas",value:function(s){var h=this;this.createImageCanvas(function(t){var i=h.createTextCanvas(),n=null;(n="limage-rtext"===h.j.layout.style||"ltext-rimage"===h.j.layout.style?h.leftRight(i,t):"timage-btext"===h.j.layout.style||"ttext-bimage"===h.j.layout.style?h.topBottom(i,t):h.overlayText(i,t)).itHeightRatio=t.height/i.height,n.itWidthRatio=t.width/i.width,s&&s(n)})}},{key:"overlayText",value:function(t,i){var n=this.j.layout.align,s=t.width;s<i.width&&(s=i.width);var h=t.height;h<i.height&&(h=i.height);var e=document.createElement("canvas");e.width=s,e.height=h;var r=e.getContext("2d"),o=0,u=0,a=0,c=0;"center"===(n=void 0===n||n.indexOf("-")<0?"center-center":n).split("-")[0]?(u=h/2-t.height/2,c=h/2-i.height/2):"bottom"===n.split("-")[0]&&(u=h-t.height,c=h-i.height),"right"===n.split("-")[1]?(o=s-t.width,a=s-i.width):"center"===n.split("-")[1]&&(o=s/2-t.width/2,a=s/2-i.width/2);n=this.getCenterByAnchor(t,i,e);return n&&("image"===this.A.myanchor.baseon?(n.x=n.x+a/s,n.y=n.y+c/h):(n.x=n.x+o/s,n.y=n.y+u/h),this.A.getRenderNode().center.set(n.x,n.y)),r.drawImage(i,a,c,i.width,i.height),r.drawImage(t,o,u,t.width,t.height),e.spriteScale=h/t.rowHeight,e}},{key:"topBottom",value:function(t,i){var n=i.height+t.height,s=i.width;s<t.width&&(s=t.width);var h=document.createElement("canvas");h.width=s,h.height=n;var e=h.getContext("2d"),r=this.j.layout.align,o=this.j.layout.style,u=0,a=0;"timage-btext"===o?a=i.height:"ttext-bimage"===o&&(u=t.height);var c=0,o=0;t.width>i.width?c=(t.width-i.width)/2:t.width<i.width&&(o=(i.width-t.width)/2),"left"===(r=void 0===r||"left"!==r&&"center"!==r&&"right"!==r?"center":r)?o=c=0:"right"===r&&(t.width>i.width?(c=t.width-i.width,o=0):t.width<i.width&&(o=i.width-t.width,c=0));r=this.getCenterByAnchor(t,i,h);return r&&("image"===this.A.myanchor.baseon?(r.x=r.x+c/s,r.y=r.y+u/n):(r.x=r.x+o/s,r.y=r.y+a/n),this.A.getRenderNode().center.set(r.x,r.y)),e.drawImage(i,c,u,i.width,i.height),e.drawImage(t,o,a,t.width,t.height),h.spriteScale=n/t.rowHeight,h}},{key:"leftRight",value:function(t,i){var n=i.width+t.width,s=i.height;s<t.height&&(s=t.height);var h=document.createElement("canvas");h.width=n,h.height=s;var e=h.getContext("2d"),r=this.j.layout.align,o=this.j.layout.style,u=0,a=0;"center"===(r=void 0===r||"top"!==r&&"center"!==r&&"bottom"!==r?"top":r)?i.height>t.height?(u=0,a=(i.height-t.height)/2):i.height<t.height&&(u=(t.height-i.height)/2,a=0):"bottom"===r&&(i.height>t.height?(u=0,a=i.height-t.height):i.height<t.height&&(u=t.height-i.height,a=0));var c=0,r=0;"limage-rtext"===o?r=i.width:"ltext-rimage"===o&&(c=t.width);o=this.getCenterByAnchor(t,i,h);return o&&("image"===this.A.myanchor.baseon?(o.x=o.x+c/n,o.y=o.y+u/s):(o.x=o.x+r/n,o.y=o.y+a/s),this.A.getRenderNode().center.set(o.x,o.y)),e.drawImage(i,c,u,i.width,i.height),e.drawImage(t,r,a,t.width,t.height),h.spriteScale=s/t.rowHeight,h}},{key:"createImageCanvas",value:function(t){var i=this,n=document.createElement("canvas");n.width=this.A.imagesize[0],n.height=this.A.imagesize[1],n.spriteScale=1;var s,h=n.getContext("2d");this.A.url?((s=new Image).crossOrigin="Anonymous",s.onload=function(){h.drawImage(s,0,0,i.A.imagesize[0],i.A.imagesize[1]),t&&t(n)},s.src=this.A.url):t&&t(n)}},{key:"createTextCanvas",value:function(t){var i=this.getTextInfo(),n=this.getCanvasInfo(i),s=document.createElement("canvas");s.width=n.width,s.height=n.height;var h=s.getContext("2d");this.drawText(h,i,n);var e=this.drawPlate(s,n,i),h=1;if((1<i.length||"text"!==this.j.layout.style)&&(h=s.height/n.rowHeight),e.spriteScale=h,e.rowHeight=n.rowHeight,this.A.size=n.size,!t)return e;t(e)}},{key:"drawPlate",value:function(t,i,n){var s=this.j.text.padding;void 0===s&&(s=[0,0,0,0]);var h=this.j.text.plateColor,e=this.j.text.plateStrokeColor,r=this.j.text.plateStrokeWidth;if(void 0!==e&&void 0===r&&(r=1),void 0===h&&void 0===e)return t;var o=document.createElement("canvas"),u=0;void 0!==e?u=4*r:r=0,o.width=i.width+2*(s[1]+s[3])+u,o.height=i.height+2*(s[0]+s[2])+u;u=o.getContext("2d");return void 0!==h&&(u.rect(0,0,o.width,o.height),u.fillStyle=h,u.fill()),void 0!==e&&(u.lineWidth=r,u.rect(0,0,o.width,o.height),u.strokeStyle=e,u.stroke()),u.drawImage(t,2*(s[3]+r),2*(s[0]+r),t.width,t.height),1<n.length?i.size=i.size+(s[0]+s[2]+2*r)/n.length:i.size=i.size+(s[0]+s[2]+r)/n.length,o}},{key:"drawText",value:function(o,t,i){if(o.textBaseline="Alphabetic",1===t.length){var n=t[0],s=2*n.fontSize*1.2;a(n,2,i,i.height/2+s/3)}else for(var h=0,e=0;e<t.length;e++){var r=t[e],u=2*r.fontSize*1.2;0===e?h+=u:h=h+u+2*r.lineSpacing,a(r,2,i,h)}function a(t,i,n,s){var h=t.text,e=t.fontSize*i*1.2,r=e+"px "+t.fontFamily;void 0!==t.fontWeight&&(r=t.fontWeight+" "+e+"px "+t.fontFamily),o.font=r;r=1;void 0!==t.strokeColor?(o.strokeStyle=t.strokeColor,void 0!==t.strokeWidth&&(isNaN(""+t.strokeWidth)||(r=parseFloat(""+t.strokeWidth))),o.lineWidth=2*i*r):r=0,o.fillStyle=t.fillColor,t.textAlign===fengmap.FMTextAlign.Left?(o.textAlign="left",0!==r&&o.strokeText(h,0,s),o.fillText(h,0,s)):t.textAlign===fengmap.FMTextAlign.Right?(o.textAlign="right",0!==r&&o.strokeText(h,n.width,s),o.fillText(h,n.width,s)):(o.textAlign="center",0!==r&&o.strokeText(h,n.width/2,s),o.fillText(h,n.width/2,s))}}},{key:"getCanvasInfo",value:function(t){var i=document.createElement("canvas").getContext("2d");i.textBaseline="Alphabetic";for(var n=null,s=0,h=null,e=0,r=0,o=0;o<t.length;o++){var u=2*t[o].fontSize*1.2;(null===h||h<t[o].fontSize)&&(h=t[o].fontSize);var a=u+"px "+t[o].fontFamily;void 0!==t[o].fontWeight&&(a=t[o].fontWeight+" "+u+"px "+t[o].fontFamily),i.font=a;var c=i.measureText(t[o].text).width,a=u+2*t[o].lineSpacing,e=e+u+2*t[o].lineSpacing;r+=t[o].lineSpacing,s+=a,(null===n||n<c)&&(n=c)}var f=h;1<t.length&&(f+=r/t.length);var l=this.j.text.padding,v=this.j.text.plateStrokeColor,d=this.j.text.plateStrokeWidth;return{width:n,height:s,fontHeight:s,size:f,rowHeight:(e+2*((l=void 0===l?[0,0,0,0]:l)[0]+l[2])+2*(d=void 0===(d=void 0!==v&&void 0===d?1:d)?0:d)*2)/t.length}}},{key:"getTextInfo",value:function(){var t=this.A.map,i=this.j.text.content,n=i.lineSpacing;(n=void 0===n?2:n)<2&&(n=2);var s=i.textAlign;void 0===s&&(s=fengmap.FMTextAlign.Center);var h=i.fontSize;void 0===h&&(h=20);var e=i.fontWeight,r=i.fontFamily;void 0===r&&(r=t.getMapOptions().fontFamily);var o=i.fillColor;void 0===o&&(o="#000000");var u=i.strokeColor,a=i.strokeWidth;void 0!==u&&void 0===a&&(a=1);var c=i.text,f=[];if("string"==typeof c)if(c.indexOf("%rn%")<0)f.push({textAlign:s,fontSize:h,fontWeight:e,fontFamily:r,fillColor:o,strokeColor:u,strokeWidth:a,lineSpacing:0,text:c});else for(var l=c.split("%rn%"),v=0;v<l.length;v++)f.push({textAlign:s,fontSize:h,fontWeight:e,fontFamily:r,fillColor:o,strokeColor:u,strokeWidth:a,lineSpacing:n,text:l[v]});else for(var d=0;d<c.length;d++){var p=c[d];void 0===p.textAlign&&(p.textAlign=s),void 0===p.fontSize&&(p.fontSize=h),void 0===p.fontWeight&&(p.fontWeight=e),void 0===p.fontFamily&&(p.fontFamily=r),void 0===p.fillColor&&(p.fillColor=o),void 0===p.strokeColor&&(p.strokeColor=u),void 0===p.strokeWidth&&(p.strokeWidth=a),void 0===p.lineSpacing&&(p.lineSpacing=n),f.push(p)}return f}},{key:"getLocationScale",value:function(t,i){if(this.A.map.camera.isPerspectiveCamera){var n=new Y;t.updateMatrixWorld(),this.A.map.camera.updateMatrixWorld(),n.multiplyMatrices(this.A.map.camera.matrixWorldInverse,t.matrixWorld);n=(new M).applyMatrix4(n);return this.getScale(i)*Math.abs(n.z)}return this.getScale(i)}},{key:"getScale",value:function(t){var i=0,i=this.A.map.camera.isPerspectiveCamera?t/(this.A.map.getRenderManager().renderer.domElement.clientHeight/(2*Math.tan(this.A.map.camera.fov*pn.DEG2RAD/2))):t*Math.abs(this.A.map.camera.top-this.A.map.camera.bottom)/this.A.map.camera.zoom/this.A.map.getRenderManager().renderer.domElement.clientHeight;return i=isNaN(i)?1:i}}])&&Mn(t.prototype,i),s&&Mn(t,s),n}();function mn(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}var yn=function(){function t(){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,t)}var i,n,s;return i=t,s=[{key:"round",value:function(t){return 0<t.toFixed(2)?Math.ceil(t.toFixed(2)):Math.floor(t.toFixed(2))}},{key:"generateUUID",value:function(){for(var t=[],i=0;i<256;i++)t[i]=(i<16?"0":"")+i.toString(16);var n=4294967295*Math.random()|0,s=4294967295*Math.random()|0,h=4294967295*Math.random()|0,e=4294967295*Math.random()|0,e=t[255&n]+t[n>>8&255]+t[n>>16&255]+t[n>>24&255]+"-"+t[255&s]+t[s>>8&255]+"-"+t[s>>16&15|64]+t[s>>24&255]+"-"+t[63&h|128]+t[h>>8&255]+"-"+t[h>>16&255]+t[h>>24&255]+t[255&e]+t[e>>8&255]+t[e>>16&255]+t[e>>24&255];return t.length=0,e.toUpperCase()}},{key:"findNearNthPowerOfTwo",value:function(t){t-=1;return t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,(t|=t>>16)<0?1:1+t}},{key:"toRgba",value:function(t){if(void 0===t)return t;if("number"==typeof t)return"rgba("+parseInt(255*new At(t).r)+","+parseInt(255*new At(t).g)+","+parseInt(255*new At(t).b)+",1)";var i=t.split(",");return 3<=i.length?"rgba("+parseInt(i[0])+","+parseInt(i[1])+","+parseInt(i[2])+",1)":t}},{key:"toColor",value:function(t){if("number"==typeof t)return t;var i=t.split(",");return 3<=i.length?parseInt(i[0])<<16|parseInt(i[1])<<8|parseInt(i[2]):(console.error("color format error",t),0)}}],(n=null)&&mn(i.prototype,n),s&&mn(i,s),t}();function gn(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}n=function(){function i(t){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,i),this.H=(t=t||{}).src,this.B=t.dest,this.A=null,this.F=[],this.P=0,this.C=0,this.V=0,this.q=pn.THOUSAND,this.I=!1,this.U=!1,this.N=!0,this.Z=null,this.X=null,this.Y=yn.generateUUID()}var t,n,s;return t=i,(n=[{key:"play",value:function(){return this.D()}},{key:"pause",value:function(){return this.U=!0,this}},{key:"resume",value:function(){return this.U=!1,this.P+=this.V,this.V=0,this}},{key:"stop",value:function(){return this.N=!0,this}},{key:"finish",value:function(){return this.N=!0,this.X&&this.X(),this.F=[],this}}])&&gn(t.prototype,n),s&&gn(t,s),i}();Object.assign(n.prototype,{_:function(){for(var t in this)this[""+t]=null,delete this[""+t]},L:function(t){return this.H=t,this},G:function(t){return this.B=t,this},W:function(t){return this.q=t*pn.THOUSAND,this},Q:function(t){return this.C=t*pn.THOUSAND,this},J:function(t){return this.Z=t,this},$:function(t){return this.X=t,this},K:function(t){return this.I=t,this},D:function(){return this.N=!1,this.A&&(this.P=this.A.tt),this},it:function(){var t=new this.constructor({src:this.H,dest:this.B});return t.P=this.P,t.C=this.C,t.q=this.q,t.I=this.I,t.Z=this.Z,t.X=this.X,t},nt:function(){var t=this.B.concat(),i=this.H.concat();return this.H=t,this.B=i,this}});var bn=n;n=function t(){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,t),this.st=new Map,this.ht=[],this.tt=(new Date).getTime(),this.et=new Map,this.rt=null,this.ot=this.ot.bind(this),this.ut=0,this.ct()};Object.assign(n.prototype,{ft:function(t){if(Array.isArray(t)){this.st.set(t[0].Y,t[0]),t[0].A=this;for(var i=1;i<t.length;i++)t[i].P=t[i-1].P+t[i-1].q,t[i].C=t[i-1].C+t[i-1].q,this.st.set(t[i].Y,t[i]),t[i].A=this}else this.st.has(t.Y)||(this.st.set(t.Y,t),t.A=this,t.P=this.tt)},lt:function(t){if(Array.isArray(t))for(var i=0;i<t.length;i++)this.st.delete(t[i].Y);else this.st.delete(t.Y)},vt:function(t){this.ht.push(t)},dt:function(t){t=this.ht.indexOf(t);-1<t&&this.ht.splice(t,1)},pt:function(t){this.et.set(t.Y=yn.generateUUID(),t)},Mt:function(t){this.et.delete(t.Y)},Z:function(t,i,n){for(var s=[],h=[],e=0;e<t.H.length;e++)void 0===t.F[e]&&(t.F[e]=0),1<=i?(s.push(t.B[e]),h.push(t.B[e]-t.H[e]-t.F[e])):(s.push((t.B[e]-t.H[e])*i+t.H[e]),h.push((t.B[e]-t.H[e])*n),t.F[e]+=(t.B[e]-t.H[e])*n);t.Z({destination:s,delta:h}),s.length=0,h.length=0},ct:function(){var s=this;this.ut=requestAnimationFrame(this.ct.bind(this));var h=(new Date).getTime(),e=h-this.tt;this.et.forEach(function(t){return t(e)});for(var t=0;t<this.ht.length;t++)this.ht[t].update(e/1e3);this.st.forEach(function(t){var i,n;t.N||(t.U?t.V+=e:(i=(h-t.P)/t.q,n=e/t.q,s.Z(t,i,n),n=h-t.P-t.C,t.q<=n&&(t.F=[],t.I?(t.P=h,t.X&&t.X()):(n=t.N,t.N=!0,!n&&t.X&&t.X()))))}),this.tt=h,this.rt&&0===this.st.size&&this.ot()},_:function(t){this.rt=t},ot:function(){this.ut&&(window.cancelAnimationFrame(this.ut),this.ut=0),this.st.forEach(function(t){t._()}),this.st.clear(),this.ht=[],this.et.clear(),this.rt&&this.rt({name:"Animator"})}});var En=n;function kn(t){return(kn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Tn(t,i){for(var n=0;n<i.length;n++){var s=i[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function xn(t,i,n,s){return(xn="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(t,i,n,s){var h,t=An(t,i);if(t){if((h=Object.getOwnPropertyDescriptor(t,i)).set)return h.set.call(s,n),!0;if(!h.writable)return!1}if(h=Object.getOwnPropertyDescriptor(s,i)){if(!h.writable)return!1;h.value=n,Object.defineProperty(s,i,h)}else n=n,!void((i=i)in(s=s)?Object.defineProperty(s,i,{value:n,enumerable:!0,configurable:!0,writable:!0}):s[i]=n);return!0})(t,i,n,s)}function On(t,i,n,s,h){if(!xn(t,i,n,s||t)&&h)throw new Error("failed to set property");return n}function Rn(t,i,n){return(Rn="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,i,n){t=An(t,i);if(t){i=Object.getOwnPropertyDescriptor(t,i);return i.get?i.get.call(n):i.value}})(t,i,n||t)}function An(t,i){for(;!Object.prototype.hasOwnProperty.call(t,i)&&null!==(t=Bn(t)););return t}function jn(t,i){return(jn=Object.setPrototypeOf||function(t,i){return t.__proto__=i,t})(t,i)}function Sn(n){var s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}();return function(){var t,i=Bn(n);return t=s?(t=Bn(this).constructor,Reflect.construct(i,arguments,t)):i.apply(this,arguments),i=this,!(t=t)||"object"!==kn(t)&&"function"!=typeof t?Hn(i):t}}function Hn(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Bn(t){return(Bn=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}n=window.fengmap||{};n.FMCompositeMarker=function(){!function(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(i&&i.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),i&&jn(t,i)}(h,fengmap.FMTextMarker);var t,i,n,s=Sn(h);function h(t){!function(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}(this,h),void 0===t.anchor&&(t.anchor={baseon:"all",anchor:fengmap.FMMarkerAnchor.CENTER}),"image"!==t.layout.style&&"text"!==t.layout.style||(t.anchor.baseon="all"),void 0===t.collision&&(t.collision=!0),void 0!==t.render&&"flat"===t.render&&(t.collision=!1);var i={text:"",x:t.x,y:t.y,height:t.height,collision:!1};return"all"===t.anchor.baseon&&(i.anchor=t.anchor.anchor),(i=s.call(this,i)).myanchor=t.anchor,i.map=null,i.markerOptions=t,i.tool=new wn(Hn(i),t),i.mydepth=void 0!==t.depth&&t.depth,i.url=null,i.imagesize=[32,32],i.renderType=t.render,i.myrenderNode=null,void 0===i.renderType&&(i.renderType="billboard"),t.image&&(i.url=t.image.url,t.image.size&&(i.imagesize=t.image.size)),i.rotateAnimation=null,i.animator=new En,i.myUpdateSize=i.myUpdateSize.bind(Hn(i)),i.renderUpdate=i.renderUpdate.bind(Hn(i)),i.zoomUpdate=i.zoomUpdate.bind(Hn(i)),i}return t=h,(i=[{key:"addTo",value:function(t){Rn(Bn(h.prototype),"addTo",this).call(this,t),this.map=t.parent.parent,this.size=this.imagesize[1],this.map.on("zoom",this.zoomUpdate),"billboard"===this.renderType?(this.markerOptions.collision&&(this.visible=!1),this.tool.myUpdateMaterial()):this.myInit()}},{key:"stop",value:function(){Rn(Bn(h.prototype),"stop",this).call(this),this.rotateAnimation&&(this.animator.lt(this.rotateAnimation),this.rotateAnimation=null)}},{key:"remove",value:function(){Rn(Bn(h.prototype),"remove",this).call(this),this.map.off("zoom",this.zoomUpdate),"flat"===this.renderType&&this.myrenderNode&&this.myrenderNode.parent&&(this.rotateAnimation&&(this.animator.lt(this.rotateAnimation),this.rotateAnimation=null),this.myrenderNode.parent.remove(this.myrenderNode),this.myrenderNode=null,this.map.off("zoom",this.myUpdateSize),this.map.off("resize",this.myUpdateSize),this.map.off("viewChanged",this.myUpdateSize),this.map.off("update",this.renderUpdate))}},{key:"setText",value:function(t){this.markerOptions.text.content.text=t}},{key:"getText",value:function(){return this.markerOptions.text.content.text}},{key:"setImage",value:function(t,i){this.url=t,this.imagesize=i}},{key:"getImage",value:function(){return{url:this.url,size:this.imagesize}}},{key:"update",value:function(){var n=this;"billboard"===this.renderType?this.tool.myUpdateMaterial(!0):this.tool.createFlatMaterial(function(t){new Wi;var i=n.myrenderNode;i.material.map&&i.material.map.dispose(),i.material.dispose(),i.material=t,n.myUpdateSize()})}},{key:"moveTo",value:function(t){Rn(Bn(h.prototype),"moveTo",this).call(this,t)}},{key:"rotateTo",value:function(t){var i,n,s,h,e,r=this;"flat"===this.renderType&&(i=this.map,n=t.duration||.5,s=this.myrenderNode.rotation.y,h=t.heading%360*pn.DEG2RAD,e=0,e=s+(e=(h=-Math.PI+h)-s!=0?Math.sin(h-s)/Math.abs(Math.sin(h-s))*Math.acos(Math.cos(h-s)):e),t.animate?(this.rotateAnimation?(this.rotateAnimation.L([s]),this.rotateAnimation.G([h])):this.rotateAnimation=new bn({src:[s],dest:[e]}),this.rotateAnimation.W(n).J(function(t){r.myrenderNode&&(r.myrenderNode.rotation.y=t.destination[0],i.enableUpdateRender())}).$(function(){r.animator.lt(r.rotateAnimation),r.rotateAnimation=null,i.enableUpdateRender(),t.finish&&t.finish()}),this.animator.ft(this.rotateAnimation.D())):this.myrenderNode&&(this.myrenderNode.rotation.y=e,i.enableUpdateRender()))}},{key:"visible",get:function(){return Rn(Bn(h.prototype),"visible",this)},set:function(t){On(Bn(h.prototype),"visible",t,this,!0),"flat"===this.renderType&&(this.getRenderNode().visible=!1,null!==this.myrenderNode&&(this.myrenderNode.visible=t))}},{key:"plateColor",get:function(){return this.markerOptions.text.plateColor},set:function(t){this.markerOptions.text.plateColor=t}},{key:"plateStrokeColor",get:function(){return this.markerOptions.text.plateStrokeColor},set:function(t){this.markerOptions.text.plateStrokeColor=t}},{key:"height",get:function(){return Rn(Bn(h.prototype),"height",this)},set:function(t){On(Bn(h.prototype),"height",t,this,!0),this.renderUpdate(),this.map.enableUpdateRender()}},{key:"x",get:function(){return Rn(Bn(h.prototype),"x",this)}},{key:"y",get:function(){return Rn(Bn(h.prototype),"y",this)}},{key:"zoomRange",get:function(){var t=this.markerOptions.zoomRange;return t=void 0===t?[16,29]:t},set:function(t){this.markerOptions.zoomRange=t,this.zoomUpdate()}},{key:"opacity",get:function(){var t=this.markerOptions.opacity;return void 0===t?1:t},set:function(t){this.markerOptions.opacity=t}},{key:"level",get:function(){return Rn(Bn(h.prototype),"level",this)}},{key:"text",get:function(){return"image"!==this.markerOptions.layout.style?this.getText():" "}},{key:"type",get:function(){return Rn(Bn(h.prototype),"type",this)}},{key:"myInit",value:function(){var n=this;this.getRenderNode().visible=!1,this.tool.createFlatMaterial(function(t){var i=new Wi;n.myrenderNode=new Ii(i,t),n.myrenderNode.rotation.set(0,-Math.PI,-Math.PI,"XYZ"),n.myrenderNode.updateMatrixWorld(!0),n.myrenderNode.renderOrder=1,n.myrenderNode.mapNode=n.getRenderNode().mapNode,n.getRenderNode().parent.add(n.myrenderNode),n.myrenderNode.position.x=n.getRenderNode().position.x,n.myrenderNode.position.y=n.getRenderNode().position.y,n.myrenderNode.position.z=n.getRenderNode().position.z,n.map.enableUpdateRender(),n.myUpdateSize(),n.map.on("zoom",n.myUpdateSize),n.map.on("resize",n.myUpdateSize),n.map.on("viewChanged",n.myUpdateSize),n.map.on("update",n.renderUpdate),n.zoomUpdate()})}},{key:"myUpdateSize",value:function(){var t,i,n=this.map;n&&(t=this.myrenderNode.position,i=!1,(i=isNaN(t.x)||isNaN(t.y)||isNaN(t.z)||"number"!=typeof t.x||"number"!=typeof t.y||"number"!=typeof t.z?!0:i)||(i=this.tool.getLocationScale(this.myrenderNode,this.size),this.myrenderNode.scale.set(i,i,i),this.myrenderNode.scale.multiplyScalar(this.myrenderNode.material.userData.mspriteScale),this.myrenderNode.scale.setX(this.myrenderNode.scale.x/this.myrenderNode.material.userData.scaleRatio),n.enableUpdateRender()))}},{key:"renderUpdate",value:function(){var t;null!==this.myrenderNode&&(t=this.getRenderNode(),this.myrenderNode.position.x===t.position.x&&this.myrenderNode.position.y===t.position.y&&this.myrenderNode.position.z===t.position.z||(this.myrenderNode.position.x=t.position.x,this.myrenderNode.position.y=t.position.y,this.myrenderNode.position.z=t.position.z,this.map.enableUpdateRender()))}},{key:"zoomUpdate",value:function(){var t=this.markerOptions.zoomRange;void 0===t&&(t=[16,29]);var i=this.getRenderNode();"flat"===this.renderType&&(i=this.myrenderNode);var n=this.map.getZoom();!(n<t[0]||n>t[1])&&this.visible?i.visible=!0:i.visible=!1}},{key:"dispose",value:function(){this.remove()}},{key:"getAnchor",value:function(){var t="billboard"===this.renderType?{x:this.getRenderNode().center.x,y:this.getRenderNode().center.y}:{x:.5,y:.5};return t}},{key:"getScreenSize",value:function(){var t,i;return"billboard"===this.renderType?{width:(i=this.size*this.getRenderNode().material.userData.mspriteScale*1.1)/this.getRenderNode().material.userData.scaleRatio,height:i}:(t=this.markerOptions.layout.style,i=this.myrenderNode.material.map.image,"image"===t?{width:i.width,height:i.height}:{width:i.width/2,height:i.height/2})}}])&&Tn(t.prototype,i),n&&Tn(t,n),h}();i.default=n}],h.c=s,h.d=function(t,i,n){h.o(t,i)||Object.defineProperty(t,i,{enumerable:!0,get:n})},h.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"wt",{value:!0})},h.t=function(i,t){if(1&t&&(i=h(i)),8&t)return i;if(4&t&&"object"==typeof i&&i&&i.wt)return i;var n=Object.create(null);if(h.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:i}),2&t&&"string"!=typeof i)for(var s in i)h.d(n,s,function(t){return i[t]}.bind(null,s));return n},h.n=function(t){var i=t&&t.wt?function(){return t.default}:function(){return t};return h.d(i,"a",i),i},h.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},h.p="",h(h.s=0).default;function h(t){if(s[t])return s[t].exports;var i=s[t]={i:t,l:!1,exports:{}};return n[t].call(i.exports,i,i.exports,h),i.l=!0,i.exports}var n,s});