{"version":3,"sources":["webpack:///./src/images/panorama/1_鸟瞰哈尔滨国际会展中心2(1).jpg","webpack:///./src/images/panorama/2_鸟瞰A馆国际及港澳台馆1.jpg","webpack:///./src/views/History.vue?91a7","webpack:///./src/images/panorama/3_香港1.jpg","webpack:///./src/images/panorama/5_澳门1(1).jpg","webpack:///./src/images/panorama/1_鸟瞰哈尔滨国际会展中心2.jpg","webpack:///./src/images/panorama/5_澳门1.jpg","webpack:///./src/images/panorama/2_鸟瞰A馆国际及港澳台馆1(1).jpg","webpack:///./src/images/panorama/3_香港1(1).jpg","webpack:///./src/views/History.vue","webpack:///./node_modules/three/build/three.module.js","webpack:///./node_modules/three/examples/jsm/controls/OrbitControls.js","webpack:///./src/views/History.vue?cbb4","webpack:///./src/images/panorama/4_台湾1(1).jpg","webpack:///./src/images/panorama/icon_cell.gif","webpack:///./src/images/panorama/4_台湾1.jpg"],"names":["module","exports","style","ref","class","id","submit","type","round","bigImgList","item","key","label","value","src","name","infos","bigImgLists","filter","c","REVISION","MOUSE","LEFT","MIDDLE","RIGHT","ROTATE","DOLLY","PAN","TOUCH","DOLLY_PAN","DOLLY_ROTATE","CullFaceNone","CullFaceBack","CullFaceFront","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","ConstantColorFactor","OneMinusConstantColorFactor","ConstantAlphaFactor","OneMinusConstantAlphaFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","AgXToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","CubeUVReflectionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipmapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipmapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedInt248Type","AlphaFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","DepthFormat","DepthStencilFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","RGB_BPTC_SIGNED_Format","RGB_BPTC_UNSIGNED_Format","RED_RGTC1_Format","SIGNED_RED_RGTC1_Format","RED_GREEN_RGTC2_Format","SIGNED_RED_GREEN_RGTC2_Format","InterpolateDiscrete","InterpolateLinear","InterpolateSmooth","ZeroCurvatureEnding","ZeroSlopeEnding","WrapAroundEnding","LinearEncoding","sRGBEncoding","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","NoColorSpace","SRGBColorSpace","LinearSRGBColorSpace","DisplayP3ColorSpace","LinearDisplayP3ColorSpace","LinearTransfer","SRGBTransfer","Rec709Primaries","P3Primaries","KeepStencilOp","AlwaysStencilFunc","NeverCompare","LessCompare","EqualCompare","LessEqualCompare","GreaterCompare","NotEqualCompare","GreaterEqualCompare","AlwaysCompare","StaticDrawUsage","GLSL3","_SRGBAFormat","WebGLCoordinateSystem","WebGPUCoordinateSystem","EventDispatcher","listener","undefined","this","_listeners","listeners","indexOf","push","listenerArray","index","splice","event","target","array","slice","i","l","length","call","_lut","_seed","DEG2RAD","Math","PI","RAD2DEG","generateUUID","d0","random","d1","d2","d3","uuid","toLowerCase","clamp","min","max","euclideanModulo","n","m","mapLinear","x","a1","a2","b1","b2","inverseLerp","y","lerp","t","damp","lambda","dt","exp","pingpong","abs","smoothstep","smootherstep","randInt","low","high","floor","randFloat","randFloatSpread","range","seededRandom","s","imul","degToRad","degrees","radToDeg","radians","isPowerOfTwo","ceilPowerOfTwo","pow","ceil","log","LN2","floorPowerOfTwo","setQuaternionFromProperEuler","q","a","b","order","cos","sin","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","set","console","warn","denormalize","constructor","Float32Array","Uint32Array","Uint16Array","Uint8Array","Int32Array","Int16Array","Int8Array","Error","normalize","MathUtils","Vector2","prototype","isVector2","scalar","v","multiplyScalar","e","elements","minVal","maxVal","divideScalar","trunc","sqrt","angle","atan2","denominator","lengthSq","theta","dot","acos","distanceToSquared","dx","dy","alpha","v1","v2","offset","attribute","getX","getY","center","Symbol","iterator","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","isMatrix3","te","me","xAxis","yAxis","zAxis","setFromMatrix3Column","multiplyMatrices","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","d","f","g","h","t11","t12","t13","det","detInv","tmp","matrix4","setFromMatrix4","invert","transpose","r","tx","ty","sx","sy","rotation","cx","cy","premultiply","_m3","makeScale","makeRotation","makeTranslation","matrix","fromArray","arrayNeedsUint32","Uint8ClampedArray","Float64Array","createElementNS","document","createCanvasElement","canvas","display","warnOnce","message","LINEAR_SRGB_TO_LINEAR_DISPLAY_P3","LINEAR_DISPLAY_P3_TO_LINEAR_SRGB","COLOR_SPACES","transfer","primaries","toReference","color","fromReference","convertSRGBToLinear","convertLinearToSRGB","applyMatrix3","SUPPORTED_WORKING_COLOR_SPACES","Set","ColorManagement","enabled","_workingColorSpace","colorSpace","has","convert","sourceColorSpace","targetColorSpace","sourceToReference","targetFromReference","fromWorkingColorSpace","toWorkingColorSpace","getPrimaries","getTransfer","SRGBToLinear","LinearToSRGB","_canvas","ImageUtils","image","test","HTMLCanvasElement","width","height","context","getContext","ImageData","putImageData","drawImage","toDataURL","HTMLImageElement","ImageBitmap","imageData","getImageData","data","_sourceId","Source","isSource","Object","defineProperty","version","meta","isRootObject","images","output","url","Array","isArray","isDataTexture","serializeImage","getDataURL","from","_textureId","Texture","DEFAULT_IMAGE","mapping","DEFAULT_MAPPING","wrapS","wrapT","magFilter","minFilter","format","anisotropy","DEFAULT_ANISOTROPY","super","isTexture","source","mipmaps","channel","internalFormat","repeat","matrixAutoUpdate","generateMipmaps","premultiplyAlpha","flipY","unpackAlignment","userData","onUpdate","isRenderTargetTexture","needsPMREMUpdate","setUvTransform","copy","JSON","parse","stringify","needsUpdate","textures","metadata","generator","toJSON","wrap","keys","dispatchEvent","uv","encoding","Vector4","z","w","isVector4","epsilon","epsilon2","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","getZ","getW","RenderTarget","options","isRenderTarget","depth","scissor","scissorTest","viewport","assign","depthBuffer","stencilBuffer","depthTexture","samples","texture","dispose","clone","WebGLRenderTarget","isWebGLRenderTarget","DataArrayTexture","isDataArrayTexture","wrapR","Data3DTexture","isData3DTexture","Quaternion","isQuaternion","_x","_y","_z","_w","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","dir","sqrSin","Number","EPSILON","len","tDir","_onChangeCallback","quaternion","euler","update","_order","c1","c3","s1","s3","axis","halfAngle","trace","vFrom","vTo","step","angleTo","slerp","conjugate","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","u1","sqrt1u1","sqrtu1","u2","u3","toArray","callback","Vector3","isVector3","applyQuaternion","_quaternion$4","setFromEuler","setFromAxisAngle","vx","vy","vz","qx","qy","qz","qw","tz","camera","applyMatrix4","matrixWorldInverse","projectionMatrix","projectionMatrixInverse","matrixWorld","crossVectors","ax","ay","az","bx","by","bz","planeNormal","_vector$c","projectOnVector","sub","normal","dz","setFromSphericalCoords","radius","phi","sinPhiRadius","setFromCylindricalCoords","setFromMatrixColumn","sz","u","Box3","Infinity","isBox3","makeEmpty","il","expandByPoint","_vector$b","count","fromBufferAttribute","points","size","halfSize","add","object","precise","expandByObject","box","isEmpty","addVectors","subVectors","point","vector","addScalar","updateWorldMatrix","geometry","positionAttribute","getAttribute","isInstancedMesh","isMesh","getVertexPosition","boundingBox","computeBoundingBox","_box$4","union","children","sphere","clampPoint","plane","constant","triangle","getCenter","_center","_extents","_v0$2","_v1$7","_v2$4","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","distanceTo","getSize","_points","setFromPoints","equals","_testAxis","v0","extents","j","p0","p1","p2","_box$3","_v1$6","_v2$3","Sphere","isSphere","optionalCenter","maxRadiusSq","radiusSum","intersectsSphere","distanceToPoint","deltaLengthSq","expandByScalar","getMaxScaleOnAxis","delta","addScaledVector","setLength","_vector$a","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","origin","direction","ray","at","directionDistance","distanceSqToPoint","optionalPointOnRay","optionalPointOnSegment","segExtent","a01","b0","s0","sqrDist","extDet","invDet","tca","radius2","thc","t0","t1","distanceToPlane","distToPoint","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","isNaN","intersectBox","backfaceCulling","sign","DdN","DdQxE2","DdE1xQ","cross","QdN","transformDirection","Matrix4","n14","n24","n34","n41","n42","n43","n44","isMatrix4","scaleX","_v1$5","scaleY","scaleZ","af","bf","ce","cf","de","df","ac","ad","bc","bd","compose","_zero","_one","eye","up","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","t14","scaleXSq","scaleYSq","scaleZSq","yx","zx","zy","position","scale","x2","y2","z2","wx","wy","wz","determinant","_m1$2","invSX","invSY","invSZ","setFromRotationMatrix","left","right","top","bottom","near","far","coordinateSystem","p","zInv","_matrix$1","_quaternion$3","Euler","DEFAULT_ORDER","isEuler","asin","makeRotationFromQuaternion","newOrder","setFromQuaternion","Layers","mask","layers","_object3DId","_v1$4","_q1","_m1$1","_target","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","Object3D","isObject3D","parent","DEFAULT_UP","onRotationChange","onQuaternionChange","_onChange","defineProperties","configurable","enumerable","modelViewMatrix","normalMatrix","DEFAULT_MATRIX_AUTO_UPDATE","matrixWorldAutoUpdate","DEFAULT_MATRIX_WORLD_AUTO_UPDATE","matrixWorldNeedsUpdate","visible","castShadow","receiveShadow","frustumCulled","renderOrder","animations","updateMatrix","decompose","multiply","rotateOnAxis","distance","translateOnAxis","setFromMatrixPosition","isCamera","isLight","lookAt","extractRotation","arguments","error","remove","getObjectByProperty","child","result","getObjectsByProperty","traverse","traverseVisible","traverseAncestors","force","updateMatrixWorld","updateParents","updateChildren","geometries","materials","shapes","skeletons","nodes","serialize","library","element","instanceMatrix","instanceColor","isBatchedMesh","perObjectFrustumCulled","sortObjects","drawRanges","_drawRanges","reservedRanges","_reservedRanges","visibility","_visibility","active","_active","bounds","_bounds","map","bound","boxInitialized","boxMin","boxMax","sphereInitialized","sphereRadius","sphereCenter","maxGeometryCount","_maxGeometryCount","maxVertexCount","_maxVertexCount","maxIndexCount","_maxIndexCount","geometryInitialized","_geometryInitialized","geometryCount","_geometryCount","matricesTexture","_matricesTexture","boundingSphere","isScene","background","isColor","environment","isLine","isPoints","parameters","shape","isSkinnedMesh","bindMode","bindMatrix","skeleton","material","uuids","animation","extractFromCache","cache","values","recursive","_v0$1","_v1$3","_v2$2","_v3$1","_vab","_vac","_vbc","_vap","_vbp","_vcp","warnedGetUV","Triangle","targetLengthSq","dot00","dot01","dot02","dot11","dot12","denom","invDenom","getBarycoord","p3","uv1","uv2","uv3","getInterpolation","v3","setScalar","i0","i1","i2","getNormal","setFromCoplanarPoints","containsPoint","isFrontFacing","intersectsTriangle","d4","vc","d5","d6","vb","va","_colorKeywords","_hslA","_hslB","hue2rgb","Color","setHex","setStyle","setRGB","hex","workingColorSpace","handleAlpha","string","parseFloat","exec","components","parseInt","setHSL","charAt","setColorName","copySRGBToLinear","copyLinearToSRGB","_color","getHex","toString","hue","saturation","lightness","toFixed","getHSL","color1","color2","NAMES","_materialId","Material","isMaterial","blending","side","vertexColors","opacity","transparent","alphaHash","blendSrc","blendDst","blendEquation","blendSrcAlpha","blendDstAlpha","blendEquationAlpha","blendColor","blendAlpha","depthFunc","depthTest","depthWrite","stencilWriteMask","stencilFunc","stencilRef","stencilFuncMask","stencilFail","stencilZFail","stencilZPass","stencilWrite","clippingPlanes","clipIntersection","clipShadows","shadowSide","colorWrite","precision","polygonOffset","polygonOffsetFactor","polygonOffsetUnits","dithering","alphaToCoverage","premultipliedAlpha","forceSinglePass","toneMapped","_alphaTest","onBeforeCompile","newValue","currentValue","roughness","metalness","sheen","sheenColor","sheenRoughness","emissive","emissiveIntensity","specular","specularIntensity","specularColor","shininess","clearcoat","clearcoatRoughness","clearcoatMap","clearcoatRoughnessMap","clearcoatNormalMap","clearcoatNormalScale","iridescence","iridescenceIOR","iridescenceThicknessRange","iridescenceMap","iridescenceThicknessMap","anisotropyRotation","anisotropyMap","matcap","alphaMap","lightMap","lightMapIntensity","aoMap","aoMapIntensity","bumpMap","bumpScale","normalMap","normalMapType","normalScale","displacementMap","displacementScale","displacementBias","roughnessMap","metalnessMap","emissiveMap","specularMap","specularIntensityMap","specularColorMap","envMap","combine","envMapIntensity","reflectivity","refractionRatio","gradientMap","transmission","transmissionMap","thickness","thicknessMap","attenuationDistance","attenuationColor","sizeAttenuation","linewidth","dashSize","gapSize","alphaTest","wireframe","wireframeLinewidth","wireframeLinecap","wireframeLinejoin","flatShading","fog","srcPlanes","dstPlanes","MeshBasicMaterial","isMeshBasicMaterial","setValues","_vector$9","_vector2$1","BufferAttribute","itemSize","normalized","TypeError","isBufferAttribute","usage","_updateRange","updateRanges","gpuType","start","index1","index2","setXY","setXYZ","applyNormalMatrix","component","onUploadCallback","Uint16BufferAttribute","Uint32BufferAttribute","Float32BufferAttribute","_id$2","_m1","_obj","_offset","_box$2","_boxMorphTargets","_vector$8","BufferGeometry","isBufferGeometry","attributes","morphAttributes","morphTargetsRelative","groups","drawRange","materialIndex","getNormalMatrix","tangent","computeBoundingSphere","makeRotationX","makeRotationY","makeRotationZ","negate","translate","setAttribute","morphAttributesPosition","isGLBufferAttribute","setFromBufferAttribute","morphAttribute","jl","indices","positions","normals","uvs","nVertices","hasAttribute","tangents","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","handleTriangle","isFinite","group","tmp2","n2","handleVertex","normalAttribute","pA","pB","pC","nA","nB","nC","cb","ab","normalizeNormals","convertBufferAttribute","array2","isInterleavedBufferAttribute","stride","geometry2","newAttribute","morphArray","addGroup","hasMorphAttributes","attributeArray","setIndex","_inverseMatrix$3","_ray$3","_sphere$6","_sphereHitAt","_vA$1","_vB$1","_vC$1","_tempA","_morphA","_uvA$1","_uvB$1","_uvC$1","_normalA","_normalB","_normalC","_intersectionPoint","_intersectionPointWorld","Mesh","updateMorphTargets","morphTargetInfluences","morphTargetDictionary","ml","String","morphPosition","morphInfluences","influence","raycaster","intersects","recast","intersectSphere","intersectsBox","_computeIntersections","rayLocalSpace","intersection","groupMaterial","end","checkGeometryIntersection","faceIndex","face","checkIntersection","intersect","intersectTriangle","BoxGeometry","widthSegments","heightSegments","depthSegments","scope","vertices","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","iy","ix","cloneUniforms","property","mergeUniforms","uniforms","merged","cloneUniformsGroups","getUnlitUniformColorSpace","renderer","getRenderTarget","outputColorSpace","UniformsUtils","merge","default_vertex","default_fragment","ShaderMaterial","isShaderMaterial","defines","uniformsGroups","vertexShader","fragmentShader","lights","clipping","extensions","derivatives","fragDepth","drawBuffers","shaderTextureLOD","clipCullDistance","defaultAttributeValues","index0AttributeName","uniformsNeedUpdate","glslVersion","uniform","Camera","getWorldDirection","PerspectiveCamera","fov","aspect","isPerspectiveCamera","zoom","focus","view","filmGauge","filmOffset","updateProjectionMatrix","focalLength","vExtentSlope","getFilmHeight","atan","tan","fullWidth","fullHeight","offsetX","offsetY","skew","getFilmWidth","makePerspective","CubeCamera","renderTarget","activeMipmapLevel","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","cameras","concat","scene","updateCoordinateSystem","currentRenderTarget","currentActiveCubeFace","getActiveCubeFace","currentActiveMipmapLevel","getActiveMipmapLevel","currentXrEnabled","xr","setRenderTarget","render","CubeTexture","isCubeTexture","WebGLCubeRenderTarget","isWebGLCubeRenderTarget","shader","tEquirect","mesh","currentMinFilter","stencil","clear","_vector1","_vector2","_normalMatrix","Plane","isPlane","setFromNormalAndCoplanarPoint","inverseNormalLength","line","startSign","endSign","intersectsPlane","optionalNormalMatrix","referencePoint","coplanarPoint","_sphere$5","_vector$7","Frustum","p4","p5","planes","frustum","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","setComponents","sprite","negRadius","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","time","frame","requestAnimationFrame","stop","cancelAnimationFrame","setAnimationLoop","setContext","WebGLAttributes","gl","capabilities","isWebGL2","buffers","WeakMap","createBuffer","bufferType","byteLength","buffer","bindBuffer","bufferData","FLOAT","isFloat16BufferAttribute","HALF_FLOAT","UNSIGNED_SHORT","SHORT","UNSIGNED_INT","INT","BYTE","UNSIGNED_BYTE","bytesPerElement","BYTES_PER_ELEMENT","updateBuffer","updateRange","bufferSubData","subarray","clearUpdateRanges","get","deleteBuffer","delete","cached","elementSize","PlaneGeometry","width_half","height_half","segment_width","segment_height","alphahash_fragment","alphahash_pars_fragment","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","alphatest_pars_fragment","aomap_fragment","aomap_pars_fragment","batching_pars_vertex","batching_vertex","begin_vertex","beginnormal_vertex","bsdfs","iridescence_fragment","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","common","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","colorspace_fragment","colorspace_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_fragment","lightmap_pars_fragment","lights_lambert_fragment","lights_lambert_pars_fragment","lights_pars_begin","envmap_physical_pars_fragment","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphcolor_vertex","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normal_pars_fragment","normal_pars_vertex","normal_vertex","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","iridescence_pars_fragment","opaque_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmission_fragment","transmission_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","worldpos_vertex","vertex$h","fragment$h","vertex$g","fragment$g","vertex$f","fragment$f","vertex$e","fragment$e","vertex$d","fragment$d","vertex$c","fragment$c","vertex$b","fragment$b","vertex$a","fragment$a","vertex$9","fragment$9","vertex$8","fragment$8","vertex$7","fragment$7","vertex$6","fragment$6","vertex$5","fragment$5","vertex$4","fragment$4","vertex$3","fragment$3","vertex$2","fragment$2","vertex$1","fragment$1","ShaderChunk","background_vert","background_frag","backgroundCube_vert","backgroundCube_frag","cube_vert","cube_frag","depth_vert","depth_frag","distanceRGBA_vert","distanceRGBA_frag","equirect_vert","equirect_frag","linedashed_vert","linedashed_frag","meshbasic_vert","meshbasic_frag","meshlambert_vert","meshlambert_frag","meshmatcap_vert","meshmatcap_frag","meshnormal_vert","meshnormal_frag","meshphong_vert","meshphong_frag","meshphysical_vert","meshphysical_frag","meshtoon_vert","meshtoon_frag","points_vert","points_frag","shadow_vert","shadow_frag","sprite_vert","sprite_frag","UniformsLib","diffuse","mapTransform","alphaMapTransform","specularmap","specularMapTransform","envmap","flipEnvMap","ior","aomap","aoMapTransform","lightmap","lightMapTransform","bumpmap","bumpMapTransform","normalmap","normalMapTransform","displacementmap","displacementMapTransform","emissivemap","emissiveMapTransform","metalnessmap","metalnessMapTransform","roughnessmap","roughnessMapTransform","gradientmap","fogDensity","fogNear","fogFar","fogColor","ambientLightColor","lightProbe","directionalLights","properties","directionalLightShadows","shadowBias","shadowNormalBias","shadowRadius","shadowMapSize","directionalShadowMap","directionalShadowMatrix","spotLights","coneCos","penumbraCos","decay","spotLightShadows","spotLightMap","spotShadowMap","spotLightMatrix","pointLights","pointLightShadows","shadowCameraNear","shadowCameraFar","pointShadowMap","pointShadowMatrix","hemisphereLights","skyColor","groundColor","rectAreaLights","ltc_1","ltc_2","uvTransform","ShaderLib","basic","lambert","phong","standard","toon","dashed","totalSize","t2D","backgroundIntensity","backgroundCube","backgroundBlurriness","cube","tCube","tFlip","equirect","distanceRGBA","referencePosition","nearDistance","farDistance","shadow","physical","clearcoatMapTransform","clearcoatNormalMapTransform","clearcoatRoughnessMapTransform","iridescenceMapTransform","iridescenceThicknessMinimum","iridescenceThicknessMaximum","iridescenceThicknessMapTransform","sheenColorMap","sheenColorMapTransform","sheenRoughnessMap","sheenRoughnessMapTransform","transmissionMapTransform","transmissionSamplerSize","transmissionSamplerMap","thicknessMapTransform","specularColorMapTransform","specularIntensityMapTransform","anisotropyVector","anisotropyMapTransform","_rgb","WebGLBackground","cubemaps","cubeuvmaps","state","objects","clearColor","planeMesh","boxMesh","clearAlpha","currentBackground","currentBackgroundVersion","currentTonemapping","renderList","forceClear","usePMREM","setClear","environmentBlendMode","getEnvironmentBlendMode","autoClear","autoClearColor","autoClearDepth","autoClearStencil","deleteAttribute","onBeforeRender","copyPosition","toneMapping","enableAll","unshift","getRGB","getClearColor","setClearColor","getClearAlpha","setClearAlpha","WebGLBindingStates","maxVertexAttributes","getParameter","MAX_VERTEX_ATTRIBS","extension","vaoAvailable","bindingStates","defaultState","createBindingState","currentState","forceUpdate","setup","program","updateBuffers","getBindingState","bindVertexArrayObject","saveCache","ELEMENT_ARRAY_BUFFER","setupVertexAttributes","createVertexArrayObject","createVertexArray","createVertexArrayOES","vao","bindVertexArray","bindVertexArrayOES","deleteVertexArrayObject","deleteVertexArray","deleteVertexArrayOES","programMap","stateMap","newAttributes","enabledAttributes","attributeDivisors","cachedAttributes","geometryAttributes","attributesNum","programAttributes","getAttributes","programAttribute","location","cachedAttribute","geometryAttribute","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","enableVertexAttribArray","disableUnusedAttributes","disableVertexAttribArray","vertexAttribPointer","integer","vertexAttribIPointer","isInstancedBufferGeometry","materialDefaultAttributeValues","isInstancedInterleavedBuffer","locationSize","_maxInstanceCount","ARRAY_BUFFER","isInstancedBufferAttribute","vertexAttrib2fv","vertexAttrib3fv","vertexAttrib4fv","vertexAttrib1fv","reset","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","resetDefaultState","WebGLBufferRenderer","info","mode","setMode","drawArrays","renderInstances","primcount","methodName","renderMultiDraw","starts","counts","drawCount","multiDrawArraysWEBGL","elementCount","WebGLCapabilities","maxAnisotropy","getMaxAnisotropy","MAX_TEXTURE_MAX_ANISOTROPY_EXT","getMaxPrecision","getShaderPrecisionFormat","VERTEX_SHADER","HIGH_FLOAT","FRAGMENT_SHADER","MEDIUM_FLOAT","WebGL2RenderingContext","maxPrecision","logarithmicDepthBuffer","maxTextures","MAX_TEXTURE_IMAGE_UNITS","maxVertexTextures","MAX_VERTEX_TEXTURE_IMAGE_UNITS","maxTextureSize","MAX_TEXTURE_SIZE","maxCubemapSize","MAX_CUBE_MAP_TEXTURE_SIZE","maxAttributes","maxVertexUniforms","MAX_VERTEX_UNIFORM_VECTORS","maxVaryings","MAX_VARYING_VECTORS","maxFragmentUniforms","MAX_FRAGMENT_UNIFORM_VECTORS","vertexTextures","floatFragmentTextures","floatVertexTextures","maxSamples","MAX_SAMPLES","WebGLClipping","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","resetGlobalState","numPlanes","numIntersection","projectPlanes","skipTransform","nPlanes","dstArray","flatSize","viewMatrix","i4","init","enableLocalClipping","beginShadows","endShadows","setGlobalState","setState","useCache","materialProperties","nGlobal","lGlobal","clippingState","WebGLCubeMaps","mapTextureMapping","cubemap","fromEquirectangularTexture","addEventListener","onTextureDispose","removeEventListener","OrthographicCamera","isOrthographicCamera","scaleW","scaleH","makeOrthographic","LOD_MIN","EXTRA_LOD_SIGMA","_flatCamera","_clearColor","_oldTarget","_oldActiveCubeFace","_oldActiveMipmapLevel","PHI","INV_PHI","_axisDirections","PMREMGenerator","_renderer","_pingPongRenderTarget","_lodMax","_cubeSize","_lodPlanes","_sizeLods","_sigmas","_blurMaterial","_cubemapMaterial","_equirectMaterial","_compileMaterial","sigma","_setSize","cubeUVRenderTarget","_allocateTargets","_sceneToCubeUV","_blur","_applyPMREM","_cleanup","equirectangular","_fromTexture","_getCubemapMaterial","_getEquirectMaterial","_dispose","cubeSize","log2","outputTarget","_setViewport","_textureToCubeUV","params","_createRenderTarget","sizeLods","lodPlanes","sigmas","_createPlanes","_getBlurShader","tmpMesh","compile","cubeCamera","upSign","forwardSign","originalAutoClear","backgroundMaterial","backgroundBox","useSolidColor","col","poleAxis","lodIn","lodOut","pingPongRenderTarget","_halfBlur","targetIn","targetOut","sigmaRadians","blurMaterial","STANDARD_DEVIATIONS","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","weights","sum","weight","outputSize","lodMax","lod","totalLods","sizeLod","texelSize","cubeFaces","positionSize","uvSize","faceIndexSize","coordinates","fill","shaderMaterial","_getCommonVertexShader","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","isEquirectMap","isCubeMap","fromEquirectangular","fromCubemap","isCubeTextureComplete","cubemapUV","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","memory","updateWireframeAttribute","geometryIndex","geometryPosition","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","drawElements","multiDrawElementsWEBGL","WebGLInfo","calls","triangles","lines","instanceCount","TRIANGLES","LINES","LINE_STRIP","LINE_LOOP","POINTS","programs","autoReset","numericalSort","absNumericalSort","WebGLMorphtargets","influencesList","morphTextures","morph","workInfluences","objectInfluences","morphTargetsCount","entry","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","vertexDataStride","morphTarget","morphNormal","morphColor","disposeTexture","morphInfluencesSum","morphBaseInfluence","getUniforms","setValue","influences","sort","MAX_SAFE_INTEGER","WebGLObjects","updateMap","buffergeometry","hasEventListener","onInstancedMeshDispose","instancedMesh","DepthTexture","isDepthTexture","compareFunction","emptyTexture","emptyShadowTexture","emptyArrayTexture","empty3dTexture","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","copyArray","allocTexUnits","allocateTextureUnit","setValueV1f","uniform1f","addr","setValueV2f","uniform2f","uniform2fv","setValueV3f","uniform3f","uniform3fv","setValueV4f","uniform4f","uniform4fv","setValueM2","uniformMatrix2fv","setValueM3","uniformMatrix3fv","setValueM4","uniformMatrix4fv","setValueV1i","uniform1i","setValueV2i","uniform2i","uniform2iv","setValueV3i","uniform3i","uniform3iv","setValueV4i","uniform4i","uniform4iv","setValueV1ui","uniform1ui","setValueV2ui","uniform2ui","uniform2uiv","setValueV3ui","uniform3ui","uniform3uiv","setValueV4ui","uniform4ui","uniform4uiv","setValueT1","unit","emptyTexture2D","SAMPLER_2D_SHADOW","setTexture2D","setValueT3D1","setTexture3D","setValueT6","setTextureCube","setValueT2DArray1","setTexture2DArray","getSingularSetter","setValueV1fArray","uniform1fv","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","uniform1iv","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","uniform1uiv","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","getPureArraySetter","SingleUniform","activeInfo","PureArrayUniform","StructuredUniform","seq","RePathPart","addUniform","container","uniformObject","parseUniform","path","pathLength","lastIndex","match","matchEnd","idIsIndex","subscript","next","WebGLUniforms","getProgramParameter","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","WebGLShader","createShader","shaderSource","compileShader","COMPLETION_STATUS_KHR","programIdCount","handleSource","errorLine","split","lines2","to","join","getEncodingComponents","workingPrimaries","encodingPrimaries","gamutMapping","getShaderErrors","status","getShaderParameter","COMPILE_STATUS","errors","getShaderInfoLog","trim","errorMatches","toUpperCase","getShaderSource","getTexelEncodingFunction","functionName","getToneMappingFunction","toneMappingName","generateExtensions","chunks","extensionDerivatives","envMapCubeUVHeight","normalMapTangentSpace","shaderID","extensionFragDepth","rendererExtensionFragDepth","extensionDrawBuffers","rendererExtensionDrawBuffers","extensionShaderTextureLOD","rendererExtensionShaderTextureLod","filterEmptyLine","generateVertexExtensions","extensionClipCullDistance","generateDefines","fetchAttributeLocations","ACTIVE_ATTRIBUTES","getActiveAttrib","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","getAttribLocation","replaceLightNums","numSpotLightCoords","numSpotLightShadows","numSpotLightMaps","numSpotLightShadowsWithMaps","replace","numDirLights","numSpotLights","numRectAreaLights","numPointLights","numHemiLights","numDirLightShadows","numPointLightShadows","replaceClippingPlaneNums","numClippingPlanes","numClipIntersection","includePattern","resolveIncludes","includeReplacer","shaderChunkMap","Map","include","newInclude","unrollLoopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","generateShadowMapTypeDefine","shadowMapTypeDefine","shadowMapType","generateEnvMapTypeDefine","envMapTypeDefine","envMapMode","generateEnvMapModeDefine","envMapModeDefine","generateEnvMapBlendingDefine","envMapBlendingDefine","generateCubeUVSize","imageHeight","maxMip","texelHeight","texelWidth","WebGLProgram","cacheKey","envMapCubeUVSize","customExtensions","customVertexExtensions","customDefines","createProgram","prefixVertex","prefixFragment","versionString","isRawShaderMaterial","shaderType","shaderName","batching","instancing","instancingColor","useFog","fogExp2","normalMapObjectSpace","mapUv","alphaMapUv","lightMapUv","aoMapUv","emissiveMapUv","bumpMapUv","normalMapUv","displacementMapUv","metalnessMapUv","roughnessMapUv","anisotropyMapUv","clearcoatMapUv","clearcoatNormalMapUv","clearcoatRoughnessMapUv","iridescenceMapUv","iridescenceThicknessMapUv","sheenColorMapUv","sheenRoughnessMapUv","specularMapUv","specularColorMapUv","specularIntensityMapUv","transmissionMapUv","thicknessMapUv","vertexTangents","vertexAlphas","vertexUv1s","vertexUv2s","vertexUv3s","pointsUvs","skinning","morphTextureStride","doubleSided","flipSided","shadowMapEnabled","numLightProbes","useLegacyLights","decodeVideoTexture","opaque","useDepthPacking","depthPacking","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","onFirstUse","self","debug","checkShaderErrors","programLog","getProgramInfoLog","vertexLog","fragmentLog","runnable","haveDiagnostics","LINK_STATUS","onShaderError","vertexErrors","fragmentErrors","getError","VALIDATE_STATUS","diagnostics","prefix","deleteShader","cachedUniforms","attachShader","bindAttribLocation","linkProgram","programReady","rendererExtensionParallelShaderCompile","isReady","destroy","deleteProgram","usedTimes","_id$1","WebGLShaderCache","shaderCache","materialCache","vertexShaderStage","_getShaderStage","fragmentShaderStage","materialShaders","_getShaderCacheForMaterial","shaderStage","code","stage","WebGLShaderStage","WebGLPrograms","_programLayers","_customShaders","IS_WEBGL2","SUPPORTS_VERTEX_TEXTURES","shaderIDs","MeshDepthMaterial","MeshDistanceMaterial","MeshNormalMaterial","MeshLambertMaterial","MeshPhongMaterial","MeshToonMaterial","MeshStandardMaterial","MeshPhysicalMaterial","MeshMatcapMaterial","LineBasicMaterial","LineDashedMaterial","PointsMaterial","ShadowMaterial","SpriteMaterial","getChannel","getParameters","shadows","isMeshStandardMaterial","customVertexShaderID","customFragmentShaderID","getVertexShaderID","getFragmentShaderID","IS_INSTANCEDMESH","IS_BATCHEDMESH","HAS_MAP","HAS_MATCAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_ANISOTROPY","HAS_CLEARCOAT","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_ANISOTROPYMAP","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_GRADIENTMAP","HAS_ALPHAMAP","HAS_ALPHATEST","HAS_ALPHAHASH","HAS_EXTENSIONS","HAS_ATTRIBUTE_UV1","HAS_ATTRIBUTE_UV2","HAS_ATTRIBUTE_UV3","isXRRenderTarget","supportsVertexTextures","isFogExp2","directional","spot","rectArea","hemi","shadowMap","_useLegacyLights","isVideoTexture","customProgramCacheKey","getProgramCacheKey","getProgramCacheKeyParameters","getProgramCacheKeyBooleans","morphAttributeCount","disableAll","enable","acquireProgram","pl","preexistingProgram","releaseProgram","pop","releaseShaderCache","WebGLProperties","painterSortStable","groupOrder","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","transmissive","getNextRenderItem","renderItem","customOpaqueSort","customTransparentSort","finish","WebGLRenderLists","lists","renderCallDepth","listArray","list","UniformsCache","light","halfWidth","halfHeight","ShadowUniformsCache","nextVersion","shadowCastingAndTexturingLightsFirst","lightA","lightB","WebGLLights","shadowCache","hash","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","ambient","probe","directionalShadow","spotShadow","rectAreaLTC1","rectAreaLTC2","pointShadow","vector3","matrix42","numSpotShadowsWithMaps","scaleFactor","intensity","isAmbientLight","isLightProbe","sh","coefficients","isDirectionalLight","shadowUniforms","bias","normalBias","mapSize","isSpotLight","penumbra","updateMatrices","isRectAreaLight","isPointLight","isHemisphereLight","LTC_FLOAT_1","LTC_FLOAT_2","LTC_HALF_1","LTC_HALF_2","setupView","identity","WebGLRenderState","lightsArray","shadowsArray","pushLight","pushShadow","shadowLight","setupLights","setupLightsView","WebGLRenderStates","renderStates","renderStateArray","renderState","isMeshDepthMaterial","isMeshDistanceMaterial","vertex","fragment","WebGLShadowMap","_objects","_capabilities","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","_distanceMaterial","_materialCache","_maxTextureSize","shadowMaterialVertical","VSM_SAMPLES","shadow_pass","resolution","shadowMaterialHorizontal","HORIZONTAL_PASS","fullScreenTri","fullScreenMesh","autoUpdate","_previousType","VSMPass","blurSamples","mapPass","renderBufferDirect","getDepthMaterial","customMaterial","customDistanceMaterial","customDepthMaterial","keyA","keyB","materialsForVariant","cachedMaterial","onMaterialDispose","renderObject","shadowCamera","intersectsObject","k","kl","depthMaterial","onBeforeShadow","onAfterShadow","shadowMaterial","activeCubeFace","_state","setBlending","setTest","setScissorTest","toVSM","fromVSM","shadowFrameExtents","getFrameExtents","pars","viewportCount","getViewportCount","vp","getViewport","getFrustum","isPointLightShadow","WebGLState","ColorBuffer","locked","currentColorMask","currentColorClear","setMask","colorMask","setLocked","lock","DepthBuffer","currentDepthMask","currentDepthFunc","currentDepthClear","DEPTH_TEST","disable","depthMask","setFunc","NEVER","ALWAYS","LESS","LEQUAL","EQUAL","GEQUAL","GREATER","NOTEQUAL","clearDepth","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","STENCIL_TEST","stencilMask","setOp","stencilOp","clearStencil","colorBuffer","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentBlendColor","currentBlendAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","MAX_COMBINED_TEXTURE_IMAGE_UNITS","lineWidthAvailable","glVersion","VERSION","currentTextureSlot","currentBoundTextures","scissorParam","SCISSOR_BOX","viewportParam","VIEWPORT","currentScissor","currentViewport","createTexture","dimensions","bindTexture","texParameteri","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","TEXTURE_3D","TEXTURE_2D_ARRAY","texImage2D","RGBA","texImage3D","emptyTextures","bindFramebuffer","framebuffer","DRAW_FRAMEBUFFER","FRAMEBUFFER","isWebGLMultipleRenderTargets","COLOR_ATTACHMENT0","BACK","drawBuffersWEBGL","useProgram","TEXTURE_2D","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_POSITIVE_X","setFlipSided","setCullFace","CULL_FACE","equationToGL","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","MIN_EXT","MAX_EXT","factorToGL","ZERO","ONE","SRC_COLOR","SRC_ALPHA","SRC_ALPHA_SATURATE","DST_COLOR","DST_ALPHA","ONE_MINUS_SRC_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","BLEND","blendEquationSeparate","blendFuncSeparate","blendFunc","setMaterial","frontFaceCW","setPolygonOffset","SAMPLE_ALPHA_TO_COVERAGE","frontFace","CW","CCW","cullFace","FRONT","FRONT_AND_BACK","setLineWidth","lineWidth","factor","POLYGON_OFFSET_FILL","SCISSOR_TEST","activeTexture","webglSlot","TEXTURE0","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","apply","compressedTexImage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","texStorage2D","texStorage3D","updateUBOMapping","uniformsGroup","blockIndex","getUniformBlockIndex","uniformBlockBinding","__bindingPointIndex","KEEP","READ_FRAMEBUFFER","WebGLTextures","_gl","utils","multisampledRTTExt","supportsInvalidateFramebuffer","navigator","userAgent","_videoTextures","_sources","useOffscreenCanvas","OffscreenCanvas","err","createCanvas","resizeImage","needsPowerOfTwo","needsNewCanvas","maxSize","isPowerOfTwo$1","textureNeedsPowerOfTwo","textureNeedsGenerateMipmaps","supportsMips","generateMipmap","getInternalFormat","internalFormatName","glFormat","glType","forceLinearTransfer","RED","R32F","R16F","R8","RED_INTEGER","R8UI","R16UI","R32UI","R8I","R16I","R32I","RG","RG32F","RG16F","RG8","RGBA32F","RGBA16F","SRGB8_ALPHA8","RGBA8","UNSIGNED_SHORT_4_4_4_4","RGBA4","UNSIGNED_SHORT_5_5_5_1","RGB5_A1","getMipLevels","isFramebufferTexture","isCompressedTexture","filterFallback","LINEAR","deallocateTexture","onRenderTargetDispose","deallocateRenderTarget","textureProperties","__webglInit","webglTextures","__cacheKey","deleteTexture","__webglTexture","renderTargetProperties","__webglFramebuffer","level","deleteFramebuffer","__webglDepthbuffer","deleteRenderbuffer","__webglMultisampledFramebuffer","__webglColorRenderbuffer","__webglDepthRenderbuffer","attachmentProperties","textureUnits","resetTextureUnits","textureUnit","getTextureCacheKey","slot","updateVideoTexture","__version","complete","uploadTexture","uploadCubeTexture","wrappingToGL","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","filterToGL","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","compareToGL","setTextureParameters","textureType","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_WRAP_R","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","__currentAnisotropy","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","initTexture","forceUpload","textureCacheKey","isCompressedArrayTexture","sourceProperties","texturePrimaries","unpackConversion","NONE","BROWSER_DEFAULT_WEBGL","pixelStorei","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","verifyColorSpace","mipmap","glInternalFormat","useTexStorage","allocateMemory","levels","DEPTH_COMPONENT","DEPTH_COMPONENT32F","DEPTH_COMPONENT24","DEPTH24_STENCIL8","DEPTH_COMPONENT16","DEPTH_STENCIL","isCompressed","cubeImage","mipmapImage","setupFrameBufferTexture","attachment","textureTarget","__hasExternalTextures","useMultisampledRTT","framebufferTexture2DMultisampleEXT","getRenderTargetSamples","TEXTURE_CUBE_MAP_NEGATIVE_Z","framebufferTexture2D","setupRenderBufferStorage","renderbuffer","isMultisample","bindRenderbuffer","RENDERBUFFER","renderbufferStorageMultisampleEXT","renderbufferStorageMultisample","renderbufferStorage","framebufferRenderbuffer","DEPTH_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","setupDepthTexture","isCube","webglDepthTexture","setupDepthRenderbuffer","__autoAllocateDepthBuffer","createRenderbuffer","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","createFramebuffer","glTextureType","isWebGL3DRenderTarget","isWebGLArrayRenderTarget","updateRenderTargetMipmap","updateMultisampleRenderTarget","COLOR_BUFFER_BIT","invalidationArray","depthStyle","ignoreDepthValues","__ignoreDepthValues","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","invalidateFramebuffer","blitFramebuffer","__useRenderToTexture","sRGBToLinear","WebGLUtils","HALF_FLOAT_OES","ALPHA","LUMINANCE","LUMINANCE_ALPHA","SRGB_ALPHA_EXT","RG_INTEGER","RGBA_INTEGER","COMPRESSED_SRGB_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_PVRTC_4BPPV1_IMG","COMPRESSED_RGB_PVRTC_2BPPV1_IMG","COMPRESSED_RGBA_PVRTC_4BPPV1_IMG","COMPRESSED_RGBA_PVRTC_2BPPV1_IMG","COMPRESSED_RGB_ETC1_WEBGL","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT","COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","UNSIGNED_INT_24_8","UNSIGNED_INT_24_8_WEBGL","ArrayCamera","isArrayCamera","Group","isGroup","_moveEvent","WebXRController","_targetRay","_grip","_hand","joints","inputState","pinching","hasLinearVelocity","linearVelocity","hasAngularVelocity","angularVelocity","inputSource","hand","inputjoint","_getHandJoint","referenceSpace","inputPose","gripPose","handPose","targetRay","grip","session","visibilityState","jointPose","getJointPose","joint","transform","jointRadius","indexTip","thumbTip","distanceToPinch","threshold","handedness","gripSpace","getPose","targetRaySpace","jointName","WebXRManager","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","getContextAttributes","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","currentSize","currentPixelRatio","cameraL","cameraR","cameraXR","_currentDepthNear","_currentDepthFar","onSessionEvent","controllerIndex","controller","onSessionEnd","onInputSourcesChange","disconnect","isPresenting","setPixelRatio","setSize","removed","added","connect","cameraAutoUpdate","getController","getTargetRaySpace","getControllerGrip","getGripSpace","getHand","getHandSpace","setFramebufferScaleFactor","setReferenceSpaceType","getReferenceSpace","setReferenceSpace","space","getBaseLayer","getBinding","getFrame","getSession","setSession","async","xrCompatible","makeXRCompatible","getPixelRatio","layerInit","antialias","XRWebGLLayer","updateRenderState","baseLayer","framebufferWidth","framebufferHeight","depthFormat","depthType","glDepthFormat","projectionlayerInit","colorFormat","XRWebGLBinding","createProjectionLayer","textureWidth","textureHeight","setFoveation","requestReferenceSpace","cameraLPos","cameraRPos","setProjectionFromUnion","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","translateX","translateZ","near2","far2","left2","right2","top2","bottom2","updateCamera","updateUserCamera","depthNear","depthFar","getCamera","getFoveation","fixedFoveation","onAnimationFrameCallback","getViewerPose","views","setRenderTargetFramebuffer","cameraXRNeedsUpdate","glSubImage","getViewSubImage","setRenderTargetTextures","depthStencilTexture","detectedPlanes","WebGLMaterials","refreshTransformUniform","refreshFogUniforms","isFog","density","refreshMaterialUniforms","pixelRatio","transmissionRenderTarget","isMeshLambertMaterial","refreshUniformsCommon","isMeshToonMaterial","refreshUniformsToon","isMeshPhongMaterial","refreshUniformsPhong","refreshUniformsStandard","isMeshPhysicalMaterial","refreshUniformsPhysical","isMeshMatcapMaterial","refreshUniformsMatcap","refreshUniformsDistance","isMeshNormalMaterial","isLineBasicMaterial","refreshUniformsLine","isLineDashedMaterial","refreshUniformsDash","isPointsMaterial","refreshUniformsPoints","isSpriteMaterial","refreshUniformsSprites","isShadowMaterial","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","MAX_UNIFORM_BUFFER_BINDINGS","bind","webglProgram","prepareUniformsGroup","onUniformsGroupsDispose","updateBufferData","bindingPointIndex","allocateBindingPointIndex","__size","UNIFORM_BUFFER","bindBufferBase","__cache","uniformArray","hasUniformChanged","__offset","arrayOffset","getUniformSize","__data","storage","indexArray","indexString","cachedObject","chunkSize","chunkOffsetUniform","boundary","chunkOffset","WebGLRenderer","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","_alpha","isWebGLRenderer","uintClearColor","intClearColor","currentRenderList","currentRenderState","renderListStack","renderStateStack","domElement","_outputColorSpace","toneMappingExposure","_this","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_currentClearColor","_currentClearAlpha","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_transmissionRenderTarget","_projScreenMatrix","_vector3","_emptyScene","overrideMaterial","getTargetPixelRatio","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","contextNames","contextAttributes","contextName","onContextLost","onContextRestore","onContextCreationError","isWebGL1Renderer","shift","WebGLRenderingContext","initGLContext","preventDefault","infoAutoReset","shadowMapAutoUpdate","shadowMapNeedsUpdate","statusMessage","deallocateMaterial","releaseMaterialProgramReferences","forEach","prepareMaterial","getProgram","forceContextLoss","loseContext","forceContextRestore","restoreContext","updateStyle","setViewport","getDrawingBufferSize","setDrawingBufferSize","getCurrentViewport","getScissor","setScissor","getScissorTest","boolean","setOpaqueSort","method","setTransparentSort","bits","isIntegerFormat","targetFormat","targetType","isUnsignedType","clearBufferuiv","COLOR","clearBufferiv","onXRSessionStart","onXRSessionEnd","setProgram","rangeFactor","drawStart","drawEnd","isLineSegments","isLineLoop","isSprite","_multiDrawStarts","_multiDrawCounts","_multiDrawCount","maxInstanceCount","targetScene","material2","compileAsync","Promise","resolve","checkMaterialsReady","setTimeout","projectObject","isLOD","intersectsSprite","renderScene","opaqueObjects","transmissiveObjects","transparentObjects","renderTransmissionPass","renderObjects","currentToneMapping","renderTargetNeedsUpdate","currentSide","onAfterRender","lightsStateVersion","programCacheKey","updateCommonMaterialProperties","onBuild","needsLights","materialNeedsLights","uniformsList","getUniformList","progUniforms","seqWithValue","needsProgramChange","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","cameraPosition","setOptional","boneTexture","computeBoneTexture","isMeshGouraudMaterial","markUniformsLightsNeedsUpdate","upload","setFromProjectionMatrix","camera2","defaultFramebuffer","__useDefaultFramebuffer","useDefaultFramebuffer","isRenderTarget3D","framebufferBound","layer","framebufferTextureLayer","readRenderTargetPixels","activeCubeFaceIndex","textureFormat","IMPLEMENTATION_COLOR_READ_FORMAT","halfFloatSupportedByExt","IMPLEMENTATION_COLOR_READ_TYPE","readPixels","copyFramebufferToTexture","levelScale","copyTexSubImage2D","copyTextureToTexture","srcTexture","dstTexture","copyTextureToTexture3D","sourceBox","glTarget","unpackRowLen","UNPACK_ROW_LENGTH","unpackImageHeight","UNPACK_IMAGE_HEIGHT","unpackSkipPixels","UNPACK_SKIP_PIXELS","unpackSkipRows","UNPACK_SKIP_ROWS","unpackSkipImages","UNPACK_SKIP_IMAGES","resetState","__THREE_DEVTOOLS__","CustomEvent","detail","drawingBufferColorSpace","unpackColorSpace","WebGL1Renderer","Scene","SphereGeometry","phiStart","phiLength","thetaStart","thetaLength","thetaEnd","grid","verticesRow","uOffset","convertArray","forceClone","isTypedArray","ArrayBuffer","isView","DataView","Interpolant","parameterPositions","sampleValues","sampleSize","resultBuffer","_cachedIndex","valueSize","settings","DefaultSettings_","pp","validate_interval","seek","linear_scan","forward_scan","giveUpAt","copySampleValue_","t1global","mid","intervalChanged_","interpolate_","CubicInterpolant","_weightPrev","_offsetPrev","_weightNext","_offsetNext","endingStart","endingEnd","iPrev","iNext","tPrev","tNext","getSettings_","halfDt","o1","o0","oP","oN","wP","wN","ppp","sP","sN","LinearInterpolant","offset1","offset0","weight1","weight0","DiscreteInterpolant","KeyframeTrack","times","interpolation","TimeBufferType","ValueBufferType","setInterpolation","DefaultInterpolation","track","trackType","json","ValueTypeName","getValueSize","factoryMethod","InterpolantFactoryMethodDiscrete","InterpolantFactoryMethodLinear","InterpolantFactoryMethodSmooth","createInterpolant","timeOffset","timeScale","startTime","endTime","nKeys","valid","prevTime","currTime","smoothInterpolation","writeIndex","keep","timeNext","offsetP","offsetN","readOffset","writeOffset","TypedKeyframeTrack","BooleanKeyframeTrack","ColorKeyframeTrack","NumberKeyframeTrack","QuaternionLinearInterpolant","slerpFlat","QuaternionKeyframeTrack","StringKeyframeTrack","VectorKeyframeTrack","Cache","files","file","LoadingManager","onLoad","onProgress","onError","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","onStart","itemStart","itemEnd","itemError","resolveURL","setURLModifier","addHandler","regex","loader","removeHandler","getHandler","global","DefaultLoadingManager","Loader","manager","crossOrigin","withCredentials","resourcePath","requestHeader","reject","load","DEFAULT_MATERIAL_NAME","ImageLoader","onImageLoad","removeEventListeners","onImageError","TextureLoader","setCrossOrigin","setPath","_RESERVED_CHARS_RE","_reservedRe","RegExp","_wordChar","_wordCharOrDot","_directoryRe","_nodeRe","_objectRe","_propertyRe","_trackRe","_supportedObjectNames","Composite","targetGroup","optionalParsedPath","parsedPath","PropertyBinding","parseTrackName","_targetGroup","_bindings","subscribe_","firstValidIndex","nCachedObjects_","binding","getValue","bindings","unbind","rootNode","node","findNode","nodeName","_getValue_unbound","_setValue_unbound","root","isAnimationObjectGroup","trackName","matches","results","objectName","objectIndex","propertyName","propertyIndex","lastDot","lastIndexOf","substring","bone","getBoneByName","searchNodeSubtree","childNode","subTreeNode","targetObject","resolvedProperty","dest","targetArray","sourceArray","_getValue_unavailable","_setValue_unavailable","bones","nodeProperty","versioning","Versioning","None","NeedsUpdate","MatrixWorldNeedsUpdate","bindingType","BindingType","Direct","ArrayElement","HasFromToArray","EntireArray","GetterByBindingType","SetterByBindingTypeAndVersioning","_getValue_direct","_getValue_array","_getValue_arrayElement","_getValue_toArray","_setValue_direct","_setValue_direct_setNeedsUpdate","_setValue_direct_setMatrixWorldNeedsUpdate","_setValue_array","_setValue_array_setNeedsUpdate","_setValue_array_setMatrixWorldNeedsUpdate","_setValue_arrayElement","_setValue_arrayElement_setNeedsUpdate","_setValue_arrayElement_setMatrixWorldNeedsUpdate","_setValue_fromArray","_setValue_fromArray_setNeedsUpdate","_setValue_fromArray_setMatrixWorldNeedsUpdate","Spherical","other","EPS","setFromCartesianCoords","revision","window","__THREE__","_changeEvent","_startEvent","_endEvent","_plane","TILT_LIMIT","touchAction","cursor","minDistance","maxDistance","minZoom","maxZoom","minTargetRadius","maxTargetRadius","minPolarAngle","maxPolarAngle","minAzimuthAngle","maxAzimuthAngle","enableDamping","dampingFactor","enableZoom","zoomSpeed","enableRotate","rotateSpeed","enablePan","panSpeed","screenSpacePanning","keyPanSpeed","zoomToCursor","autoRotate","autoRotateSpeed","UP","BOTTOM","mouseButtons","touches","TWO","target0","position0","zoom0","_domElementKeyEvents","getPolarAngle","spherical","getAzimuthalAngle","getDistance","listenToKeyEvents","onKeyDown","stopListenToKeyEvents","saveState","STATE","quat","setFromUnitVectors","quatInverse","lastPosition","lastQuaternion","lastTargetPosition","twoPI","deltaTime","setFromVector3","rotateLeft","getAutoRotationAngle","sphericalDelta","makeSafe","panOffset","clampLength","performCursorZoom","clampDistance","setFromSpherical","zoomChanged","newRadius","prevRadius","radiusDelta","dollyDirection","mouseBefore","mouse","unproject","mouseAfter","intersectPlane","onContextMenu","onPointerDown","onPointerUp","onMouseWheel","onPointerMove","TOUCH_ROTATE","TOUCH_PAN","TOUCH_DOLLY_PAN","TOUCH_DOLLY_ROTATE","rotateStart","rotateEnd","rotateDelta","panStart","panEnd","panDelta","dollyStart","dollyEnd","dollyDelta","pointers","pointerPositions","getZoomScale","normalized_delta","devicePixelRatio","rotateUp","panLeft","objectMatrix","panUp","pan","deltaX","deltaY","targetDistance","clientHeight","clientWidth","dollyOut","dollyScale","dollyIn","updateZoomParameters","rect","getBoundingClientRect","dist","handleMouseDownRotate","clientX","clientY","handleMouseDownDolly","handleMouseDownPan","handleMouseMoveRotate","handleMouseMoveDolly","handleMouseMovePan","handleMouseWheel","handleKeyDown","ctrlKey","metaKey","shiftKey","handleTouchStartRotate","pageX","pageY","getSecondPointerPosition","handleTouchStartPan","handleTouchStartDolly","handleTouchStartDollyPan","handleTouchStartDollyRotate","handleTouchMoveRotate","handleTouchMovePan","handleTouchMoveDolly","centerX","centerY","handleTouchMoveDollyPan","handleTouchMoveDollyRotate","setPointerCapture","pointerId","addPointer","pointerType","onTouchStart","onMouseDown","onTouchMove","onMouseMove","removePointer","releasePointerCapture","mouseAction","button","trackPointer","passive","controls","anchorPoint","animationFrameId","ids","spriteMaterial","anchorIdMap","textureCache","spheres","orbitControl","mounted","GetSetpHistory","beforeUnmount","methods","$http","$route","query","then","res","success","destroyThreejs","content","$refs","mount","querySelector","removeChild","appendChild","sphereGeometry","sphereMaterial","animate","$router","__exports__"],"mappings":"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","file":"js/chunk-7ea516f6.37b4b204.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/1_鸟瞰哈尔滨国际会展中心2(1).5831de59.jpg\";","module.exports = __webpack_public_path__ + \"img/2_鸟瞰A馆国际及港澳台馆1.10120c74.jpg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./History.vue?vue&type=style&index=0&id=6a429d45&scoped=true&lang=css\"","module.exports = __webpack_public_path__ + \"img/3_香港1.6f8e4f73.jpg\";","module.exports = __webpack_public_path__ + \"img/5_澳门1(1).aafcfe3b.jpg\";","module.exports = __webpack_public_path__ + \"img/1_鸟瞰哈尔滨国际会展中心2.a38ddc8d.jpg\";","module.exports = __webpack_public_path__ + \"img/5_澳门1.5835624d.jpg\";","module.exports = __webpack_public_path__ + \"img/2_鸟瞰A馆国际及港澳台馆1(1).e325202d.jpg\";","module.exports = __webpack_public_path__ + \"img/3_香港1(1).232ae429.jpg\";","\r\n \r\n 退出\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n - \r\n
c.id == item.id)[0])\"> \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n ","/**\n * @license\n * Copyright 2010-2023 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '160';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst TwoPassDoubleSide = 2; // r149\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst AlphaFormat = 1021;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\n/** @deprecated Use LinearSRGBColorSpace or NoColorSpace in three.js r152+. */\nconst LinearEncoding = 3000;\n/** @deprecated Use SRGBColorSpace in three.js r152+. */\nconst sRGBEncoding = 3001;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\nconst DisplayP3ColorSpace = 'display-p3';\nconst LinearDisplayP3ColorSpace = 'display-p3-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst Rec709Primaries = 'rec709';\nconst P3Primaries = 'p3';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst _SRGBAFormat = 1035; // fallback for WebGL 1\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\n/**\n * Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping\n * or clipping. Based on W3C specifications for sRGB and Display P3,\n * and ICC specifications for the D50 connection space. Values in/out\n * are _linear_ sRGB and _linear_ Display P3.\n *\n * Note that both sRGB and Display P3 use the sRGB transfer functions.\n *\n * Reference:\n * - http://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n\nconst LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().set(\n\t0.8224621, 0.177538, 0.0,\n\t0.0331941, 0.9668058, 0.0,\n\t0.0170827, 0.0723974, 0.9105199,\n);\n\nconst LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().set(\n\t1.2249401, - 0.2249404, 0.0,\n\t- 0.0420569, 1.0420571, 0.0,\n\t- 0.0196376, - 0.0786361, 1.0982735\n);\n\n/**\n * Defines supported color spaces by transfer function and primaries,\n * and provides conversions to/from the Linear-sRGB reference space.\n */\nconst COLOR_SPACES = {\n\t[ LinearSRGBColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color,\n\t\tfromReference: ( color ) => color,\n\t},\n\t[ SRGBColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear(),\n\t\tfromReference: ( color ) => color.convertLinearToSRGB(),\n\t},\n\t[ LinearDisplayP3ColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ),\n\t},\n\t[ DisplayP3ColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(),\n\t},\n};\n\nconst SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] );\n\nconst ColorManagement = {\n\n\tenabled: true,\n\n\t_workingColorSpace: LinearSRGBColorSpace,\n\n\tget workingColorSpace() {\n\n\t\treturn this._workingColorSpace;\n\n\t},\n\n\tset workingColorSpace( colorSpace ) {\n\n\t\tif ( ! SUPPORTED_WORKING_COLOR_SPACES.has( colorSpace ) ) {\n\n\t\t\tthrow new Error( `Unsupported working color space, \"${ colorSpace }\".` );\n\n\t\t}\n\n\t\tthis._workingColorSpace = colorSpace;\n\n\t},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tconst sourceToReference = COLOR_SPACES[ sourceColorSpace ].toReference;\n\t\tconst targetFromReference = COLOR_SPACES[ targetColorSpace ].fromReference;\n\n\t\treturn targetFromReference( sourceToReference( color ) );\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this._workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this._workingColorSpace );\n\n\t},\n\n\tgetPrimaries: function ( colorSpace ) {\n\n\t\treturn COLOR_SPACES[ colorSpace ].primaries;\n\n\t},\n\n\tgetTransfer: function ( colorSpace ) {\n\n\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\treturn COLOR_SPACES[ colorSpace ].transfer;\n\n\t},\n\n};\n\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tif ( typeof colorSpace === 'string' ) {\n\n\t\t\tthis.colorSpace = colorSpace;\n\n\t\t} else { // @deprecated, r152\n\n\t\t\twarnOnce( 'THREE.Texture: Property .encoding has been replaced by .colorSpace.' );\n\t\t\tthis.colorSpace = colorSpace === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n\n\t\t}\n\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.needsPMREMUpdate = false; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tget encoding() { // @deprecated, r152\n\n\t\twarnOnce( 'THREE.Texture: Property .encoding has been replaced by .colorSpace.' );\n\t\treturn this.colorSpace === SRGBColorSpace ? sRGBEncoding : LinearEncoding;\n\n\t}\n\n\tset encoding( encoding ) { // @deprecated, r152\n\n\t\twarnOnce( 'THREE.Texture: Property .encoding has been replaced by .colorSpace.' );\n\t\tthis.colorSpace = encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\tif ( options.encoding !== undefined ) {\n\n\t\t\t// @deprecated, r152\n\t\t\twarnOnce( 'THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace.' );\n\t\t\toptions.colorSpace = options.encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n\n\t\t}\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0\n\t\t}, options );\n\n\t\tthis.texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.flipY = false;\n\t\tthis.texture.generateMipmaps = options.generateMipmaps;\n\t\tthis.texture.internalFormat = options.internalFormat;\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tthis.texture.image.width = width;\n\t\t\tthis.texture.image.height = height;\n\t\t\tthis.texture.image.depth = depth;\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.texture = source.texture.clone();\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, count = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLMultipleRenderTargets = true;\n\n\t\tconst texture = this.texture;\n\n\t\tthis.texture = [];\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.texture[ i ] = texture.clone();\n\t\t\tthis.texture[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.texture.length; i < il; i ++ ) {\n\n\t\t\t\tthis.texture[ i ].image.width = width;\n\t\t\t\tthis.texture[ i ].image.height = height;\n\t\t\t\tthis.texture[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.dispose();\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.texture.length = 0;\n\n\t\tfor ( let i = 0, il = source.texture.length; i < il; i ++ ) {\n\n\t\t\tthis.texture[ i ] = source.texture[ i ].clone();\n\t\t\tthis.texture[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// Derived from http://planning.cs.uiuc.edu/node198.html\n\t\t// Note, this source uses w, x, y, z ordering,\n\t\t// so we swap the order below.\n\n\t\tconst u1 = Math.random();\n\t\tconst sqrt1u1 = Math.sqrt( 1 - u1 );\n\t\tconst sqrtu1 = Math.sqrt( u1 );\n\n\t\tconst u2 = 2 * Math.PI * Math.random();\n\n\t\tconst u3 = 2 * Math.PI * Math.random();\n\n\t\treturn this.set(\n\t\t\tsqrt1u1 * Math.cos( u2 ),\n\t\t\tsqrtu1 * Math.sin( u3 ),\n\t\t\tsqrtu1 * Math.cos( u3 ),\n\t\t\tsqrt1u1 * Math.sin( u2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// Derived from https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst u = ( Math.random() - 0.5 ) * 2;\n\t\tconst t = Math.random() * Math.PI * 2;\n\t\tconst f = Math.sqrt( 1 - u ** 2 );\n\n\t\tthis.x = f * Math.cos( t );\n\t\tthis.y = f * Math.sin( t );\n\t\tthis.z = u;\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$2.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$2.elements[ 0 ] *= invSX;\n\t\t_m1$2.elements[ 1 ] *= invSX;\n\t\t_m1$2.elements[ 2 ] *= invSX;\n\n\t\t_m1$2.elements[ 4 ] *= invSY;\n\t\t_m1$2.elements[ 5 ] *= invSY;\n\t\t_m1$2.elements[ 6 ] *= invSY;\n\n\t\t_m1$2.elements[ 8 ] *= invSZ;\n\t\t_m1$2.elements[ 9 ] *= invSZ;\n\t\t_m1$2.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$2 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$1.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$1, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tthis.add( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tif ( child.matrixWorldAutoUpdate === true || force === true ) {\n\n\t\t\t\tchild.updateMatrixWorld( force );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null && parent.matrixWorldAutoUpdate === true ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tif ( child.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxGeometryCount = this._maxGeometryCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$1 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nlet warnedGetUV = false;\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$1 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$1.x >= 0 ) && ( _v3$1.y >= 0 ) && ( ( _v3$1.x + _v3$1.y ) <= 1 );\n\n\t}\n\n\tstatic getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) { // @deprecated, r151\n\n\t\tif ( warnedGetUV === false ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation().' );\n\n\t\t\twarnedGetUV = true;\n\n\t\t}\n\n\t\treturn this.getInterpolation( point, p1, p2, p3, uv1, uv2, uv3, target );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$1 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$1.x );\n\t\ttarget.addScaledVector( v2, _v3$1.y );\n\t\ttarget.addScaledVector( v3, _v3$1.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetUV( point, uv1, uv2, uv3, target ) { // @deprecated, r151\n\n\t\tif ( warnedGetUV === false ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation().' );\n\n\t\t\twarnedGetUV = true;\n\n\t\t}\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, uv1, uv2, uv3, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis._updateRange = { offset: 0, count: - 1 };\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tget updateRange() {\n\n\t\tconsole.warn( 'THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159\n\t\treturn this._updateRange;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float64BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float64Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$2 = 0;\n\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst indices = index.array;\n\t\tconst positions = attributes.position.array;\n\t\tconst normals = attributes.normal.array;\n\t\tconst uvs = attributes.uv.array;\n\n\t\tconst nVertices = positions.length / 3;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) );\n\n\t\t}\n\n\t\tconst tangents = this.getAttribute( 'tangent' ).array;\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < nVertices; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromArray( positions, a * 3 );\n\t\t\tvB.fromArray( positions, b * 3 );\n\t\t\tvC.fromArray( positions, c * 3 );\n\n\t\t\tuvA.fromArray( uvs, a * 2 );\n\t\t\tuvB.fromArray( uvs, b * 2 );\n\t\t\tuvC.fromArray( uvs, c * 2 );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: indices.length\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindices[ j + 0 ],\n\t\t\t\t\tindices[ j + 1 ],\n\t\t\t\t\tindices[ j + 2 ]\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromArray( normals, v * 3 );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangents[ v * 4 ] = tmp.x;\n\t\t\ttangents[ v * 4 + 1 ] = tmp.y;\n\t\t\ttangents[ v * 4 + 2 ] = tmp.z;\n\t\t\ttangents[ v * 4 + 3 ] = w;\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( indices[ j + 0 ] );\n\t\t\t\thandleVertex( indices[ j + 1 ] );\n\t\t\t\thandleVertex( indices[ j + 2 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _normalA = /*@__PURE__*/ new Vector3();\nconst _normalB = /*@__PURE__*/ new Vector3();\nconst _normalC = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv1, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv1, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv1, c );\n\n\t\t\tintersection.uv1 = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\t\t\tintersection.uv2 = intersection.uv1; // @deprecated, r152\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\t_normalA.fromBufferAttribute( normal, a );\n\t\t\t_normalB.fromBufferAttribute( normal, b );\n\t\t\t_normalC.fromBufferAttribute( normal, c );\n\n\t\t\tintersection.normal = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _normalA, _normalB, _normalC, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tif ( renderer.getRenderTarget() === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tderivatives: false, // set to use derivatives\n\t\t\tfragDepth: false, // set to use fragment depth values\n\t\t\tdrawBuffers: false, // set to use draw buffers\n\t\t\tshaderTextureLOD: false, // set to use shader texture LOD\n\t\t\tclipCullDistance: false // set to use vertex shader clipping\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tif ( options.encoding !== undefined ) {\n\n\t\t\t// @deprecated, r152\n\t\t\twarnOnce( 'THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace.' );\n\t\t\toptions.colorSpace = options.encoding === sRGBEncoding ? SRGBColorSpace : NoColorSpace;\n\n\t\t}\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$5.center.set( 0, 0, 0 );\n\t\t_sphere$5.radius = 0.7071067811865476;\n\t\t_sphere$5.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute._updateRange; // deprecated\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 && updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t}\n\n\t\tif ( updateRanges.length !== 0 ) {\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\t\tarray.subarray( range.start, range.start + range.count ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\t// deprecated\n\t\tif ( updateRange.count !== - 1 ) {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\t} else {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray.subarray( updateRange.offset, updateRange.offset + updateRange.count ) );\n\n\t\t\t}\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\tattribute float batchId;\\n\\tuniform highp sampler2D batchingTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( batchId );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat luminance( const in vec3 rgb ) {\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\treturn dot( weights, rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn sRGBTransferOETF( value );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\treflectedLight.indirectDiffuse += lightMapIrradiance;\\n#endif\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\t#if defined ( LEGACY_LIGHTS )\\n\\t\\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\t\\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t#else\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t}\\n\\t\\treturn distanceFalloff;\\n\\t#endif\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\t\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\t\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\t\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n\\t#endif\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t\\tuniform sampler2DArray morphTargetsTexture;\\n\\t\\tuniform ivec2 morphTargetsTextureSize;\\n\\t\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t\\t}\\n\\t#else\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t\\t#else\\n\\t\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\t#ifdef MORPHTARGETS_TEXTURE\\n\\t\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t\\t}\\n\\t#else\\n\\t\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\t\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\t\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\t\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t\\t#ifndef USE_MORPHNORMALS\\n\\t\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec2 packDepthToRG( in highp float v ) {\\n\\treturn packDepthToRGBA( v ).yx;\\n}\\nfloat unpackRGToDepth( const in highp vec2 v ) {\\n\\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\treturn color;\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\trefractionCoords += 1.0;\\n\\t\\trefractionCoords /= 2.0;\\n\\t\\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\tvec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include