{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/webvr-polyfill/package.json","node_modules/webvr-polyfill/src/dpdb/dpdb.json","package.json","src/style/aframe.css","src/style/rStats.css","../three.js/build/three.js","../three.js/examples/js/loaders/ColladaLoader.js","../three.js/examples/js/loaders/GLTFLoader.js","../three.js/examples/js/loaders/MTLLoader.js","../three.js/examples/js/loaders/OBJLoader.js","node_modules/@tweenjs/tween.js/src/Tween.js","node_modules/an-array/index.js","node_modules/as-number/index.js","node_modules/base64-js/index.js","node_modules/browserify-css/browser.js","node_modules/browserify/node_modules/process/browser.js","node_modules/buffer-equal/index.js","node_modules/buffer/index.js","node_modules/buffer/node_modules/isarray/index.js","node_modules/debug/browser.js","node_modules/debug/debug.js","node_modules/deep-assign/index.js","node_modules/document-register-element/build/document-register-element.js","node_modules/dtype/index.js","node_modules/flatten-vertex-data/index.js","node_modules/for-each/index.js","node_modules/global/window.js","node_modules/ieee754/index.js","node_modules/inherits/inherits_browser.js","node_modules/is-buffer/index.js","node_modules/is-function/index.js","node_modules/is-obj/index.js","node_modules/layout-bmfont-text/index.js","node_modules/load-bmfont/browser.js","node_modules/load-bmfont/lib/is-binary.js","node_modules/object-assign/index.js","node_modules/parse-bmfont-ascii/index.js","node_modules/parse-bmfont-binary/index.js","node_modules/parse-bmfont-xml/lib/browser.js","node_modules/parse-bmfont-xml/lib/parse-attribs.js","node_modules/parse-headers/parse-headers.js","node_modules/present/lib/present-browser.js","node_modules/promise-polyfill/Promise.js","node_modules/quad-indices/index.js","node_modules/style-attr/lib/index.js","node_modules/three-bmfont-text/index.js","node_modules/three-bmfont-text/lib/utils.js","node_modules/three-bmfont-text/lib/vertices.js","node_modules/three-buffer-vertex-data/index.js","node_modules/trim/index.js","node_modules/webvr-polyfill/src/base.js","node_modules/webvr-polyfill/src/cardboard-distorter.js","node_modules/webvr-polyfill/src/cardboard-ui.js","node_modules/webvr-polyfill/src/cardboard-vr-display.js","node_modules/webvr-polyfill/src/deps/wglu-preserve-state.js","node_modules/webvr-polyfill/src/device-info.js","node_modules/webvr-polyfill/src/display-wrappers.js","node_modules/webvr-polyfill/src/distortion/distortion.js","node_modules/webvr-polyfill/src/dpdb/dpdb.js","node_modules/webvr-polyfill/src/main.js","node_modules/webvr-polyfill/src/math-util.js","node_modules/webvr-polyfill/src/mouse-keyboard-vr-display.js","node_modules/webvr-polyfill/src/node-entry.js","node_modules/webvr-polyfill/src/rotate-instructions.js","node_modules/webvr-polyfill/src/sensor-fusion/complementary-filter.js","node_modules/webvr-polyfill/src/sensor-fusion/fusion-pose-sensor.js","node_modules/webvr-polyfill/src/sensor-fusion/pose-predictor.js","node_modules/webvr-polyfill/src/sensor-fusion/sensor-sample.js","node_modules/webvr-polyfill/src/touch-panner.js","node_modules/webvr-polyfill/src/util.js","node_modules/webvr-polyfill/src/viewer-selector.js","node_modules/webvr-polyfill/src/wakelock.js","node_modules/webvr-polyfill/src/webvr-polyfill.js","node_modules/word-wrapper/index.js","node_modules/xhr/index.js","node_modules/xml-parse-from-string/index.js","node_modules/xtend/immutable.js","src/components/camera.js","src/components/collada-model.js","src/components/cursor.js","src/components/daydream-controls.js","src/components/gearvr-controls.js","src/components/geometry.js","src/components/gltf-model.js","src/components/hand-controls.js","src/components/index.js","src/components/laser-controls.js","src/components/light.js","src/components/line.js","src/components/link.js","src/components/look-controls.js","src/components/material.js","src/components/obj-model.js","src/components/oculus-touch-controls.js","src/components/position.js","src/components/raycaster.js","src/components/rotation.js","src/components/scale.js","src/components/scene/debug.js","src/components/scene/embedded.js","src/components/scene/fog.js","src/components/scene/inspector.js","src/components/scene/keyboard-shortcuts.js","src/components/scene/pool.js","src/components/scene/screenshot.js","src/components/scene/stats.js","src/components/scene/vr-mode-ui.js","src/components/shadow.js","src/components/sound.js","src/components/text.js","src/components/tracked-controls.js","src/components/visible.js","src/components/vive-controls.js","src/components/wasd-controls.js","src/components/windows-motion-controls.js","src/constants/animation.js","src/constants/index.js","src/constants/keyboardevent.js","src/core/a-animation.js","src/core/a-assets.js","src/core/a-cubemap.js","src/core/a-entity.js","src/core/a-mixin.js","src/core/a-node.js","src/core/a-register-element.js","src/core/component.js","src/core/geometry.js","src/core/propertyTypes.js","src/core/scene/a-scene.js","src/core/scene/metaTags.js","src/core/scene/postMessage.js","src/core/scene/scenes.js","src/core/scene/wakelock.js","src/core/schema.js","src/core/shader.js","src/core/system.js","src/extras/components/index.js","src/extras/components/pivot.js","src/extras/primitives/getMeshMixin.js","src/extras/primitives/index.js","src/extras/primitives/primitives.js","src/extras/primitives/primitives/a-camera.js","src/extras/primitives/primitives/a-collada-model.js","src/extras/primitives/primitives/a-cursor.js","src/extras/primitives/primitives/a-curvedimage.js","src/extras/primitives/primitives/a-gltf-model.js","src/extras/primitives/primitives/a-image.js","src/extras/primitives/primitives/a-light.js","src/extras/primitives/primitives/a-link.js","src/extras/primitives/primitives/a-obj-model.js","src/extras/primitives/primitives/a-sky.js","src/extras/primitives/primitives/a-sound.js","src/extras/primitives/primitives/a-text.js","src/extras/primitives/primitives/a-video.js","src/extras/primitives/primitives/a-videosphere.js","src/extras/primitives/primitives/meshPrimitives.js","src/geometries/box.js","src/geometries/circle.js","src/geometries/cone.js","src/geometries/cylinder.js","src/geometries/dodecahedron.js","src/geometries/icosahedron.js","src/geometries/index.js","src/geometries/octahedron.js","src/geometries/plane.js","src/geometries/ring.js","src/geometries/sphere.js","src/geometries/tetrahedron.js","src/geometries/torus.js","src/geometries/torusKnot.js","src/geometries/triangle.js","src/index.js","src/lib/rStatsAframe.js","src/lib/three.js","src/shaders/flat.js","src/shaders/index.js","src/shaders/ios10hls.js","src/shaders/msdf.js","src/shaders/sdf.js","src/shaders/standard.js","src/systems/camera.js","src/systems/geometry.js","src/systems/index.js","src/systems/light.js","src/systems/material.js","src/systems/shadow.js","src/systems/tracked-controls.js","src/utils/bind.js","src/utils/coordinates.js","src/utils/debug.js","src/utils/device.js","src/utils/entity.js","src/utils/forceCanvasResizeSafariMobile.js","src/utils/index.js","src/utils/material.js","src/utils/object-pool.js","src/utils/src-loader.js","src/utils/styleParser.js","src/utils/tracked-controls.js","vendor/VRControls.js","vendor/VREffect.js","vendor/rStats.extras.js","vendor/rStats.js","vendor/wakelock/util.js","vendor/wakelock/wakelock.js"],"names":["_Group","this","_tweens","_tweensAddedDuringUpdate","prototype","getAll","Object","keys","map","tweenId","bind","removeAll","add","tween","getId","remove","update","time","preserve","tweenIds","length","undefined","TWEEN","now","i","_isPlaying","Group","_nextId","nextId","process","hrtime","window","performance","Date","getTime","Tween","object","group","_object","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_repeat","_repeatDelayTime","_yoyo","_reversed","_delayTime","_startTime","_easingFunction","Easing","Linear","None","_interpolationFunction","Interpolation","_chainedTweens","_onStartCallback","_onStartCallbackFired","_onUpdateCallback","_onCompleteCallback","_onStopCallback","_group","_id","isPlaying","to","properties","duration","start","property","Array","concat","stop","call","stopChainedTweens","end","numChainedTweens","delay","amount","repeat","times","repeatDelay","yoyo","easing","interpolation","chain","arguments","onStart","callback","onUpdate","onComplete","onStop","elapsed","value","charAt","parseFloat","isFinite","tmp","k","Quadratic","In","Out","InOut","Cubic","Quartic","Quintic","Sinusoidal","Math","cos","PI","sin","Exponential","pow","Circular","sqrt","Elastic","Back","s","Bounce","v","m","f","floor","fn","Utils","Bezier","b","n","pw","bn","Bernstein","CatmullRom","p0","p1","t","fc","Factorial","a","p2","p3","v0","v1","t2","root","define","amd","module","exports","anArray","arr","BYTES_PER_ELEMENT","str","buffer","isArray","toString","num","def","placeHoldersCount","b64","len","Error","byteLength","toByteArray","l","placeHolders","Arr","L","revLookup","charCodeAt","tripletToBase64","lookup","encodeChunk","uint8","output","push","join","fromByteArray","extraBytes","parts","len2","Uint8Array","code","createLink","href","attributes","head","document","getElementsByTagName","link","createElement","rel","key","hasOwnProperty","setAttribute","appendChild","createStyle","cssText","style","type","sheet","innerHTML","styleSheet","createTextNode","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","e","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","timeout","run","Item","array","noop","nextTick","args","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","name","binding","cwd","chdir","dir","umask","Buffer","require","isBuffer","equals","typedArraySupport","__proto__","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","allocUnsafe","from","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","checked","string","isEncoding","actual","write","slice","fromArrayLike","byteOffset","obj","copy","isnan","data","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","val","isNaN","arrayIndexOf","indexOf","lastIndexOf","read","buf","indexSize","readUInt16BE","arrLength","valLength","String","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","replace","INVALID_BASE64_RE","trim","units","Infinity","leadSurrogate","byteArray","c","hi","lo","src","dst","INSPECT_MAX_BYTES","global","poolSize","_augment","Symbol","species","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","x","y","list","pos","swap16","swap32","swap64","inspect","match","target","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","useColors","documentElement","console","firebug","exception","table","navigator","userAgent","RegExp","$1","formatArgs","namespace","color","index","lastC","splice","log","Function","save","namespaces","storage","removeItem","debug","load","r","localstorage","localStorage","chrome","local","colors","formatters","JSON","stringify","enable","selectColor","prevColor","disabled","enabled","self","coerce","format","formatter","split","skips","names","disable","test","stack","message","toObject","assignKey","isObj","assign","getOwnPropertySymbols","symbols","propIsEnumerable","propertyIsEnumerable","st","gt","ot","it","w","at","ut","F","querySelectorAll","E","R","nodeName","toUpperCase","ft","lt","currentTarget","attrChange","attrName","Y","attributeChangedCallback","prevValue","newValue","ct","$","ht","G","removeEventListener","p","detail","u","o","vt","pt","U","Z","dt","P","nt","observe","X","Q","tt","addEventListener","d","h","createdCallback","created","I","S","contains","mt","rt","et","random","g","T","N","C","isPrototypeOf","getOwnPropertyDescriptor","A","getOwnPropertyNames","O","getPrototypeOf","M","setPrototypeOf","_","D","create","yt","H","MutationObserver","WebKitMutationObserver","B","HTMLElement","Element","Node","nodeType","q","cloneNode","getAttribute","z","removeAttribute","W","characterData","attributeOldValue","V","J","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","K","CustomEvent","bubbles","dispatchEvent","hasAttribute","propertyName","className","addedNodes","removedNodes","attributeName","oldValue","childList","subtree","shift","innerHTMLHelper","dtype","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","Uint8ClampedArray","flattenVertexData","dim","dstLength","Ctor","forEach","iterator","context","isFunction","forEachArray","forEachString","forEachObject","win","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","abs","LN2","ctor","superCtor","super_","constructor","enumerable","writable","TempCtor","isSlowBuffer","alert","confirm","prompt","TextLayout","opt","glyphs","_measure","computeMetrics","addGetter","get","wrapper","getGlyphById","font","id","chars","glyphIdx","findChar","getXHeight","X_HEIGHTS","idx","height","getMGlyph","M_WIDTHS","getCapHeight","CAP_HEIGHTS","getKerning","left","right","kernings","kern","first","second","getAlignType","align","ALIGN_CENTER","ALIGN_RIGHT","ALIGN_LEFT","wordWrap","xtend","number","TAB_ID","SPACE_ID","measure","_opt","tabSize","text","_setupSpaceGlyphs","lines","minWidth","width","maxLineWidth","reduce","prev","line","lineHeight","common","baseline","base","descender","letterSpacing","_width","_height","_descender","_baseline","_xHeight","_capHeight","_lineHeight","_ascender","lineIndex","lastGlyph","lineWidth","glyph","getGlyph","tx","position","xadvance","_linesTotal","_fallbackSpaceGlyph","_fallbackTabGlyph","space","tabWidth","xoffset","yoffset","curPen","curWidth","count","nextPen","nextWidth","isArrayBuffer","getBinaryOpts","xml2","responseType","XMLHttpRequest","req","overrideMimeType","xhr","parseASCII","parseXML","readBinary","isBinaryFormat","cb","uri","binary","err","body","statusCode","result","headers","parse","equal","HEADER","substring","shouldUseNative","test1","test2","test3","letter","source","splitLine","parseData","parseIntList","pages","lineData","file","readBlock","blockID","blockSize","info","readInfo","readCommon","readPages","readChars","readKernings","bitField","smooth","unicode","italic","bold","fixedHeight","charset","stretchH","aa","padding","spacing","outline","face","readStringNT","scaleW","scaleH","packed","alphaChnl","redChnl","greenChnl","blueChnl","readNameNT","char","page","chnl","every","byte","getAttribs","element","getAttribList","dict","attrib","mapName","nodeValue","attribs","NAME_MAP","parseAttributes","parseFromString","scaleh","scalew","stretchh","lineheight","alphachnl","redchnl","greenchnl","bluechnl","xmlRoot","pageRoot","childTag","children","child","GLYPH_DESIGNER_ERROR","row","present","dateNow","navigationStart","timing","performanceNow","noConflict","conflict","thisArg","Promise","_state","_value","_deferreds","doResolve","resolve","reject","handle","deferred","me","asap","onFulfilled","onRejected","then","finale","Handler","done","reason","ex","setTimeoutFunc","setImmediate","all","race","values","_setImmediateFn","CW","CCW","clockwise","numIndices","indices","raw","opts","preserveNumbers","getKeyValueChunks","filter","Boolean","item","isNumeric","nextSplit","chunks","hasUnclosedUrl","chunk","normalize","TextGeometry","Base","createLayout","inherits","createIndices","vertices","utils","THREE","BufferGeometry","layout","flipY","texWidth","texHeight","bitmap","visibleGlyphs","positions","uvs","attr","multipage","computeBoundingSphere","boundingSphere","Sphere","itemSize","radius","center","computeSphere","error","computeBoundingBox","boundingBox","Box3","bbox","makeEmpty","computeBox","bounds","box","minX","minY","maxX","maxY","bw","bh","u0","u1","setIndex","geometry","isR69","newAttrib","updateAttribute","addAttribute","rebuildAttribute","flatten","needsNewBuffer","setArray","warned","warn","BufferAttribute","needsUpdate","attribLength","VRFrameData","leftProjectionMatrix","leftViewMatrix","rightProjectionMatrix","rightViewMatrix","pose","VRDisplay","isPolyfilled","displayId","nextDisplayId","displayName","depthNear","depthFar","isConnected","isPresenting","capabilities","hasPosition","hasOrientation","hasExternalDisplay","canPresent","maxLayers","stageParameters","waitingForPresent_","layer_","fullscreenElement_","fullscreenWrapper_","fullscreenElementCachedStyle_","fullscreenEventTarget_","fullscreenChangeHandler_","fullscreenErrorHandler_","wakelock_","WakeLock","VRDevice","hardwareUnitId","deviceId","deviceName","HMDVRDevice","PositionSensorVRDevice","Util","hasShowDeprecationWarning","defaultLeftBounds","defaultRightBounds","getFrameData","frameData","frameDataFromPose","getPose","getImmediatePose","cancelAnimationFrame","wrapForFullscreen","isIOS","cssProperties","screen","classList","removeFullscreenWrapper","parent","parentElement","insertBefore","removeChild","firstChild","requestPresent","layers","wasPresenting","incomingLayer","leftBounds","rightBounds","layer","predistorted","fullscreenElement","onFullscreenChange","actualFullscreenElement","getFullscreenElement","orientation","lock","catch","beginPresent_","unlock","release","endPresent_","removeFullscreenListeners_","fireVRDisplayPresentChange_","onFullscreenError","addFullscreenListeners_","requestFullscreen","request","isWebViewAndroid","exitFullscreen","exitPresent","getLayers","event","display","fireVRDisplayConnect_","changeHandler","errorHandler","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","submitFrame","getEyeParameters","whichEye","CardboardDistorter","gl","ctxAttribs","getContextAttributes","meshWidth","meshHeight","bufferScale","WebVRConfig","BUFFER_SCALE","bufferWidth","drawingBufferWidth","bufferHeight","drawingBufferHeight","realBindFramebuffer","bindFramebuffer","realEnable","realDisable","realColorMask","colorMask","realClearColor","clearColor","realViewport","viewport","realCanvasWidth","canvas","realCanvasHeight","isPatched","lastBoundFramebuffer","cullFace","depthTest","blend","scissorTest","stencilTest","texCoord","program","linkProgram","distortionVS","distortionFS","uniforms","getProgramUniforms","viewportOffsetScale","setTextureBounds","vertexBuffer","indexBuffer","indexCount","renderTarget","createTexture","framebuffer","createFramebuffer","depthStencilBuffer","depthBuffer","stencilBuffer","depth","stencil","createRenderbuffer","patch","onResize","CARDBOARD_UI_DISABLED","cardboardUI","CardboardUI","WGLUPreserveGLState","destroy","unpatch","deleteProgram","deleteBuffer","deleteTexture","deleteFramebuffer","deleteRenderbuffer","glState","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","TEXTURE0","FRAMEBUFFER","SCISSOR_TEST","clear","COLOR_BUFFER_BIT","bindTexture","TEXTURE_2D","texImage2D","alpha","RGBA","RGB","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","LINEAR","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","framebufferTexture2D","COLOR_ATTACHMENT0","bindRenderbuffer","RENDERBUFFER","renderbufferStorage","DEPTH_STENCIL","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","DEPTH_COMPONENT16","DEPTH_ATTACHMENT","STENCIL_INDEX8","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","getScreenWidth","getScreenHeight","getParameter","FRAMEBUFFER_BINDING","CULL_FACE","DEPTH_TEST","BLEND","STENCIL_TEST","pname","COLOR_WRITEMASK","COLOR_CLEAR_VALUE","VIEWPORT","safariCssSizeWorkaround","DIRTY_SUBMIT_FRAME_BINDINGS","CURRENT_PROGRAM","ARRAY_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","useProgram","bindBuffer","ELEMENT_ARRAY_BUFFER","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","activeTexture","uniform1i","diffuse","uniform4fv","drawElements","TRIANGLES","UNSIGNED_SHORT","renderNoState","preserveDrawingBuffer","updateDeviceInfo","deviceInfo","computeMeshVertices_","bufferData","STATIC_DRAW","computeMeshIndices_","lensFrustum","getLeftEyeVisibleTanAngles","noLensFrustum","getLeftEyeNoLensTanAngles","getLeftEyeVisibleScreenRect","vidx","lerp","distortion","distortInverse","device","widthMeters","heightMeters","halfwidth","halfheight","iidx","getOwnPropertyDescriptor_","proto","descriptor","uiVS","uiFS","gearOffset","gearVertexCount","arrowOffset","arrowVertexCount","projMat","listener","DEG2RAD","kAnglePerGearSection","kOuterRimEndAngle","kInnerRimBeginAngle","kOuterRadius","kMiddleRadius","kInnerRadius","kCenterLineThicknessDp","kButtonWidthDp","kTouchSlopFactor","Angles","listen","optionsCallback","backCallback","midline","clientWidth","buttonSize","clientX","clientY","clientHeight","addGearSegment","theta","angle","buttonScale","addArrowVertex","buttonBorder","physicalPixels","devicePixelRatio","scalingRatio","dps","segmentTheta","angledLineWidth","render","uniform4f","orthoMatrix","uniformMatrix4fv","projectionMat","drawArrays","TRIANGLE_STRIP","CardboardVRDisplay","bufferScale_","poseSensor_","FusionPoseSensor","distorter_","cardboardUI_","dpdb_","Dpdb","onDeviceParamsUpdated_","deviceInfo_","DeviceInfo","getDeviceParams","viewerSelector_","ViewerSelector","onChange","onViewerChanged_","setViewer","getCurrentViewer","ROTATE_INSTRUCTIONS_DISABLED","rotateInstructions_","RotateInstructions","onResize_","Eye","LEFT","RIGHT","getPosition","getOrientation","linearVelocity","linearAcceleration","angularVelocity","angularAcceleration","resetPose","fieldOfView","viewer","interLensDistance","getFieldOfViewLeftEye","getFieldOfViewRightEye","renderWidth","renderHeight","newParams","isDebug","updateDeviceParams","updateBounds_","getContext","show","stopPropagation","preventDefault","isLandscapeMode","isMobile","showTemporarily","orientationHandler","onOrientationChange_","vrdisplaypresentchangeHandler","fireVRDisplayDeviceParamsChange_","hide","lastWidth","lastHeight","vrdisplay","bindings","boundValues","TEXTURE_BINDING_CUBE_MAP","textureUnit","TEXTURE31","ACTIVE_TEXTURE","boundValue","TEXTURE_CUBE_MAP","Device","params","bevelMeters","deviceParams","Viewers","CardboardV2","Distortion","distortionCoefficients","CardboardViewer","label","fov","baselineLensDistance","screenLensDistance","inverseCoefficients","MathUtil","DEFAULT_ANDROID","DEFAULT_IOS","CardboardV1","DEFAULT_LEFT_CENTER","DEFAULT_RIGHT_CENTER","determineDevice_","getDevice","metersPerPixelX","xdpi","metersPerPixelY","ydpi","bevelMm","getDistortedFieldOfViewLeftEye","eyeToScreenDistance","outerDist","innerDist","bottomDist","topDist","outerAngle","radToDeg","atan","distort","innerAngle","bottomAngle","topAngle","leftDegrees","rightDegrees","downDegrees","upDegrees","fovLeft","tan","degToRad","fovTop","fovRight","fovBottom","halfWidth","halfHeight","verticalLensOffset","centerX","centerY","centerZ","screenLeft","screenTop","screenRight","screenBottom","undistortedFrustum","dist","eyeX","eyeY","top","bottom","opt_isUndistorted","getUndistortedFieldOfViewLeftEye","getUndistortedParams_","getUndistortedViewportLeftEye","screenWidth","screenHeight","xPxPerTanAngle","yPxPerTanAngle","round","eyePosX","eyePosY","halfLensDistance","maxFov","viewerMax","VRDisplayHMDDevice","VRDisplayPositionSensorDevice","eyeParameters","currentFieldOfView","maximumFieldOfView","minimumFieldOfView","recommendedFieldOfView","eyeTranslation","renderRect","setFieldOfView","opt_fovLeft","opt_fovRight","opt_zNear","opt_zFar","getState","resetState","positionDevice","coefficients","r0","r1","dr0","dr1","r2","fetchOnline","onDeviceParamsUpdated","dpdb","DPDB_CACHE","recalculateDeviceParams_","open","ONLINE_DPDB_URL","loading","status","response","send","DeviceParams","newDeviceParams","calcDeviceParams_","db","devices","vendor","opera","rules","matched","rule","matchRule_","dpi","ua","resX","resY","WebVRPolyfill","extend","FORCE_ENABLE_VR","K_FILTER","PREDICTION_TIME_S","TOUCH_PANNER_DISABLED","YAW_ONLY","MOUSE_KEYBOARD_CONTROLS_DISABLED","DEFER_INITIALIZATION","ENABLE_DEPRECATED_API","ALWAYS_APPEND_POLYFILL_DISPLAY","GET_VR_DISPLAYS_TIMEOUT","InitializeWebVRPolyfill","Vector2","subVectors","Vector3","scalar","invScalar","multiplyScalar","applyQuaternion","qx","qy","qz","qw","ix","iy","iz","iw","dot","crossVectors","ax","ay","az","bx","by","bz","Quaternion","quaternion","setFromEulerXYZ","c1","c2","c3","s1","s2","s3","setFromEulerYXZ","setFromAxisAngle","axis","halfAngle","multiply","multiplyQuaternions","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","inverse","slerp","qb","cosHalfTheta","halfTheta","acos","sinHalfTheta","ratioA","ratioB","setFromUnitVectors","vFrom","vTo","MouseKeyboardVRDisplay","onKeyDown_","onMouseMove_","onMouseDown_","onMouseUp_","phi_","theta_","targetAngle_","angleAnimation_","orientation_","rotateStart_","rotateEnd_","rotateDelta_","isDragging_","orientationOut_","KEY_SPEED","KEY_ANIMATION_DURATION","MOUSE_SPEED_X","MOUSE_SPEED_Y","keyCode","animatePhi_","animateTheta_","targetAngle","animateKeyTransitions_","clamp","angleName","startAngle","startTime","animate","percent","isPointerLocked_","movementX","mozMovementX","movementY","mozMovementY","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","loadIcon_","overlay","backgroundColor","fontFamily","zIndex","img","icon","marginLeft","marginTop","textAlign","fontSize","margin","snackbar","boxSizing","snackbarText","float","snackbarButton","fontWeight","textTransform","borderLeft","paddingLeft","textDecoration","querySelector","ms","timer","disableShowTemporarily","ComplementaryFilter","kFilter","currentAccelMeasurement","SensorSample","currentGyroMeasurement","previousGyroMeasurement","filterQ","previousFilterQ","accelQ","isOrientationInitialized","estimatedGravity","measuredGravity","gyroIntegralQ","addAccelMeasurement","vector","timestampS","addGyroMeasurement","deltaT","isTimestampDeltaValid","run_","accelToQuaternion_","sample","gyroDeltaQ","gyroToQuaternionDelta_","invFilterQ","deltaQ","getQuaternionAngle","toFixed","targetQ","accel","normAccel","quat","gyro","accelerometer","gyroscope","posePredictor","PosePredictor","touchPanner","TouchPanner","filterToWorldQ","inverseWorldToScreenQ","worldToScreenQ","originalPoseAdjustQ","setScreenTransform_","resetQ","isFirefoxAndroid","predictedQ","getPrediction","previousTimestampS","resetSensor","onDeviceMotion_","deviceMotion","updateDeviceMotion_","accGravity","accelerationIncludingGravity","rotRate","rotationRate","timeStamp","deltaS","MIN_TIMESTEP","MAX_TIMESTEP","isR7","beta","gamma","screenOrientation","onMessage_","deviceMotionEvent","onDeviceMotionCallback_","onOrientationChangeCallback_","onMessageCallback_","isInsideCrossDomainIFrame","predictionTimeS","previousQ","outQ","currentQ","angularSpeed","predictAngle","sensorSample","onTouchStart_","onTouchMove_","onTouchEnd_","isTouching","rotateStart","rotateEnd","rotateDelta","ROTATE_SPEED","touches","pageX","pageY","mimeType","promises","platform","isSafari","rtn","timestampDeltaS","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","vertexSource","fragmentSource","attribLocationMap","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","fragmentShader","FRAGMENT_SHADER","createProgram","attachShader","attribName","bindAttribLocation","deleteShader","uniformCount","getProgramParameter","ACTIVE_UNIFORMS","uniformName","getActiveUniform","getUniformLocation","near","far","lr","bt","nf","copyArray","dest","check","getQueryParameter","regex","results","exec","location","search","decodeURIComponent","mat4_perspectiveFromFieldOfView","upTan","piOver180","rad45","downTan","leftTan","rightTan","xScale","yScale","mat4_fromRotationTranslation","x2","y2","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","mat4_translate","a00","a01","a02","a03","a10","a11","a12","a13","a20","a21","a22","a23","mat4_invert","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","updateEyeMatrices","projection","view","parameters","vrDisplay","defaultOrientation","defaultPosition","timestamp","isFramed","refDomain","getDomainFromUrl","referrer","thisDomain","url","domain","selectedKey","getItem","VIEWER_KEY","DEFAULT_VIEWER","dialog","createDialog_","onChangeCallbacks_","CLASS_NAME","getSelectedKey_","input","fireOnChange_","onSave_","setItem","options","container","background","overflow","boxShadow","createH1_","createChoice_","createButton_","h1","marginBottom","div","onclick","button","border","AndroidWakeLock","addSourceToVideo","dataURI","video","paused","play","pause","iOSWakeLock","setInterval","clearInterval","getWakeLock","displays","devicesPopulated","nativeWebVRAvailable","isWebVRAvailable","nativeLegacyWebVRAvailable","isDeprecatedWebVRAvailable","nativeGetVRDisplaysFunc","getVRDisplays","enablePolyfill","enableDeprecatedPolyfill","InstallWebVRSpecShim","connectDisplay","populateDevices","isCardboardCompatible","NativeVRFrameData","nativeFrameData","nativeGetFrameData","vrEnabled","isFullScreenAvailable","getVRDevices","polyfillDisplays","timeoutId","vrDisplaysNative","timeoutPromise","nativeDisplays","getVRDDevices","mozGetVRDevices","idxOf","chr","isWhitespace","whitespace","pre","lineStart","isNewline","newline","lineEnd","measured","greedy","mode","testWidth","MAX_VALUE","newLine","newlineChar","nextStart","monospace","isEmpty","initParams","createXHR","_createXHR","readystatechange","readyState","loadFunc","getBody","responseText","getXml","isJson","errorFunc","evt","timeoutTimer","failureResponse","aborted","useXDR","method","rawRequest","getAllResponseHeaders","parseHeaders","called","cors","XDomainRequest","sync","json","onreadystatechange","onload","onerror","onprogress","onabort","ontimeout","username","password","withCredentials","abort","setRequestHeader","beforeSend","responseXML","firefoxBugTakenEffect","DOMParser","ActiveXObject","xmlDoc","async","loadXML","registerComponent","checkHasPositionalTracking","Component","schema","active","default","userHeight","zoom","init","camera","el","sceneEl","savedPose","PerspectiveCamera","setObject3D","onEnterVR","onExitVR","is","oldData","system","addHeightOffset","aspect","innerWidth","innerHeight","updateProjectionMatrix","activeCameraEl","setActiveCamera","disableActiveCamera","removeObject3D","saveCameraPose","removeHeightOffset","restoreCameraPose","oldOffset","currentPosition","userHeightOffset","hasPositionalTracking","clone","rotation","model","loader","ColladaLoader","convertUpAxis","colladaModel","scene","EVENTS","CLICK","FUSING","MOUSEENTER","MOUSEDOWN","MOUSELEAVE","MOUSEUP","STATES","HOVERING","HOVERED","CANVAS_EVENTS","DOWN","UP","dependencies","downEvents","fuse","fuseTimeout","upEvents","rayOrigin","oneOf","cursorDownEl","intersection","intersectedEl","canvasBounds","getBoundingClientRect","updateCanvasBounds","debounce","eventDetail","intersectedEventDetail","cursorEl","onCursorDown","onCursorUp","onIntersection","onIntersectionCleared","onMouseMove","updateMouseEventListeners","addEventListeners","removeEventListeners","removeState","addCanvasListeners","downEvent","upEvent","direction","mouse","origin","rayCasterConfig","point","updateMatrixWorld","setFromMatrixPosition","matrixWorld","unproject","components","raycaster","checkIntersections","twoWayEmit","els","intersections","clearCurrentIntersection","addState","clearedEls","evtName","checkControllerPresentAndSetup","trackedControlsUtils","emitIfAxesChanged","onButtonEvent","DAYDREAM_CONTROLLER_MODEL_BASE_URL","DAYDREAM_CONTROLLER_MODEL_OBJ_URL","DAYDREAM_CONTROLLER_MODEL_OBJ_MTL","GAMEPAD_ID_PREFIX","hand","buttonColor","buttonTouchedColor","buttonHighlightColor","rotationOffset","armModel","mapping","axes","trackpad","buttons","bindMethods","onModelLoaded","onControllersUpdate","checkIfControllerPresent","removeControllersUpdateListener","onAxisMoved","animationActive","onButtonChanged","onButtonDown","onButtonUp","onButtonTouchStart","onButtonTouchEnd","controllerPresent","lastControllerCheck","controllerEventsActive","addControllersUpdateListener","injectTrackedControls","idPrefix","mtl","buttonMeshes","controllerObject3D","menu","getObjectByName","state","updateModel","buttonName","updateButtonModel","material","GEARVR_CONTROLLER_MODEL_BASE_URL","GEARVR_CONTROLLER_MODEL_OBJ_URL","GEARVR_CONTROLLER_MODEL_OBJ_MTL","trigger","geometries","geometryNames","dummyGeometry","Geometry","primitive","skipCache","previousData","mesh","unuseGeometry","getOrCreateGeometry","getObject3D","Mesh","updateSchema","newGeometryType","currentGeometryType","extendSchema","GLTFLoader","gltfModel","scenes","animations","getGestureEventName","gesture","eventName","isViveController","trackedControls","controllerId","controller","MODEL_URLS","ANIMATIONS","pointThumb","fist","hold","thumbUp","thumb","pressedButtons","touchedButtons","ObjectLoader","setCrossOrigin","onGripDown","handleButton","onGripUp","onTrackpadDown","onTrackpadUp","onTrackpadTouchStart","onTrackpadTouchEnd","onTriggerDown","onTriggerUp","onTriggerTouchStart","onTriggerTouchEnd","onGripTouchStart","onGripTouchEnd","onThumbstickDown","onThumbstickUp","onAorXTouchStart","onAorXTouchEnd","onBorYTouchStart","onBorYTouchEnd","onSurfaceTouchStart","onSurfaceTouchEnd","onControllerConnected","setModelVisibility","onControllerDisconnected","tick","delta","mixer","previousHand","controlConfiguration","skinning","AnimationMixer","visible","lastGesture","isPressed","isTouched","determineGesture","animateGesture","emitGestureEvents","isGripActive","isSurfaceActive","isTrackpadActive","isTriggerActive","isABXYActive","isVive","playAnimation","reverse","fromAction","toAction","clipAction","clampWhenFinished","loop","PingPong","repetitions","timeScale","weight","stopAllAction","crossFadeTo","createRay","controllerConfig","config","raycasterConfig","showLine","modelReady","cursor","hideRay","daydream-controls","gearvr-controls","oculus-touch-controls","vive-controls","windows-motion-controls","diff","if","groundColor","decay","distance","intensity","penumbra","castShadow","shadowBias","shadowCameraFar","shadowCameraFov","shadowCameraNear","shadowCameraTop","shadowCameraRight","shadowCameraBottom","shadowCameraLeft","shadowCameraVisible","shadowMapHeight","shadowMapWidth","light","defaultTarget","registerLight","diffData","shadowsLoaded","hasLoaded","onSetTarget","updateShadow","setLight","newLight","getLight","translateY","cameraHelper","CameraHelper","shadow","bias","mapSize","OrthographicCamera","Color","getHex","AmbientLight","DirectionalLight","HemisphereLight","PointLight","SpotLight","targetEl","object3D","isEqualVec3","opacity","multiple","LineBasicMaterial","transparent","Line","geoNeedsUpdate","positionArray","setStyle","registerShader","borderColor","highlighted","highlightedColor","image","peekMode","titleColor","visualAspectEnabled","navigate","previousQuaternion","quaternionClone","hiddenEls","initVisualAspect","strokeColor","updateEventListener","updatePeekMode","sphereEl","hideAll","showAll","semiSphereEl","textEl","segments","shader","pano","side","phiStart","segmentsWidth","segmentsHeight","phiLength","thetaStart","thetaLength","borderEnabled","cameraWorldPosition","elWorldPosition","scale","cameraPortalOrientation","matrix","decompose","distanceTo","lookAt","calculateCameraPortalOrientation","peekCameraPortalOrientation","traverse","cameraEl","mat4","Matrix4","cameraPosition","portalNormal","portalPosition","extractRotation","applyMatrix4","localToWorld","sign","isNullVector","DEFAULT_CAMERA_HEIGHT","GRABBING_CLASS","PI_2","touchEnabled","hmdEnabled","reverseMouseDrag","standing","previousHMDPosition","hmdQuaternion","hmdEuler","Euler","deltaRotation","setupMouseControls","setupHMDControls","updateGrabCursor","pitchObject","yawObject","controls","getUserHeight","updateOrientation","updatePosition","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","mouseDown","Object3D","dolly","euler","VRControls","canvasEl","currentRotation","setFromQuaternion","calculateDeltaRotation","currentRotationX","currentRotationY","previousRotationX","previousRotationY","currentHMDPosition","calculateHMDPosition","updateMatrix","previousMouseEvent","screenX","screenY","touchStart","touchStarted","deltaY","enableGrabCursor","disableGrabCursor","parseSide","BackSide","DoubleSide","FrontSide","parseVertexColors","coloring","FaceColors","VertexColors","NoColors","disposeMaterial","dispose","unregisterMaterial","component","shaders","shaderNames","alphaTest","depthWrite","flatShading","npot","vertexColors","updateShader","updateMaterial","newShader","currentShader","updateBehavior","tickProperties","addBehavior","removeBehavior","shaderName","shaderInstance","Shader","setMaterial","defaultMaterial","MeshBasicMaterial","registerMaterial","waitForMesh","objLoader","OBJLoader","mtlLoader","MTLLoader","manager","crossOrigin","loadObj","objUrl","mtlUrl","setTexturePath","materials","preload","setMaterials","objModel","TOUCH_CONTROLLER_MODEL_BASE_URL","TOUCH_CONTROLLER_MODEL_OBJ_URL_L","TOUCH_CONTROLLER_MODEL_OBJ_MTL_L","TOUCH_CONTROLLER_MODEL_OBJ_URL_R","TOUCH_CONTROLLER_MODEL_OBJ_MTL_R","PIVOT_OFFSET","buttonTouchColor","thumbstick","previousButtonValues","updateControllerModel","analogValue","grip","leftHand","xbutton","abutton","ybutton","bbutton","flattenChildrenShallow","groups","objects","OBSERVER_SELECTOR_RE","OBSERVER_CONFIG","autoRefresh","interval","recursive","useWorldCoordinates","clearedIntersectedEls","unitLineEndVec3","intersectedEls","newIntersectedEls","newIntersections","prevCheckTime","prevIntersectedEls","Raycaster","updateOriginDirection","setDirty","observer","dirty","lineEndVec3","otherLineEndVec3","intersectedClearedDetail","intersectionClearedDetail","drawLine","disconnect","refreshObjects","lineLength","rawIntersections","intersectObjects","originVec3","getWorldPosition","transformDirection","endVec3","order","zeroScale","register","enterVREl","removeFullScreenStyles","addFullScreenStyles","getFog","fog","FogExp2","density","Fog","isScene","systems","updateMaterials","getFuzzyPatchVersion","AFRAME_INJECTED","pkg","INSPECTOR_DEV_URL","INSPECTOR_RELEASE_URL","INSPECTOR_URL","INSPECTOR_VERSION","LOADING_MESSAGE","LOADING_ERROR_MESSAGE","onKeydown","onMessage","initOverlay","loadingMessageEl","shortcutPressed","ctrlKey","altKey","injectInspector","showLoader","hideLoader","script","AFRAME","INSPECTOR","inspectorInjected","shouldCaptureKeyEvent","enterVR","exitVR","enterVREnabled","mixin","dynamic","initPool","availableEls","usedEls","createEntity","wrapPlay","playMethod","requestEntity","returnEntity","setup","renderer","cubeMapSize","MAX_CUBE_MAP_TEXTURE_SIZE","RawShaderMaterial","quad","PlaneBufferGeometry","ctx","onKeyDown","onCameraActive","getRenderTarget","WebGLRenderTarget","minFilter","LinearFilter","magFilter","wrapS","ClampToEdgeWrapping","wrapT","RGBAFormat","UnsignedByteType","resize","cameraParent","shiftKey","capture","setCapture","cubeCamera","getWorldRotation","CubeCamera","updateCubeMap","texture","renderCapture","saveCapture","getCanvas","imageData","pixels","autoClear","readRenderTargetPixels","flipPixelsVertically","ImageData","putImageData","flippedPixels","toBlob","blob","fileName","linkEl","URL","createObjectURL","click","createStats","threeStats","ThreeStats","aframeStats","AFrameStats","plugins","RStats","css","fps","caption","below","HIDDEN_CLASS","getUrlParameter","stats","statsEl","hideBound","showBound","parentNode","frame","createEnterVRButton","onClick","vrButton","ENTER_VR_CLASS","constants","ENTER_VR_BTN_CLASS","createOrientationModal","modal","ORIENTATION_MODAL_CLASS","exit","insideLoader","orientationModalEl","updateEnterVRInterface","toggleOrientationModalIfNeeded","onEnterVRButtonClick","onModalClick","uiElement","toggleEnterVRButtonIfNeeded","isLandscape","cast","receive","onMeshChanged","setShadowMapEnabled","updateDescendants","node","receiveShadow","autoplay","distanceModel","maxDistance","positional","refDistance","rolloffFactor","volume","audioLoader","AudioLoader","pool","loaded","mustPlay","playSound","srcChanged","setupSound","sound","setDistanceModel","setMaxDistance","setRefDistance","setRolloffFactor","setLoop","setVolume","isPaused","setBuffer","Cache","stopSound","oldEvt","audioListener","AudioListener","PositionalAudio","Audio","onEnded","pauseSound","coerceData","loadFont","yOffset","loadBMFont","ch","loadTexture","ImageLoader","shaderObject","updateBaseMaterial","computeWidth","wrapPixels","wrapCount","widthFactor","computeFontWidthFactor","sum","digitsum","digits","PromiseCache","cache","promiseGenerator","createTextGeometry","coreShader","DEFAULT_WIDTH","MAX_ANISOTROPY","FONT_BASE_URL","FONTS","aileronsemibold","dejavu","exo2bold","exo2semibold","kelsonsans","monoid","mozillavr","roboto","sourcecodepro","MSDF_FONTS","DEFAULT_FONT","fontWidthFactors","textures","anchor","fontImage","whiteSpace","xOffset","zOffset","createOrUpdateMaterial","currentFont","getFontImageSrc","Texture","anisotropy","updateFont","updateGeometry","updateLayout","hasChangedShader","NewShader","shaderData","fontSrc","lookupFont","coercedData","fontImgSrc","fontObj","textRenderWidth","textScale","geometryComponent","ascender","controllerUtils","DEFAULT_HANDEDNESS","EYES_TO_ELBOW","FOREARM","headElement","buttonStates","changedAxes","targetControllerNumber","axisMoveEventDetail","changed","controllerEuler","controllerPosition","controllerQuaternion","deltaControllerPosition","standingMatrix","previousControllerPosition","updateGamepad","updatePose","updateButtons","defaultUserHeight","getHeadElement","findMatchingController","controllers","applyArmModel","headCamera","headEl","headObject3D","applyAxisAngle","up","fromArray","applyEuler","elPosition","sittingToStandingTransform","compose","multiplyMatrices","setFromRotationMatrix","buttonState","pressed","touched","handleAxes","handlePress","handleTouch","handleValue","controllerAxes","previousAxis","previousButtonState","VIVE_CONTROLLER_MODEL_OBJ_URL","VIVE_CONTROLLER_MODEL_OBJ_MTL","controllerIndex","setButtonColor","isEmptyObject","KEYCODE_TO_CODE","keyboardevent","CLAMP_VELOCITY","MAX_DELTA","KEYS","acceleration","adAxis","adEnabled","adInverted","fly","wsAxis","wsEnabled","wsInverted","velocity","onBlur","onFocus","onKeyUp","onVisibilityChange","attachVisibilityEventListeners","movementVector","updateVelocity","getMovementVector","removeKeyEventListeners","removeVisibilityEventListeners","attachKeyEventListeners","adSign","wsSign","KeyA","ArrowLeft","KeyD","ArrowRight","KeyW","ArrowUp","KeyS","ArrowDown","directionVector","rotationEuler","xRotation","hidden","MODEL_BASE_URL","MODEL_FILENAMES","GAMEPAD_ID_PATTERN","pair","hideDisconnected","axisMeshNames","buttonMeshNames","pointingPoseMeshName","onModelError","loadedMeshInfo","axisMeshes","createdFromMesh","sourceUrl","createControllerModelUrl","loadModel","forceDefault","filename","trackedControlsComponent","defaultUrl","getImmediateChildByName","object3d","meshName","meshInfo","rootNode","controllerModel","unpressed","calculateRayOriginFromMesh","getWorldQuaternion","lerpAxisTransform","axisValue","axisMeshInfo","lerpValue","setRotationFromQuaternion","lerpVectors","lerpButtonTransform","buttonValue","buttonMeshInfo","numAxes","modelVisible","DIRECTIONS","alternate","alternateReverse","normal","EASING_FUNCTIONS","linear","ease","ease-in","ease-out","ease-in-out","ease-cubic","ease-in-cubic","ease-out-cubic","ease-in-out-cubic","ease-quad","ease-in-quad","ease-out-quad","ease-in-out-quad","ease-quart","ease-in-quart","ease-out-quart","ease-in-out-quart","ease-quint","ease-in-quint","ease-out-quint","ease-in-out-quint","ease-sine","ease-in-sine","ease-out-sine","ease-in-out-sine","ease-expo","ease-in-expo","ease-out-expo","ease-in-out-expo","ease-circ","ease-in-circ","ease-out-circ","ease-in-out-circ","ease-elastic","ease-in-elastic","ease-out-elastic","ease-in-out-elastic","ease-back","ease-in-back","ease-out-back","ease-in-out-back","ease-bounce","ease-in-bounce","ease-out-bounce","ease-in-out-bounce","FILLS","backwards","both","forwards","none","REPEATS","indefinite","DEFAULTS","attribute","begin","dur","defaults","directions","easingFunctions","fills","repeats","animation","38","37","40","39","87","65","83","68","cloneValue","getAnimationValues","dataFrom","dataTo","currentValue","getForColorComponent","partialSetAttribute","attributeSplit","rgbVectorToHex","componentPropName","componentName","getComponentProperty","parseProperty","isCoordinates","coordinates","strToBool","boolToNum","bool","componentToHex","hex","convertToIntegerColor","prop","ANode","animationConstants","registerElement","entity","AAnimation","isRunning","attachedCallback","handleMixinUpdate","oldVal","newVal","detachedCallback","getTween","animationValues","toTemp","getDirection","initialValue","onCompleted","prevDirection","onStateAdded","onStateRemoved","evts","splitString","elData","mixinData","mixinEl","getElData","mediaElementLoaded","checkProgress","secondsBuffered","buffered","files","fixUpMediaElement","mediaEl","newMediaEl","tagName","extractDomain","host","inferResponseType","dotLastIndex","extension","fileLoader","FileLoader","isAssets","mediaEls","imgEl","imgEls","srcObject","isAssetItem","setResponseType","loadedBytes","totalBytes","total","srcs","validate","elements","checkComponentDefined","defaultComponents","attrValue","isComponentMixedIn","mixinEls","inMixin","mergeComponentData","extraData","styleParser","isComponent","MULTIPLE_COMPONENT_DELIMITER","COMPONENTS","getRotation","entityEl","rotationObj","AEntity","initializingComponents","componentsToUpdate","isEntity","object3DMap","parentEl","states","justInitialized","setEntityAttribute","assetsEl","addToParent","removeComponent","removeFromParent","updateComponents","updateComponent","getDOMAttribute","oldObj","getOrCreateObject3D","Constructor","attachedToParent","getChildEntities","childEntities","initComponent","isDependency","componentInfo","componentId","isComponentDefined","initComponentDependencies","isDefault","isMixedIn","initialized","tryRemoveLater","evtDetail","extraComponents","componentCache","getExtraComponents","clobber","updateProperties","resetProperty","mixinUpdate","entities","newMixins","oldMixins","updateMixins","arg1","arg2","newAttrValue","delimiterIndex","isDebugMode","flushToDOM","getComputedAttribute","stateIndex","cacheAttribute","closestScene","cacheAttributes","updateEntities","parseAttrValueForCache","registerMixin","isNode","mixinObservers","mixins","closest","selector","matches","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","childFilter","childrenLoaded","getChildren","newMixinIds","unregisterMixin","mixinId","attachMixinListener","removeMixinListener","currentObserver","mutations","fireEvent","emitter","addTagName","knownTags","wrapANodeMethods","newObj","wrapMethods","copyProperties","wrapAEntityMethods","ANodeMethods","AEntityMethods","targetObj","methodList","derivedObj","baseObj","methodName","wrapMethod","derivedMethod","baseMethod","destination","desc","isANode","isAEntity","cloneData","parsedProperty","isObjectOrArray","extendProperties","isSinglePropSchema","hasBehavior","tock","wrapPause","pauseMethod","shouldPlay","parseProperties","processSchema","isSingleProp","isSingleProperty","stringifyProperties","stringifyProperty","aframeScript","currentScript","upperCaseRegExp","previousAttrValue","throttledEmitComponentChanged","throttle","prevData","silent","updateCachedAttrValue","parsedValue","skipTypeChecking","buildData","deepEqual","schemaAddon","extendedSchema","newData","componentDefined","defaultValue","keysLength","registrationOrderWarnings","definition","NewComponent","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","registerGeometry","NewGeometry","registerPropertyType","propertyTypes","defaultParse","defaultStringify","arrayParse","arrayStringify","assetParse","parsedUrl","getElementById","boolParse","intParse","numberParse","selectorParse","nonCharRegex","selectorAllParse","selectorStringify","selectorAllStringify","srcParse","vecParse","isValidDefaultValue","defaultVal","isValidDefaultCoordinate","possibleCoordinates","dimensions","getCanvasSize","embedded","offsetHeight","offsetWidth","shouldAntiAlias","setupCanvas","onFullScreenChange","activeElement","blur","focus","dataset","aframeCanvas","initMetaTags","inject","initWakelock","re","initPostMessageAPI","AScene","inspector","keyboard-shortcuts","screenshot","vr-mode-ui","Scene","systemNames","behaviors","originalHTML","setupRenderer","initSystems","onVRPresentChangeBound","onVRPresentChange","enterVRBound","exitVRBound","exitVRTrueBound","pointerRestrictedBound","pointerRestricted","pointerUnrestrictedBound","pointerUnrestricted","initSystem","sceneIndex","effect","animationFrameID","behavior","behaviorArr","behaviorType","getPointerLockElement","checkHeadsetConnected","fromExternal","enterVRSuccess","enterVRFailure","exitVRSuccess","forceCanvasResizeSafariMobile","exitVRFailure","exitPointerLock","requestPointerLock","componentPropValue","isEffectPresenting","setSize","WebGLRenderer","antialias","setPixelRatio","sortObjects","VREffect","autoSubmitFrame","renderStarted","startRender","mark","clock","Clock","timeDelta","getDelta","elapsedTime","Meta","attrs","exists","Link","createTag","tagObj","meta","MOBILE_HEAD_TAGS","content","MOBILE_IOS_HEAD_TAGS","createAndInjectTag","tag","headScriptEl","headTags","postMessageAPIHandler","isIframed","Wakelock","wakelock","processPropertyDefinition","propDefinition","isCustomType","propType","typeName","PropertyTypes","propName","propNames","propData","getPartialData","propValue","stringifiedData","propertyToThreeMapping","int","vec2","vec3","vec4","initVariables","ShaderMaterial","variables","varType","updateVariables","materialKey","updateMapMaterialFromData","parseValue","Vector4","ImageUtils","System","rawData","registerSystem","NewSystem","findAllScenes","originalPosition","originalRotation","originalParent","originalGroup","outerGroup","addMapping","htmlAttrName","materialMappings","standard","mappings","addComponentMapping","definePrimitive","registerPrimitive","extendDeep","setComponentProperty","primitives","defaultAttributes","defaultComponentsFromPrimitive","deprecated","deprecatedMappings","resolveMappingCollisions","newAttribute","isUndefined","isPureObject","path","mixinComponents","getComponentPropertyPath","look-controls","wasd-controls","look-controls-enabled","wasd-controls-enabled","reverse-mouse-drag","user-height","getMeshMixin","radiusOuter","radiusInner","segmentsTheta","fuse-timeout","segmentsRadial","openEnded","open-ended","theta-length","theta-start","ground-color","meshMixin","obj-model","meshPrimitives","segments-height","segments-width","unCamelCase","geometryName","geometryHyphened","segmentsDepth","BoxGeometry","CircleGeometry","radiusBottom","radiusTop","CylinderGeometry","DodecahedronGeometry","IcosahedronGeometry","OctahedronGeometry","PlaneGeometry","segmentsPhi","RingGeometry","SphereGeometry","TetrahedronGeometry","arc","radiusTubular","segmentsTubular","TorusGeometry","TorusKnotGeometry","rotateVector","uvMinVector","uvMaxVector","uvScaleVector","vertexA","vertexB","vertexC","triangle","uvA","uvB","uvC","Triangle","divide","faces","Face3","faceVertexUvs","protocol","hasNativeWebVRImplementation","isIOSOlderThan10","isBrowserEnvironment","AComponent","_update","_rS","getEntityCount","getEntriesByName","_scene","_start","_end","_attach","attach","te","fractions","TextureLoader","getMaterialData","wireframe","wireframeLinewidth","textureSrc","updateMap","emissive","emissiveIntensity","metalness","roughness","normalMap","normalScale","ambientOcclusionMap","aoMapIntensity","ambientOcclusionMapIntensity","displacementMap","displacementScale","displacementBias","CubeLoader","CubeTextureLoader","texturePromises","ambientOcclusionTextureOffset","ambientOcclusionTextureRepeat","displacementTextureOffset","displacementTextureRepeat","envMap","normalTextureOffset","normalTextureRepeat","sphericalEnvMap","MeshStandardMaterial","updateDistortionMap","updateEnvMap","isLoadingEnvMap","SphericalReflectionMapping","handleTextureEvents","cube","srcLoader","validateCubemapSrc","urls","removeDefaultCamera","defaultCamera","DEFAULT_CAMERA_ATTR","setupDefaultCamera","defaultCameraEl","removeDefaultOffset","addDefaultOffset","cameraEls","newCameraEl","newCamera","previousCamera","defaultCameraWrapper","createGeometry","geometryType","GeometryClass","geometryInstance","toBufferGeometry","decrementCacheCount","cacheCount","hash","incrementCacheCount","doBuffer","bufferGeometry","fromGeometry","metadata","clearCache","cachedGeometry","DEFAULT_LIGHT_ATTR","defaultLightsEnabled","defaultLights","userDefinedLights","setupDefaultLights","removeDefaultLights","ambientLight","directionalLight","calculateVideoCacheHash","videoEl","videoAttributes","sort","loadImageTexture","doLoadImageTexture","resolveTexture","setTextureProperties","statusText","RepeatWrapping","createVideoEl","fixVideoAttributes","isHLS","textureCounts","textureCache","onMaterialTextureLoaded","clearTextureCache","loadImageCb","loadImage","loadVideoCb","loadVideo","loadCanvas","childElementCount","validateSrc","handleImageTextureLoaded","HAVE_CURRENT_DATA","handleVideoTextureLoaded","videoTextureResult","hashVideo","VideoTexture","needsCorrectionBGRA","needsCorrectionFlipY","uuid","isTexture","SHADOW_MAP_TYPE_MAP","basic","BasicShadowMap","pcf","PCFShadowMap","pcfsoft","PCFSoftShadowMap","autoUpdate","renderReverseSided","renderSingleSided","shadowMapEnabled","shadowMap","updateControllerList","getGamepads","throttledUpdateControllerList","gamepads","gamepad","prevCount","prependedArgs","defaultVec","coordinate","vec","vecParseFloat","isCoordinate","toVector3","getDebugNamespaceType","getDebugNamespaceColor","settings","debugLib","ls","logs","getVRDisplay","_x","_y","_z","isGearVR","isTablet","mockUserAgent","_isMobile","isNodeEnvironment","delimiter","splitName","deepAssign","objectAssign","objectPool","functionToThrottle","minimumInterval","optionalContext","lastTime","sinceLastTime","throttleTick","func","wait","immediate","later","callNow","arrayPool","createPool","keysA","keysB","valA","valB","use","recycle","targetObject","aVal","bVal","bKey","isComparingObjects","metaKey","copyAttribute","matchingElements","allElements","HLS_MIMETYPES","materialName","dataName","checkSetMap","materialSrcs","setMap","longType","shortType","wrap","defaultObjectFactory","clearObject","EMPTY_SLOT","freeze","objectFactory","objToUse","nextFreeSlot","objPool","grow","currentLength","isImageCb","isVideoCb","checkIsImage","isImage","validatedUrls","aCubemap","cubemapSrcRegex","parseUrl","validateAndGetQuerySelector","parsedSrc","onResult","contentType","getResponseHeader","checkIsImageFallback","startsWith","onLoad","onError","tester","Image","toCamelCase","camelCase","transformKeysToCamelCase","camelCaseObj","camelCaseKey","parsedData","isControllerPresent","queryObject","trackedControlsSystem","filterControllerIndex","filterIdExact","filterIdPrefix","filterHand","matchingControllerOccurence","targetControllerMatch","NUM_HANDS","AXIS_LABELS","isPresent","axesMapping","buttonTypes","gotVRDisplays","vrDisplays","scope","setVRDisplay","getStandingMatrix","applyMatrix","setY","zeroSensor","onVRDisplayPresentChange","eyeParamsL","eyeWidth","eyeHeight","rendererPixelRatio","getPixelRatio","rendererSize","getSize","rendererUpdateStyle","fovToNDCScaleOffset","pxscale","pxoffset","pyscale","fovPortToProjection","rightHanded","zNear","zFar","handednessScale","mobj","scaleAndOffset","transpose","fovToProjection","renderRectL","renderRectR","eyeTranslationL","eyeTranslationR","updateStyle","domElement","setFullScreen","boolean","cameraL","cameraR","forceClear","eyeParamsR","setRenderTarget","setScissorTest","translateOnAxis","projectionMatrix","scissor","setViewport","setScissor","glStats","_h","_totalDrawArraysCalls","_totalDrawElementsCalls","_totalBindTexures","_totalUseProgramCalls","_totalFaces","_totalVertices","_totalPoints","WebGLRenderingContext","POINTS","allcalls","over","drawelements","drawarrays","steps","memory","programs","calls","points","renderer.info.memory.geometries","renderer.info.memory.textures","renderer.info.programs","renderer.info.render.calls","renderer.info.render.faces","renderer.info.render.points","renderer.info.render.vertices","BrowserStats","_size","log1024","_usedJSHeapSize","usedJSHeapSize","_totalJSHeapSize","totalJSHeapSize","_values","average","avgMs","_groups","_fractions","nowOffset","rStats","iterateKeys","importCSS","Graph","_dom","_defArg","_draw","alarm","_current","_max","_ctx","drawImage","_canvas","_alarmCanvas","_elHeight","_dotCanvas","_def","_dotCtx","fillStyle","fillRect","globalAlpha","_alarmCtx","_elWidth","draw","StackGraph","_num","th","_colours","PerfCounter","_average","_accumValue","_accumSamples","_accumStart","_averageValue","_time","_settings","userTimingAPI","_started","_tick","_spanValueText","_graph","_frame","_total","interpolate","_set","_spanId","_spanValue","textContent","_div","_perf","idArg","_perfCounters","graph","colours","_cssRStats","CSSPath","_base","toggle","legend","isIFrame","appendQueryParameter"],"mappings":"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","file":"bundle.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o=0.9.40 <0.10.0\",\"type\":\"range\"},\"/Users/ngoke/Code/aframe\"]],\"_from\":\"webvr-polyfill@>=0.9.40 <0.10.0\",\"_id\":\"webvr-polyfill@0.9.40\",\"_inCache\":true,\"_location\":\"/webvr-polyfill\",\"_nodeVersion\":\"8.6.0\",\"_npmOperationalInternal\":{\"host\":\"s3://npm-registry-packages\",\"tmp\":\"tmp/webvr-polyfill-0.9.40.tgz_1507657755590_0.00047161197289824486\"},\"_npmUser\":{\"name\":\"jsantell\",\"email\":\"jsantell@gmail.com\"},\"_npmVersion\":\"5.3.0\",\"_phantomChildren\":{},\"_requested\":{\"raw\":\"webvr-polyfill@^0.9.40\",\"scope\":null,\"escapedName\":\"webvr-polyfill\",\"name\":\"webvr-polyfill\",\"rawSpec\":\"^0.9.40\",\"spec\":\">=0.9.40 <0.10.0\",\"type\":\"range\"},\"_requiredBy\":[\"/\"],\"_resolved\":\"https://registry.npmjs.org/webvr-polyfill/-/webvr-polyfill-0.9.40.tgz\",\"_shasum\":\"2cfa0ec0e0cc6ba7238c73a09cba4952fff59a63\",\"_shrinkwrap\":null,\"_spec\":\"webvr-polyfill@^0.9.40\",\"_where\":\"/Users/ngoke/Code/aframe\",\"authors\":[\"Boris Smus \",\"Brandon Jones \",\"Jordan Santell \"],\"bugs\":{\"url\":\"https://github.com/googlevr/webvr-polyfill/issues\"},\"dependencies\":{},\"description\":\"Use WebVR today, on mobile or desktop, without requiring a special browser build.\",\"devDependencies\":{\"chai\":\"^3.5.0\",\"jsdom\":\"^9.12.0\",\"mocha\":\"^3.2.0\",\"semver\":\"^5.3.0\",\"webpack\":\"^2.6.1\",\"webpack-dev-server\":\"2.7.1\"},\"directories\":{},\"dist\":{\"integrity\":\"sha512-m7jhJHjFcUYPyPSNeGmly7a2h/cP7bARz0OZMoUn5SueVXEKeZ4P7bzbAUDBDvvqCsa5gHgM3PFIhYe13bqaWw==\",\"shasum\":\"2cfa0ec0e0cc6ba7238c73a09cba4952fff59a63\",\"tarball\":\"https://registry.npmjs.org/webvr-polyfill/-/webvr-polyfill-0.9.40.tgz\"},\"gitHead\":\"45828ffdb8c3e0f9bb90296d6039d3cc7909ba8e\",\"homepage\":\"https://github.com/googlevr/webvr-polyfill\",\"keywords\":[\"vr\",\"webvr\"],\"license\":\"Apache-2.0\",\"main\":\"src/node-entry\",\"maintainers\":[{\"name\":\"jsantell\",\"email\":\"jsantell@gmail.com\"},{\"name\":\"toji\",\"email\":\"tojiro@gmail.com\"},{\"name\":\"smus\",\"email\":\"boris@smus.com\"}],\"name\":\"webvr-polyfill\",\"optionalDependencies\":{},\"readme\":\"ERROR: No README data found!\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/googlevr/webvr-polyfill.git\"},\"scripts\":{\"build\":\"webpack\",\"start\":\"npm run watch\",\"test\":\"mocha\",\"watch\":\"webpack-dev-server\"},\"version\":\"0.9.40\"}","module.exports={\"format\":1,\"last_updated\":\"2017-08-27T14:39:31Z\",\"devices\":[{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/Nexus 7/*\"},{\"ua\":\"Nexus 7\"}],\"dpi\":[320.8,323],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/ASUS_Z00AD/*\"},{\"ua\":\"ASUS_Z00AD\"}],\"dpi\":[403,404.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel XL/*\"},{\"ua\":\"Pixel XL\"}],\"dpi\":[537.9,533],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel/*\"},{\"ua\":\"Pixel\"}],\"dpi\":[432.6,436.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC6435LVW/*\"},{\"ua\":\"HTC6435LVW\"}],\"dpi\":[449.7,443.3],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One XL/*\"},{\"ua\":\"HTC One XL\"}],\"dpi\":[315.3,314.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"htc/*/Nexus 9/*\"},{\"ua\":\"Nexus 9\"}],\"dpi\":289,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One M9/*\"},{\"ua\":\"HTC One M9\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One_M8/*\"},{\"ua\":\"HTC One_M8\"}],\"dpi\":[449.7,447.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One/*\"},{\"ua\":\"HTC One\"}],\"dpi\":472.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Huawei/*/Nexus 6P/*\"},{\"ua\":\"Nexus 6P\"}],\"dpi\":[515.1,518],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LENOVO/*/Lenovo PB2-690Y/*\"},{\"ua\":\"Lenovo PB2-690Y\"}],\"dpi\":[457.2,454.713],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 5X/*\"},{\"ua\":\"Nexus 5X\"}],\"dpi\":[422,419.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGMS345/*\"},{\"ua\":\"LGMS345\"}],\"dpi\":[221.7,219.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-D800/*\"},{\"ua\":\"LG-D800\"}],\"dpi\":[422,424.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-D850/*\"},{\"ua\":\"LG-D850\"}],\"dpi\":[537.9,541.9],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/VS985 4G/*\"},{\"ua\":\"VS985 4G\"}],\"dpi\":[537.9,535.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 5/*\"},{\"ua\":\"Nexus 5 B\"}],\"dpi\":[442.4,444.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 4/*\"},{\"ua\":\"Nexus 4\"}],\"dpi\":[319.8,318.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-P769/*\"},{\"ua\":\"LG-P769\"}],\"dpi\":[240.6,247.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGMS323/*\"},{\"ua\":\"LGMS323\"}],\"dpi\":[206.6,204.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGLS996/*\"},{\"ua\":\"LGLS996\"}],\"dpi\":[403.4,401.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/4560MMX/*\"},{\"ua\":\"4560MMX\"}],\"dpi\":[240,219.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/A250/*\"},{\"ua\":\"Micromax A250\"}],\"dpi\":[480,446.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/Micromax AQ4501/*\"},{\"ua\":\"Micromax AQ4501\"}],\"dpi\":240,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/DROID RAZR/*\"},{\"ua\":\"DROID RAZR\"}],\"dpi\":[368.1,256.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT830C/*\"},{\"ua\":\"XT830C\"}],\"dpi\":[254,255.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1021/*\"},{\"ua\":\"XT1021\"}],\"dpi\":[254,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1023/*\"},{\"ua\":\"XT1023\"}],\"dpi\":[254,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1028/*\"},{\"ua\":\"XT1028\"}],\"dpi\":[326.6,327.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1034/*\"},{\"ua\":\"XT1034\"}],\"dpi\":[326.6,328.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1053/*\"},{\"ua\":\"XT1053\"}],\"dpi\":[315.3,316.1],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1562/*\"},{\"ua\":\"XT1562\"}],\"dpi\":[403.4,402.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/Nexus 6/*\"},{\"ua\":\"Nexus 6 B\"}],\"dpi\":[494.3,489.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1063/*\"},{\"ua\":\"XT1063\"}],\"dpi\":[295,296.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1064/*\"},{\"ua\":\"XT1064\"}],\"dpi\":[295,295.6],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1092/*\"},{\"ua\":\"XT1092\"}],\"dpi\":[422,424.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1095/*\"},{\"ua\":\"XT1095\"}],\"dpi\":[422,423.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/G4/*\"},{\"ua\":\"Moto G (4)\"}],\"dpi\":401,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/A0001/*\"},{\"ua\":\"A0001\"}],\"dpi\":[403.4,401],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE E1005/*\"},{\"ua\":\"ONE E1005\"}],\"dpi\":[442.4,441.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE A2005/*\"},{\"ua\":\"ONE A2005\"}],\"dpi\":[391.9,405.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OPPO/*/X909/*\"},{\"ua\":\"X909\"}],\"dpi\":[442.4,444.1],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9082/*\"},{\"ua\":\"GT-I9082\"}],\"dpi\":[184.7,185.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G360P/*\"},{\"ua\":\"SM-G360P\"}],\"dpi\":[196.7,205.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/Nexus S/*\"},{\"ua\":\"Nexus S\"}],\"dpi\":[234.5,229.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300/*\"},{\"ua\":\"GT-I9300\"}],\"dpi\":[304.8,303.9],\"bw\":5,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-T230NU/*\"},{\"ua\":\"SM-T230NU\"}],\"dpi\":216,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SGH-T399/*\"},{\"ua\":\"SGH-T399\"}],\"dpi\":[217.7,231.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SGH-M919/*\"},{\"ua\":\"SGH-M919\"}],\"dpi\":[440.8,437.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N9005/*\"},{\"ua\":\"SM-N9005\"}],\"dpi\":[386.4,387],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SAMSUNG-SM-N900A/*\"},{\"ua\":\"SAMSUNG-SM-N900A\"}],\"dpi\":[386.4,387.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9500/*\"},{\"ua\":\"GT-I9500\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9505/*\"},{\"ua\":\"GT-I9505\"}],\"dpi\":439.4,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G900F/*\"},{\"ua\":\"SM-G900F\"}],\"dpi\":[415.6,431.6],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G900M/*\"},{\"ua\":\"SM-G900M\"}],\"dpi\":[415.6,431.6],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G800F/*\"},{\"ua\":\"SM-G800F\"}],\"dpi\":326.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G906S/*\"},{\"ua\":\"SM-G906S\"}],\"dpi\":[562.7,572.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300/*\"},{\"ua\":\"GT-I9300\"}],\"dpi\":[306.7,304.8],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-T535/*\"},{\"ua\":\"SM-T535\"}],\"dpi\":[142.6,136.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N920C/*\"},{\"ua\":\"SM-N920C\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N920W8/*\"},{\"ua\":\"SM-N920W8\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300I/*\"},{\"ua\":\"GT-I9300I\"}],\"dpi\":[304.8,305.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9195/*\"},{\"ua\":\"GT-I9195\"}],\"dpi\":[249.4,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SPH-L520/*\"},{\"ua\":\"SPH-L520\"}],\"dpi\":[249.4,255.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SAMSUNG-SGH-I717/*\"},{\"ua\":\"SAMSUNG-SGH-I717\"}],\"dpi\":285.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SPH-D710/*\"},{\"ua\":\"SPH-D710\"}],\"dpi\":[217.7,204.2],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-N7100/*\"},{\"ua\":\"GT-N7100\"}],\"dpi\":265.1,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SCH-I605/*\"},{\"ua\":\"SCH-I605\"}],\"dpi\":265.1,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/Galaxy Nexus/*\"},{\"ua\":\"Galaxy Nexus\"}],\"dpi\":[315.3,314.2],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N910H/*\"},{\"ua\":\"SM-N910H\"}],\"dpi\":[515.1,518],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N910C/*\"},{\"ua\":\"SM-N910C\"}],\"dpi\":[515.2,520.2],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G130M/*\"},{\"ua\":\"SM-G130M\"}],\"dpi\":[165.9,164.8],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G928I/*\"},{\"ua\":\"SM-G928I\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G920F/*\"},{\"ua\":\"SM-G920F\"}],\"dpi\":580.6,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G920P/*\"},{\"ua\":\"SM-G920P\"}],\"dpi\":[522.5,577],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G925F/*\"},{\"ua\":\"SM-G925F\"}],\"dpi\":580.6,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G925V/*\"},{\"ua\":\"SM-G925V\"}],\"dpi\":[522.5,576.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G930F/*\"},{\"ua\":\"SM-G930F\"}],\"dpi\":576.6,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G935F/*\"},{\"ua\":\"SM-G935F\"}],\"dpi\":533,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G950F/*\"},{\"ua\":\"SM-G950F\"}],\"dpi\":[562.707,565.293],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G955U/*\"},{\"ua\":\"SM-G955U\"}],\"dpi\":[522.514,525.762],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/C6903/*\"},{\"ua\":\"C6903\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/D6653/*\"},{\"ua\":\"D6653\"}],\"dpi\":[428.6,427.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/E6653/*\"},{\"ua\":\"E6653\"}],\"dpi\":[428.6,425.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/E6853/*\"},{\"ua\":\"E6853\"}],\"dpi\":[403.4,401.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/SGP321/*\"},{\"ua\":\"SGP321\"}],\"dpi\":[224.7,224.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"TCT/*/ALCATEL ONE TOUCH Fierce/*\"},{\"ua\":\"ALCATEL ONE TOUCH Fierce\"}],\"dpi\":[240,247.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"THL/*/thl 5000/*\"},{\"ua\":\"thl 5000\"}],\"dpi\":[480,443.3],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"ZTE/*/ZTE Blade L2/*\"},{\"ua\":\"ZTE Blade L2\"}],\"dpi\":240,\"bw\":3,\"ac\":500},{\"type\":\"ios\",\"rules\":[{\"res\":[640,960]}],\"dpi\":[325.1,328.4],\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[640,1136]}],\"dpi\":[317.1,320.2],\"bw\":3,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[750,1334]}],\"dpi\":326.4,\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[1242,2208]}],\"dpi\":[453.6,458.4],\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[1125,2001]}],\"dpi\":[410.9,415.4],\"bw\":4,\"ac\":1000}]}","module.exports={\"name\":\"aframe\",\"version\":\"0.7.0\",\"description\":\"A web framework for building virtual reality experiences.\",\"homepage\":\"https://aframe.io/\",\"main\":\"dist/aframe-master.js\",\"scripts\":{\"browserify\":\"browserify src/index.js -s 'AFRAME' -p browserify-derequire\",\"build\":\"shx mkdir -p build/ && npm run browserify -- --debug -t [envify --INSPECTOR_VERSION dev] -o build/aframe.js\",\"codecov\":\"codecov\",\"dev\":\"npm run build && cross-env INSPECTOR_VERSION=dev node ./scripts/budo -t envify\",\"dist\":\"node scripts/updateVersionLog.js && npm run dist:min && npm run dist:max\",\"dist:max\":\"npm run browserify -s -- --debug | exorcist dist/aframe-master.js.map > dist/aframe-master.js\",\"dist:min\":\"npm run browserify -s -- --debug -p [minifyify --map aframe-master.min.js.map --output dist/aframe-master.min.js.map] -o dist/aframe-master.min.js\",\"docs\":\"markserv --dir docs --port 9001\",\"preghpages\":\"node ./scripts/preghpages.js\",\"ghpages\":\"ghpages -p gh-pages/\",\"lint\":\"semistandard -v | snazzy\",\"lint:fix\":\"semistandard --fix\",\"precommit\":\"npm run lint\",\"prepush\":\"node scripts/testOnlyCheck.js\",\"prerelease\":\"node scripts/release.js 0.6.1 0.7.0\",\"start\":\"npm run dev\",\"test\":\"karma start ./tests/karma.conf.js\",\"test:docs\":\"node scripts/docsLint.js\",\"test:firefox\":\"npm test -- --browsers Firefox\",\"test:chrome\":\"npm test -- --browsers Chrome\",\"test:node\":\"mocha --ui tdd tests/node\"},\"repository\":\"aframevr/aframe\",\"license\":\"MIT\",\"dependencies\":{\"@tweenjs/tween.js\":\"^16.8.0\",\"browserify-css\":\"^0.8.2\",\"debug\":\"ngokevin/debug#noTimestamp\",\"deep-assign\":\"^2.0.0\",\"document-register-element\":\"dmarcos/document-register-element#8ccc532b7\",\"envify\":\"^3.4.1\",\"load-bmfont\":\"^1.2.3\",\"object-assign\":\"^4.0.1\",\"present\":\"0.0.6\",\"promise-polyfill\":\"^3.1.0\",\"style-attr\":\"^1.0.2\",\"three\":\"^0.87.0\",\"three-bmfont-text\":\"^2.1.0\",\"webvr-polyfill\":\"^0.9.40\"},\"devDependencies\":{\"browserify\":\"^13.1.0\",\"browserify-derequire\":\"^0.9.4\",\"browserify-istanbul\":\"^2.0.0\",\"budo\":\"^9.2.0\",\"chai\":\"^3.5.0\",\"chai-shallow-deep-equal\":\"^1.4.0\",\"chalk\":\"^1.1.3\",\"codecov\":\"^1.0.1\",\"cross-env\":\"^5.0.1\",\"exorcist\":\"^0.4.0\",\"ghpages\":\"0.0.8\",\"git-rev\":\"^0.2.1\",\"glob\":\"^7.1.1\",\"husky\":\"^0.11.7\",\"istanbul\":\"^0.4.5\",\"jsdom\":\"^9.11.0\",\"karma\":\"1.4.1\",\"karma-browserify\":\"^5.1.0\",\"karma-chai-shallow-deep-equal\":\"0.0.4\",\"karma-chrome-launcher\":\"^2.0.0\",\"karma-coverage\":\"^1.1.1\",\"karma-env-preprocessor\":\"^0.1.1\",\"karma-firefox-launcher\":\"^1.0.0\",\"karma-mocha\":\"^1.1.1\",\"karma-mocha-reporter\":\"^2.1.0\",\"karma-sinon-chai\":\"1.2.4\",\"lolex\":\"^1.5.1\",\"markserv\":\"0.0.20\",\"minifyify\":\"^7.3.3\",\"mocha\":\"^3.0.2\",\"mozilla-download\":\"^1.1.1\",\"replace-in-file\":\"^2.5.3\",\"semistandard\":\"^9.0.0\",\"shelljs\":\"^0.7.7\",\"shx\":\"^0.2.2\",\"sinon\":\"^1.17.5\",\"sinon-chai\":\"2.8.0\",\"snazzy\":\"^5.0.0\",\"too-wordy\":\"ngokevin/too-wordy\",\"uglifyjs\":\"^2.4.10\",\"write-good\":\"^0.9.1\"},\"link\":true,\"browserify\":{\"transform\":[\"browserify-css\",\"envify\"]},\"semistandard\":{\"ignore\":[\"build/**\",\"dist/**\",\"examples/**/shaders/*.js\",\"**/vendor/**\"]},\"keywords\":[\"3d\",\"aframe\",\"cardboard\",\"components\",\"oculus\",\"three\",\"three.js\",\"rift\",\"vive\",\"vr\",\"web-components\",\"webvr\"],\"browserify-css\":{\"minify\":true},\"engines\":{\"node\":\">= 4.6.0\",\"npm\":\"^2.15.9\"}}","var css = \".a-html{bottom:0;left:0;position:fixed;right:0;top:0}.a-body{height:100%;margin:0;overflow:hidden;padding:0;width:100%}:-webkit-full-screen{background-color:transparent}.a-hidden{display:none!important}.a-canvas{height:100%;left:0;position:absolute;top:0;width:100%}.a-canvas.a-grab-cursor:hover{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.a-canvas.a-grab-cursor:active,.a-grabbing{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}// Class is removed when doing . a-scene.fullscreen .a-canvas{width:100%!important;height:100%!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:999999!important;position:fixed!important}.a-inspector-loader{background-color:#ed3160;position:fixed;left:3px;top:3px;padding:6px 10px;color:#fff;text-decoration:none;font-size:12px;font-family:Roboto,sans-serif;text-align:center;z-index:99999;width:204px}@keyframes dots-1{from{opacity:0}25%{opacity:1}}@keyframes dots-2{from{opacity:0}50%{opacity:1}}@keyframes dots-3{from{opacity:0}75%{opacity:1}}@-webkit-keyframes dots-1{from{opacity:0}25%{opacity:1}}@-webkit-keyframes dots-2{from{opacity:0}50%{opacity:1}}@-webkit-keyframes dots-3{from{opacity:0}75%{opacity:1}}.a-inspector-loader .dots span{animation:dots-1 2s infinite steps(1);-webkit-animation:dots-1 2s infinite steps(1)}.a-inspector-loader .dots span:first-child+span{animation-name:dots-2;-webkit-animation-name:dots-2}.a-inspector-loader .dots span:first-child+span+span{animation-name:dots-3;-webkit-animation-name:dots-3}a-scene{display:block;position:relative;height:100%;width:100%}a-assets,a-scene audio,a-scene img,a-scene video{display:none}.a-enter-vr-modal,.a-orientation-modal{font-family:Consolas,Andale Mono,Courier New,monospace}.a-enter-vr-modal a{border-bottom:1px solid #fff;padding:2px 0;text-decoration:none;transition:.1s color ease-in}.a-enter-vr-modal a:hover{background-color:#fff;color:#111;padding:2px 4px;position:relative;left:-4px}.a-enter-vr{font-family:sans-serif,monospace;font-size:13px;width:100%;font-weight:200;line-height:16px;position:absolute;right:20px;bottom:20px}.a-enter-vr.embedded{right:5px;bottom:5px}.a-enter-vr-button,.a-enter-vr-modal,.a-enter-vr-modal a{color:#fff}.a-enter-vr-button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20245.82%20141.73%22%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill%3A%23fff%3Bfill-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ctitle%3Emask%3C%2Ftitle%3E%3Cpath%20class%3D%22a%22%20d%3D%22M175.56%2C111.37c-22.52%2C0-40.77-18.84-40.77-42.07S153%2C27.24%2C175.56%2C27.24s40.77%2C18.84%2C40.77%2C42.07S198.08%2C111.37%2C175.56%2C111.37ZM26.84%2C69.31c0-23.23%2C18.25-42.07%2C40.77-42.07s40.77%2C18.84%2C40.77%2C42.07-18.26%2C42.07-40.77%2C42.07S26.84%2C92.54%2C26.84%2C69.31ZM27.27%2C0C11.54%2C0%2C0%2C12.34%2C0%2C28.58V110.9c0%2C16.24%2C11.54%2C30.83%2C27.27%2C30.83H99.57c2.17%2C0%2C4.19-1.83%2C5.4-3.7L116.47%2C118a8%2C8%2C0%2C0%2C1%2C12.52-.18l11.51%2C20.34c1.2%2C1.86%2C3.22%2C3.61%2C5.39%2C3.61h72.29c15.74%2C0%2C27.63-14.6%2C27.63-30.83V28.58C245.82%2C12.34%2C233.93%2C0%2C218.19%2C0H27.27Z%22%2F%3E%3C%2Fsvg%3E) 50% 50%/70% 70% no-repeat rgba(0,0,0,.35);border:0;bottom:0;cursor:pointer;min-width:50px;min-height:30px;padding-right:5%;padding-top:4%;position:absolute;right:0;transition:background-color .05s ease;-webkit-transition:background-color .05s ease;z-index:9999}.a-enter-vr-button:active,.a-enter-vr-button:hover{background-color:#666}[data-a-enter-vr-no-webvr] .a-enter-vr-button{border-color:#666;opacity:.65}[data-a-enter-vr-no-webvr] .a-enter-vr-button:active,[data-a-enter-vr-no-webvr] .a-enter-vr-button:hover{background-color:rgba(0,0,0,.35);cursor:not-allowed}.a-enter-vr-modal{background-color:#666;border-radius:0;display:none;min-height:32px;margin-right:70px;padding:9px;width:280px;right:2%;position:absolute}.a-enter-vr-modal:after{border-bottom:10px solid transparent;border-left:10px solid #666;border-top:10px solid transparent;display:inline-block;content:'';position:absolute;right:-5px;top:5px;width:0;height:0}.a-enter-vr-modal a,.a-enter-vr-modal p{display:inline}.a-enter-vr-modal p{margin:0}.a-enter-vr-modal p:after{content:' '}[data-a-enter-vr-no-headset].a-enter-vr:hover .a-enter-vr-modal,[data-a-enter-vr-no-webvr].a-enter-vr:hover .a-enter-vr-modal{display:block}.a-orientation-modal{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2090%2090%22%20enable-background%3D%22new%200%200%2090%2090%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%220%2C0%200%2C0%200%2C0%20%22%3E%3C/polygon%3E%3Cg%3E%3Cpath%20d%3D%22M71.545%2C48.145h-31.98V20.743c0-2.627-2.138-4.765-4.765-4.765H18.456c-2.628%2C0-4.767%2C2.138-4.767%2C4.765v42.789%20%20%20c0%2C2.628%2C2.138%2C4.766%2C4.767%2C4.766h5.535v0.959c0%2C2.628%2C2.138%2C4.765%2C4.766%2C4.765h42.788c2.628%2C0%2C4.766-2.137%2C4.766-4.765V52.914%20%20%20C76.311%2C50.284%2C74.173%2C48.145%2C71.545%2C48.145z%20M18.455%2C16.935h16.344c2.1%2C0%2C3.808%2C1.708%2C3.808%2C3.808v27.401H37.25V22.636%20%20%20c0-0.264-0.215-0.478-0.479-0.478H16.482c-0.264%2C0-0.479%2C0.214-0.479%2C0.478v36.585c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h7.507v7.644%20%20%20h-5.534c-2.101%2C0-3.81-1.709-3.81-3.81V20.743C14.645%2C18.643%2C16.354%2C16.935%2C18.455%2C16.935z%20M16.96%2C23.116h19.331v25.031h-7.535%20%20%20c-2.628%2C0-4.766%2C2.139-4.766%2C4.768v5.828h-7.03V23.116z%20M71.545%2C73.064H28.757c-2.101%2C0-3.81-1.708-3.81-3.808V52.914%20%20%20c0-2.102%2C1.709-3.812%2C3.81-3.812h42.788c2.1%2C0%2C3.809%2C1.71%2C3.809%2C3.812v16.343C75.354%2C71.356%2C73.645%2C73.064%2C71.545%2C73.064z%22%3E%3C/path%3E%3Cpath%20d%3D%22M28.919%2C58.424c-1.466%2C0-2.659%2C1.193-2.659%2C2.66c0%2C1.466%2C1.193%2C2.658%2C2.659%2C2.658c1.468%2C0%2C2.662-1.192%2C2.662-2.658%20%20%20C31.581%2C59.617%2C30.387%2C58.424%2C28.919%2C58.424z%20M28.919%2C62.786c-0.939%2C0-1.703-0.764-1.703-1.702c0-0.939%2C0.764-1.704%2C1.703-1.704%20%20%20c0.94%2C0%2C1.705%2C0.765%2C1.705%2C1.704C30.623%2C62.022%2C29.858%2C62.786%2C28.919%2C62.786z%22%3E%3C/path%3E%3Cpath%20d%3D%22M69.654%2C50.461H33.069c-0.264%2C0-0.479%2C0.215-0.479%2C0.479v20.288c0%2C0.264%2C0.215%2C0.478%2C0.479%2C0.478h36.585%20%20%20c0.263%2C0%2C0.477-0.214%2C0.477-0.478V50.939C70.131%2C50.676%2C69.917%2C50.461%2C69.654%2C50.461z%20M69.174%2C51.417V70.75H33.548V51.417H69.174z%22%3E%3C/path%3E%3Cpath%20d%3D%22M45.201%2C30.296c6.651%2C0%2C12.233%2C5.351%2C12.551%2C11.977l-3.033-2.638c-0.193-0.165-0.507-0.142-0.675%2C0.048%20%20%20c-0.174%2C0.198-0.153%2C0.501%2C0.045%2C0.676l3.883%2C3.375c0.09%2C0.075%2C0.198%2C0.115%2C0.312%2C0.115c0.141%2C0%2C0.273-0.061%2C0.362-0.166%20%20%20l3.371-3.877c0.173-0.2%2C0.151-0.502-0.047-0.675c-0.194-0.166-0.508-0.144-0.676%2C0.048l-2.592%2C2.979%20%20%20c-0.18-3.417-1.629-6.605-4.099-9.001c-2.538-2.461-5.877-3.817-9.404-3.817c-0.264%2C0-0.479%2C0.215-0.479%2C0.479%20%20%20C44.72%2C30.083%2C44.936%2C30.296%2C45.201%2C30.296z%22%3E%3C/path%3E%3C/g%3E%3C/svg%3E) center/50% 50% no-repeat rgba(244,244,244,1);bottom:0;font-size:14px;font-weight:600;left:0;line-height:20px;right:0;position:fixed;top:0;z-index:9999999}.a-orientation-modal:after{color:#666;content:\\\"Insert phone into Cardboard holder.\\\";display:block;position:absolute;text-align:center;top:70%;transform:translateY(-70%);width:100%}.a-orientation-modal button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%20100%20100%22%20enable-background%3D%22new%200%200%20100%20100%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M55.209%2C50l17.803-17.803c1.416-1.416%2C1.416-3.713%2C0-5.129c-1.416-1.417-3.713-1.417-5.129%2C0L50.08%2C44.872%20%20L32.278%2C27.069c-1.416-1.417-3.714-1.417-5.129%2C0c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129L44.951%2C50L27.149%2C67.803%20%20c-1.417%2C1.416-1.417%2C3.713%2C0%2C5.129c0.708%2C0.708%2C1.636%2C1.062%2C2.564%2C1.062c0.928%2C0%2C1.856-0.354%2C2.564-1.062L50.08%2C55.13l17.803%2C17.802%20%20c0.708%2C0.708%2C1.637%2C1.062%2C2.564%2C1.062s1.856-0.354%2C2.564-1.062c1.416-1.416%2C1.416-3.713%2C0-5.129L55.209%2C50z%22%3E%3C/path%3E%3C/svg%3E) no-repeat;border:none;height:50px;text-indent:-9999px;width:50px}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"src/style/aframe.css\"})); module.exports = css;","var css = \".rs-base{background-color:#333;color:#fafafa;border-radius:0;font:10px monospace;left:5px;line-height:1em;opacity:.85;overflow:hidden;padding:10px;position:fixed;top:5px;width:300px;z-index:10000}.rs-base div.hidden{display:none}.rs-base h1{color:#fff;cursor:pointer;font-size:1.4em;font-weight:300;margin:0 0 5px;padding:0}.rs-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:5px}.rs-group:last-child{margin-bottom:0}.rs-counter-base{align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;height:10px;-webkit-justify-content:space-between;justify-content:space-between;margin:2px 0}.rs-counter-base.alarm{color:#b70000;text-shadow:0 0 0 #b70000,0 0 1px #fff,0 0 1px #fff,0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 3px #fff,0 0 4px #fff,0 0 4px #fff}.rs-counter-id{font-weight:300;-webkit-box-ordinal-group:0;-webkit-order:0;order:0;width:54px}.rs-counter-value{font-weight:300;-webkit-box-ordinal-group:1;-webkit-order:1;order:1;text-align:right;width:35px}.rs-canvas{-webkit-box-ordinal-group:2;-webkit-order:2;order:2}@media (min-width:480px){.rs-base{left:20px;top:20px}}\"; (require(\"browserify-css\").createStyle(css, { \"href\": \"src/style/rStats.css\"})); module.exports = css;","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e(t.THREE={})}(this,function(t){\"use strict\";function e(){}function i(t,e){this.x=t||0,this.y=e||0}function n(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}function r(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==n?n:1}function a(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}function o(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}function s(t,e,n,r,a,c,h,l,u,p){Object.defineProperty(this,\"id\",{value:gs++}),this.uuid=ms.generateUUID(),this.name=\"\",this.image=void 0!==t?t:s.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==e?e:s.DEFAULT_MAPPING,this.wrapS=void 0!==n?n:yo,this.wrapT=void 0!==r?r:yo,this.magFilter=void 0!==a?a:Mo,this.minFilter=void 0!==c?c:To,this.anisotropy=void 0!==u?u:1,this.format=void 0!==h?h:Go,this.type=void 0!==l?l:So,this.offset=new i(0,0),this.repeat=new i(1,1),this.center=new i(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new o,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==p?p:os,this.version=0,this.onUpdate=null}function c(t,e,i,n){this.x=t||0,this.y=e||0,this.z=i||0,this.w=void 0!==n?n:1}function h(t,e,i){this.uuid=ms.generateUUID(),this.width=t,this.height=e,this.scissor=new c(0,0,t,e),this.scissorTest=!1,this.viewport=new c(0,0,t,e),i=i||{},void 0===i.minFilter&&(i.minFilter=Mo),this.texture=new s(void 0,void 0,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0===i.stencilBuffer||i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null}function l(t,e,i){h.call(this,t,e,i),this.activeCubeFace=0,this.activeMipMapLevel=0}function u(t,e,i,n,r,a,o,c,h,l,u,p){s.call(this,null,a,o,c,h,l,n,r,u,p),this.image={data:t,width:e,height:i},this.magFilter=void 0!==h?h:bo,this.minFilter=void 0!==l?l:bo,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}function p(t,e,i,n,r,a,o,c,h,l){t=void 0!==t?t:[],e=void 0!==e?e:ho,s.call(this,t,e,i,n,r,a,o,c,h,l),this.flipY=!1}function d(){this.seq=[],this.map={}}function f(t,e,i){var n=t[0];if(n<=0||n>0)return t;var r=e*i,a=xs[r];if(void 0===a&&(a=new Float32Array(r),xs[r]=a),0!==e){n.toArray(a,0);for(var o=1,s=0;o!==e;++o)s+=i,t[o].toArray(a,s)}return a}function m(t,e){var i=bs[e];void 0===i&&(i=new Int32Array(e),bs[e]=i);for(var n=0;n!==e;++n)i[n]=t.allocTextureUnit();return i}function g(t,e){t.uniform1f(this.addr,e)}function v(t,e){t.uniform1i(this.addr,e)}function y(t,e){void 0===e.x?t.uniform2fv(this.addr,e):t.uniform2f(this.addr,e.x,e.y)}function x(t,e){void 0!==e.x?t.uniform3f(this.addr,e.x,e.y,e.z):void 0!==e.r?t.uniform3f(this.addr,e.r,e.g,e.b):t.uniform3fv(this.addr,e)}function b(t,e){void 0===e.x?t.uniform4fv(this.addr,e):t.uniform4f(this.addr,e.x,e.y,e.z,e.w)}function _(t,e){t.uniformMatrix2fv(this.addr,!1,e.elements||e)}function w(t,e){void 0===e.elements?t.uniformMatrix3fv(this.addr,!1,e):(ws.set(e.elements),t.uniformMatrix3fv(this.addr,!1,ws))}function M(t,e){void 0===e.elements?t.uniformMatrix4fv(this.addr,!1,e):(_s.set(e.elements),t.uniformMatrix4fv(this.addr,!1,_s))}function E(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTexture2D(e||vs,n)}function T(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTextureCube(e||ys,n)}function S(t,e){t.uniform2iv(this.addr,e)}function A(t,e){t.uniform3iv(this.addr,e)}function R(t,e){t.uniform4iv(this.addr,e)}function L(t){switch(t){case 5126:return g;case 35664:return y;case 35665:return x;case 35666:return b;case 35674:return _;case 35675:return w;case 35676:return M;case 35678:case 36198:return E;case 35680:return T;case 5124:case 35670:return v;case 35667:case 35671:return S;case 35668:case 35672:return A;case 35669:case 35673:return R}}function P(t,e){t.uniform1fv(this.addr,e)}function C(t,e){t.uniform1iv(this.addr,e)}function I(t,e){t.uniform2fv(this.addr,f(e,this.size,2))}function U(t,e){t.uniform3fv(this.addr,f(e,this.size,3))}function D(t,e){t.uniform4fv(this.addr,f(e,this.size,4))}function O(t,e){t.uniformMatrix2fv(this.addr,!1,f(e,this.size,4))}function N(t,e){t.uniformMatrix3fv(this.addr,!1,f(e,this.size,9))}function F(t,e){t.uniformMatrix4fv(this.addr,!1,f(e,this.size,16))}function B(t,e,i){var n=e.length,r=m(i,n);t.uniform1iv(this.addr,r);for(var a=0;a!==n;++a)i.setTexture2D(e[a]||vs,r[a])}function z(t,e,i){var n=e.length,r=m(i,n);t.uniform1iv(this.addr,r);for(var a=0;a!==n;++a)i.setTextureCube(e[a]||ys,r[a])}function G(t){switch(t){case 5126:return P;case 35664:return I;case 35665:return U;case 35666:return D;case 35674:return O;case 35675:return N;case 35676:return F;case 35678:return B;case 35680:return z;case 5124:case 35670:return C;case 35667:case 35671:return S;case 35668:case 35672:return A;case 35669:case 35673:return R}}function H(t,e,i){this.id=t,this.addr=i,this.setValue=L(e.type)}function V(t,e,i){this.id=t,this.addr=i,this.size=e.size,this.setValue=G(e.type)}function k(t){this.id=t,d.call(this)}function j(t,e){t.seq.push(e),t.map[e.id]=e}function W(t,e,i){var n=t.name,r=n.length;for(Ms.lastIndex=0;;){var a=Ms.exec(n),o=Ms.lastIndex,s=a[1],c=\"]\"===a[2],h=a[3];if(c&&(s|=0),void 0===h||\"[\"===h&&o+2===r){j(i,void 0===h?new H(s,t,e):new V(s,t,e));break}var l=i.map,u=l[s];void 0===u&&(u=new k(s),j(i,u)),i=u}}function X(t,e,i){d.call(this),this.renderer=i;for(var n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),r=0;r.001&&C.scale>.001&&(M.x=C.x,M.y=C.y,M.z=C.z,_=C.size*C.scale/u.w,w.x=_*y,w.y=_,e.uniform3f(f.screenPosition,M.x,M.y,M.z),e.uniform2f(f.scale,w.x,w.y),e.uniform1f(f.rotation,C.rotation),e.uniform1f(f.opacity,C.opacity),e.uniform3f(f.color,C.color.r,C.color.g,C.color.b),n.setBlending(C.blending,C.blendEquation,C.blendSrc,C.blendDst),r.setTexture2D(C.texture,1),e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}}}n.enable(e.CULL_FACE),n.enable(e.DEPTH_TEST),n.buffers.depth.setMask(!0),n.reset()}}}function J(t,e,i,n,r,a,o,c,h){s.call(this,t,e,i,n,r,a,o,c,h),this.needsUpdate=!0}function Q(t,e,i,n,o){function s(){var t=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),i=new Uint16Array([0,1,2,0,2,3]);l=e.createBuffer(),u=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,l),e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,u),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i,e.STATIC_DRAW),p=c(),d={position:e.getAttribLocation(p,\"position\"),uv:e.getAttribLocation(p,\"uv\")},f={uvOffset:e.getUniformLocation(p,\"uvOffset\"),uvScale:e.getUniformLocation(p,\"uvScale\"),rotation:e.getUniformLocation(p,\"rotation\"),scale:e.getUniformLocation(p,\"scale\"),color:e.getUniformLocation(p,\"color\"),map:e.getUniformLocation(p,\"map\"),opacity:e.getUniformLocation(p,\"opacity\"),modelViewMatrix:e.getUniformLocation(p,\"modelViewMatrix\"),projectionMatrix:e.getUniformLocation(p,\"projectionMatrix\"),fogType:e.getUniformLocation(p,\"fogType\"),fogDensity:e.getUniformLocation(p,\"fogDensity\"),fogNear:e.getUniformLocation(p,\"fogNear\"),fogFar:e.getUniformLocation(p,\"fogFar\"),fogColor:e.getUniformLocation(p,\"fogColor\"),fogDepth:e.getUniformLocation(p,\"fogDepth\"),alphaTest:e.getUniformLocation(p,\"alphaTest\")};var n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");n.width=8,n.height=8;var r=n.getContext(\"2d\");r.fillStyle=\"white\",r.fillRect(0,0,8,8),m=new J(n)}function c(){var t=e.createProgram(),i=e.createShader(e.VERTEX_SHADER),n=e.createShader(e.FRAGMENT_SHADER);return e.shaderSource(i,[\"precision \"+o.precision+\" float;\",\"#define SHADER_NAME SpriteMaterial\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform float rotation;\",\"uniform vec2 scale;\",\"uniform vec2 uvOffset;\",\"uniform vec2 uvScale;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"varying float fogDepth;\",\"void main() {\",\"\\tvUV = uvOffset + uv * uvScale;\",\"\\tvec2 alignedPosition = position * scale;\",\"\\tvec2 rotatedPosition;\",\"\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\",\"\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\",\"\\tvec4 mvPosition;\",\"\\tmvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\",\"\\tmvPosition.xy += rotatedPosition;\",\"\\tgl_Position = projectionMatrix * mvPosition;\",\"\\tfogDepth = - mvPosition.z;\",\"}\"].join(\"\\n\")),e.shaderSource(n,[\"precision \"+o.precision+\" float;\",\"#define SHADER_NAME SpriteMaterial\",\"uniform vec3 color;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform int fogType;\",\"uniform vec3 fogColor;\",\"uniform float fogDensity;\",\"uniform float fogNear;\",\"uniform float fogFar;\",\"uniform float alphaTest;\",\"varying vec2 vUV;\",\"varying float fogDepth;\",\"void main() {\",\"\\tvec4 texture = texture2D( map, vUV );\",\"\\tgl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\",\"\\tif ( gl_FragColor.a < alphaTest ) discard;\",\"\\tif ( fogType > 0 ) {\",\"\\t\\tfloat fogFactor = 0.0;\",\"\\t\\tif ( fogType == 1 ) {\",\"\\t\\t\\tfogFactor = smoothstep( fogNear, fogFar, fogDepth );\",\"\\t\\t} else {\",\"\\t\\t\\tconst float LOG2 = 1.442695;\",\"\\t\\t\\tfogFactor = exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 );\",\"\\t\\t\\tfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\",\"\\t\\t}\",\"\\t\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\",\"\\t}\",\"}\"].join(\"\\n\")),e.compileShader(i),e.compileShader(n),e.attachShader(t,i),e.attachShader(t,n),e.linkProgram(t),t}function h(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:e.id-t.id}var l,u,p,d,f,m,g=new a,v=new r,y=new a;this.render=function(r,a,o){if(0!==r.length){void 0===p&&s(),i.useProgram(p),i.initAttributes(),i.enableAttribute(d.position),i.enableAttribute(d.uv),i.disableUnusedAttributes(),i.disable(e.CULL_FACE),i.enable(e.BLEND),e.bindBuffer(e.ARRAY_BUFFER,l),e.vertexAttribPointer(d.position,2,e.FLOAT,!1,16,0),e.vertexAttribPointer(d.uv,2,e.FLOAT,!1,16,8),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,u),e.uniformMatrix4fv(f.projectionMatrix,!1,o.projectionMatrix.elements),i.activeTexture(e.TEXTURE0),e.uniform1i(f.map,0);var c=0,x=0,b=a.fog;b?(e.uniform3f(f.fogColor,b.color.r,b.color.g,b.color.b),b.isFog?(e.uniform1f(f.fogNear,b.near),e.uniform1f(f.fogFar,b.far),e.uniform1i(f.fogType,1),c=1,x=1):b.isFogExp2&&(e.uniform1f(f.fogDensity,b.density),e.uniform1i(f.fogType,2),c=2,x=2)):(e.uniform1i(f.fogType,0),c=0,x=0);for(var _=0,w=r.length;_0:s&&s.isGeometry&&(u=s.morphTargets&&s.morphTargets.length>0)),e.isSkinnedMesh&&!1===i.skinning&&console.warn(\"THREE.WebGLShadowMap: THREE.SkinnedMesh with material.skinning set to false:\",e);var p=e.isSkinnedMesh&&i.skinning,d=0;u&&(d|=g),p&&(d|=v),c=h[d]}if(t.localClippingEnabled&&!0===i.clipShadows&&0!==i.clippingPlanes.length){var f=c.uuid,m=i.uuid,y=_[f];void 0===y&&(y={},_[f]=y);var w=y[m];void 0===w&&(w=c.clone(),y[m]=w),c=w}c.visible=i.visible,c.wireframe=i.wireframe;var M=i.side;return P.renderSingleSided&&M==_a&&(M=xa),P.renderReverseSided&&(M===xa?M=ba:M===ba&&(M=xa)),c.side=M,c.clipShadows=i.clipShadows,c.clippingPlanes=i.clippingPlanes,c.clipIntersection=i.clipIntersection,c.wireframeLinewidth=i.wireframeLinewidth,c.linewidth=i.linewidth,n&&c.isMeshDistanceMaterial&&(c.referencePosition.copy(r),c.nearDistance=a,c.farDistance=o),c}function s(i,n,r,a){if(!1!==i.visible){if(i.layers.test(n.layers)&&(i.isMesh||i.isLine||i.isPoints)&&i.castShadow&&(!i.frustumCulled||l.intersectsObject(i))){i.modelViewMatrix.multiplyMatrices(r.matrixWorldInverse,i.matrixWorld);var c=e.update(i),h=i.material;if(Array.isArray(h))for(var u=c.groups,p=0,d=u.length;pe&&(e=t[i]);return e}function St(){Object.defineProperty(this,\"id\",{value:Is+=2}),this.uuid=ms.generateUUID(),this.name=\"\",this.type=\"BufferGeometry\",this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0}}function At(t,e,i,n,r,a){dt.call(this),this.type=\"BoxGeometry\",this.parameters={width:t,height:e,depth:i,widthSegments:n,heightSegments:r,depthSegments:a},this.fromBufferGeometry(new Rt(t,e,i,n,r,a)),this.mergeVertices()}function Rt(t,e,i,n,r,o){function s(t,e,i,n,r,o,s,m,g,v,y){var x,b,_=o/g,w=s/v,M=o/2,E=s/2,T=m/2,S=g+1,A=v+1,R=0,L=0,P=new a;for(b=0;b0?1:-1,u.push(P.x,P.y,P.z),p.push(x/g),p.push(1-b/v),R+=1}}for(b=0;b1&&a.sort(Bt),o.length>1&&o.sort(zt)}var n=[],r=0,a=[],o=[];return{opaque:a,transparent:o,init:t,push:e,sort:i}}function Ht(){function t(t,e){var n=t.id+\",\"+e.id,r=i[n];return void 0===r&&(r=new Gt,i[n]=r),r}function e(){i={}}var i={};return{get:t,dispose:e}}function Vt(t,e){return Math.abs(e[1])-Math.abs(t[1])}function kt(t){function e(e,r,a,o){var s=e.morphTargetInfluences,c=s.length,h=i[r.id];if(void 0===h){h=[];for(var l=0;l65535?_t:xt)(r,1),e.update(n,t.ELEMENT_ARRAY_BUFFER),c[i.id]=n,n}var s={},c={};return{get:r,update:a,getWireframeAttribute:o}}function qt(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var n;switch(e.type){case\"DirectionalLight\":n={direction:new a,color:new q,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new i};break;case\"SpotLight\":n={position:new a,direction:new a,color:new q,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new i};break;case\"PointLight\":n={position:new a,color:new q,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new i,shadowCameraNear:1,shadowCameraFar:1e3};break;case\"HemisphereLight\":n={direction:new a,skyColor:new q,groundColor:new q};break;case\"RectAreaLight\":n={color:new q,position:new a,halfWidth:new a,halfHeight:new a}}return t[e.id]=n,n}}}function Yt(){function t(t,n,a){for(var c=0,h=0,l=0,u=0,p=0,d=0,f=0,m=0,g=a.matrixWorldInverse,v=0,y=t.length;v\");return se(i)}var i=/^[ \\t]*#include +<([\\w\\d.]+)>/gm;return t.replace(i,e)}function ce(t){function e(t,e,i,n){for(var r=\"\",a=parseInt(e);a0?t.gammaFactor:1,v=ie(n.extensions,a,e),y=ne(s),x=o.createProgram();n.isRawShaderMaterial?(f=[y].filter(ae).join(\"\\n\"),f.length>0&&(f+=\"\\n\"),m=[v,y].filter(ae).join(\"\\n\"),m.length>0&&(m+=\"\\n\")):(f=[\"precision \"+a.precision+\" float;\",\"precision \"+a.precision+\" int;\",\"#define SHADER_NAME \"+r.name,y,a.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+g,\"#define MAX_BONES \"+a.maxBones,a.useFog&&a.fog?\"#define USE_FOG\":\"\",a.useFog&&a.fogExp?\"#define FOG_EXP2\":\"\",a.map?\"#define USE_MAP\":\"\",a.envMap?\"#define USE_ENVMAP\":\"\",a.envMap?\"#define \"+p:\"\",a.lightMap?\"#define USE_LIGHTMAP\":\"\",a.aoMap?\"#define USE_AOMAP\":\"\",a.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",a.bumpMap?\"#define USE_BUMPMAP\":\"\",a.normalMap?\"#define USE_NORMALMAP\":\"\",a.displacementMap&&a.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",a.specularMap?\"#define USE_SPECULARMAP\":\"\",a.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",a.metalnessMap?\"#define USE_METALNESSMAP\":\"\",a.alphaMap?\"#define USE_ALPHAMAP\":\"\",a.vertexColors?\"#define USE_COLOR\":\"\",a.flatShading?\"#define FLAT_SHADED\":\"\",a.skinning?\"#define USE_SKINNING\":\"\",a.useVertexTexture?\"#define BONE_TEXTURE\":\"\",a.morphTargets?\"#define USE_MORPHTARGETS\":\"\",a.morphNormals&&!1===a.flatShading?\"#define USE_MORPHNORMALS\":\"\",a.doubleSided?\"#define DOUBLE_SIDED\":\"\",a.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+a.numClippingPlanes,a.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",a.shadowMapEnabled?\"#define \"+l:\"\",a.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",a.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",a.logarithmicDepthBuffer&&e.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_COLOR\",\"\\tattribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\"\\tattribute vec3 morphTarget0;\",\"\\tattribute vec3 morphTarget1;\",\"\\tattribute vec3 morphTarget2;\",\"\\tattribute vec3 morphTarget3;\",\"\\t#ifdef USE_MORPHNORMALS\",\"\\t\\tattribute vec3 morphNormal0;\",\"\\t\\tattribute vec3 morphNormal1;\",\"\\t\\tattribute vec3 morphNormal2;\",\"\\t\\tattribute vec3 morphNormal3;\",\"\\t#else\",\"\\t\\tattribute vec3 morphTarget4;\",\"\\t\\tattribute vec3 morphTarget5;\",\"\\t\\tattribute vec3 morphTarget6;\",\"\\t\\tattribute vec3 morphTarget7;\",\"\\t#endif\",\"#endif\",\"#ifdef USE_SKINNING\",\"\\tattribute vec4 skinIndex;\",\"\\tattribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(ae).join(\"\\n\"),m=[v,\"precision \"+a.precision+\" float;\",\"precision \"+a.precision+\" int;\",\"#define SHADER_NAME \"+r.name,y,a.alphaTest?\"#define ALPHATEST \"+a.alphaTest:\"\",\"#define GAMMA_FACTOR \"+g,a.useFog&&a.fog?\"#define USE_FOG\":\"\",a.useFog&&a.fogExp?\"#define FOG_EXP2\":\"\",a.map?\"#define USE_MAP\":\"\",a.envMap?\"#define USE_ENVMAP\":\"\",a.envMap?\"#define \"+u:\"\",a.envMap?\"#define \"+p:\"\",a.envMap?\"#define \"+d:\"\",a.lightMap?\"#define USE_LIGHTMAP\":\"\",a.aoMap?\"#define USE_AOMAP\":\"\",a.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",a.bumpMap?\"#define USE_BUMPMAP\":\"\",a.normalMap?\"#define USE_NORMALMAP\":\"\",a.specularMap?\"#define USE_SPECULARMAP\":\"\",a.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",a.metalnessMap?\"#define USE_METALNESSMAP\":\"\",a.alphaMap?\"#define USE_ALPHAMAP\":\"\",a.vertexColors?\"#define USE_COLOR\":\"\",a.gradientMap?\"#define USE_GRADIENTMAP\":\"\",a.flatShading?\"#define FLAT_SHADED\":\"\",a.doubleSided?\"#define DOUBLE_SIDED\":\"\",a.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+a.numClippingPlanes,\"#define UNION_CLIPPING_PLANES \"+(a.numClippingPlanes-a.numClipIntersection),a.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",a.shadowMapEnabled?\"#define \"+l:\"\",a.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",a.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",a.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",a.logarithmicDepthBuffer&&e.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",a.envMap&&e.get(\"EXT_shader_texture_lod\")?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",a.toneMapping!==ro?\"#define TONE_MAPPING\":\"\",a.toneMapping!==ro?As.tonemapping_pars_fragment:\"\",a.toneMapping!==ro?ee(\"toneMapping\",a.toneMapping):\"\",a.dithering?\"#define DITHERING\":\"\",a.outputEncoding||a.mapEncoding||a.envMapEncoding||a.emissiveMapEncoding?As.encodings_pars_fragment:\"\",a.mapEncoding?$t(\"mapTexelToLinear\",a.mapEncoding):\"\",a.envMapEncoding?$t(\"envMapTexelToLinear\",a.envMapEncoding):\"\",a.emissiveMapEncoding?$t(\"emissiveMapTexelToLinear\",a.emissiveMapEncoding):\"\",a.outputEncoding?te(\"linearToOutputTexel\",a.outputEncoding):\"\",a.depthPacking?\"#define DEPTH_PACKING \"+n.depthPacking:\"\",\"\\n\"].filter(ae).join(\"\\n\")),c=se(c),c=oe(c,a),h=se(h),h=oe(h,a),n.isShaderMaterial||(c=ce(c),h=ce(h));var b=f+c,_=m+h,w=Qt(o,o.VERTEX_SHADER,b),M=Qt(o,o.FRAGMENT_SHADER,_);o.attachShader(x,w),o.attachShader(x,M),void 0!==n.index0AttributeName?o.bindAttribLocation(x,0,n.index0AttributeName):!0===a.morphTargets&&o.bindAttribLocation(x,0,\"position\"),o.linkProgram(x);var E=o.getProgramInfoLog(x),T=o.getShaderInfoLog(w),S=o.getShaderInfoLog(M),A=!0,R=!0;!1===o.getProgramParameter(x,o.LINK_STATUS)?(A=!1,console.error(\"THREE.WebGLProgram: shader error: \",o.getError(),\"gl.VALIDATE_STATUS\",o.getProgramParameter(x,o.VALIDATE_STATUS),\"gl.getProgramInfoLog\",E,T,S)):\"\"!==E?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",E):\"\"!==T&&\"\"!==S||(R=!1),R&&(this.diagnostics={runnable:A,material:n,programLog:E,vertexShader:{log:T,prefix:f},fragmentShader:{log:S,prefix:m}}),o.deleteShader(w),o.deleteShader(M);var L;this.getUniforms=function(){return void 0===L&&(L=new X(o,x,t)),L};var P;return this.getAttributes=function(){return void 0===P&&(P=re(o,x)),P},this.destroy=function(){o.deleteProgram(x),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn(\"THREE.WebGLProgram: .uniforms is now .getUniforms().\"),this.getUniforms()}},attributes:{get:function(){return console.warn(\"THREE.WebGLProgram: .attributes is now .getAttributes().\"),this.getAttributes()}}}),this.id=Us++,this.code=i,this.usedTimes=1,this.program=x,this.vertexShader=w,this.fragmentShader=M,this}function le(t,e,i){function n(t){var e=t.skeleton,n=e.bones;if(i.floatVertexTextures)return 1024;var r=i.maxVertexUniforms,a=Math.floor((r-20)/4),o=Math.min(a,n.length);return o0,maxBones:d,useVertexTexture:i.floatVertexTextures,morphTargets:e.morphTargets,morphNormals:e.morphNormals,maxMorphTargets:t.maxMorphTargets,maxMorphNormals:t.maxMorphNormals,numDirLights:a.directional.length,numPointLights:a.point.length,numSpotLights:a.spot.length,numRectAreaLights:a.rectArea.length,numHemiLights:a.hemi.length,numClippingPlanes:h,numClipIntersection:l,dithering:e.dithering,shadowMapEnabled:t.shadowMap.enabled&&u.receiveShadow&&s.length>0,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:e.premultipliedAlpha,alphaTest:e.alphaTest,doubleSided:e.side===_a,flipSided:e.side===ba,depthPacking:void 0!==e.depthPacking&&e.depthPacking}},this.getProgramCode=function(e,i){var n=[];if(i.shaderID?n.push(i.shaderID):(n.push(e.fragmentShader),n.push(e.vertexShader)),void 0!==e.defines)for(var r in e.defines)n.push(r),n.push(e.defines[r]);for(var a=0;ae||t.height>e){var i=e/Math.max(t.width,t.height),n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");n.width=Math.floor(t.width*i),n.height=Math.floor(t.height*i);return n.getContext(\"2d\").drawImage(t,0,0,t.width,t.height,0,0,n.width,n.height),console.warn(\"THREE.WebGLRenderer: image is too big (\"+t.width+\"x\"+t.height+\"). Resized to \"+n.width+\"x\"+n.height,t),n}return t}function c(t){return ms.isPowerOfTwo(t.width)&&ms.isPowerOfTwo(t.height)}function h(t){if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement||t instanceof ImageBitmap){var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=ms.floorPowerOfTwo(t.width),e.height=ms.floorPowerOfTwo(t.height);return e.getContext(\"2d\").drawImage(t,0,0,e.width,e.height),console.warn(\"THREE.WebGLRenderer: image is not power of two (\"+t.width+\"x\"+t.height+\"). Resized to \"+e.width+\"x\"+e.height,t),e}return t}function l(t){return t.wrapS!==yo||t.wrapT!==yo||t.minFilter!==bo&&t.minFilter!==Mo}function u(t,e){return t.generateMipmaps&&e&&t.minFilter!==bo&&t.minFilter!==Mo}function p(e){return e===bo||e===_o||e===wo?t.NEAREST:t.LINEAR}function d(t){var e=t.target;e.removeEventListener(\"dispose\",d),m(e),o.textures--}function f(t){var e=t.target;e.removeEventListener(\"dispose\",f),g(e),o.textures--}function m(e){var i=n.get(e);if(e.image&&i.__image__webglTextureCube)t.deleteTexture(i.__image__webglTextureCube);else{if(void 0===i.__webglInit)return;t.deleteTexture(i.__webglTexture)}n.remove(e)}function g(e){var i=n.get(e),r=n.get(e.texture);if(e){if(void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e.isWebGLRenderTargetCube)for(var a=0;a<6;a++)t.deleteFramebuffer(i.__webglFramebuffer[a]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[a]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer);n.remove(e.texture),n.remove(e)}}function v(e,r){var a=n.get(e);if(e.version>0&&a.__version!==e.version){var o=e.image;if(void 0===o)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\",e);else{if(!1!==o.complete)return void _(a,e,r);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\",e)}}i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_2D,a.__webglTexture)}function y(e,h){var l=n.get(e);if(6===e.image.length)if(e.version>0&&l.__version!==e.version){l.__image__webglTextureCube||(e.addEventListener(\"dispose\",d),l.__image__webglTextureCube=t.createTexture(),o.textures++),i.activeTexture(t.TEXTURE0+h),i.bindTexture(t.TEXTURE_CUBE_MAP,l.__image__webglTextureCube),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e.flipY);for(var p=e&&e.isCompressedTexture,f=e.image[0]&&e.image[0].isDataTexture,m=[],g=0;g<6;g++)m[g]=p||f?f?e.image[g].image:e.image[g]:s(e.image[g],r.maxCubemapSize);var v=m[0],y=c(v),x=a.convert(e.format),_=a.convert(e.type);b(t.TEXTURE_CUBE_MAP,e,y);for(var g=0;g<6;g++)if(p)for(var w,M=m[g].mipmaps,E=0,T=M.length;E-1?i.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+g,E,x,w.width,w.height,0,w.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+g,E,x,w.width,w.height,0,x,_,w.data);else f?i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+g,0,x,m[g].width,m[g].height,0,x,_,m[g].data):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+g,0,x,x,_,m[g]);u(e,y)&&t.generateMipmap(t.TEXTURE_CUBE_MAP),l.__version=e.version,e.onUpdate&&e.onUpdate(e)}else i.activeTexture(t.TEXTURE0+h),i.bindTexture(t.TEXTURE_CUBE_MAP,l.__image__webglTextureCube)}function x(e,r){i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_CUBE_MAP,n.get(e).__webglTexture)}function b(i,o,s){var c;if(s?(t.texParameteri(i,t.TEXTURE_WRAP_S,a.convert(o.wrapS)),t.texParameteri(i,t.TEXTURE_WRAP_T,a.convert(o.wrapT)),t.texParameteri(i,t.TEXTURE_MAG_FILTER,a.convert(o.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,a.convert(o.minFilter))):(t.texParameteri(i,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(i,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),o.wrapS===yo&&o.wrapT===yo||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\",o),t.texParameteri(i,t.TEXTURE_MAG_FILTER,p(o.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,p(o.minFilter)),o.minFilter!==bo&&o.minFilter!==Mo&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\",o)),c=e.get(\"EXT_texture_filter_anisotropic\")){if(o.type===Io&&null===e.get(\"OES_texture_float_linear\"))return;if(o.type===Uo&&null===e.get(\"OES_texture_half_float_linear\"))return;(o.anisotropy>1||n.get(o).__currentAnisotropy)&&(t.texParameterf(i,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(o.anisotropy,r.getMaxAnisotropy())),n.get(o).__currentAnisotropy=o.anisotropy)}}function _(e,n,p){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",d),e.__webglTexture=t.createTexture(),o.textures++),i.activeTexture(t.TEXTURE0+p),i.bindTexture(t.TEXTURE_2D,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,n.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,n.unpackAlignment);var f=s(n.image,r.maxTextureSize);l(n)&&!1===c(f)&&(f=h(f));var m=c(f),g=a.convert(n.format),v=a.convert(n.type);b(t.TEXTURE_2D,n,m);var y,x=n.mipmaps;if(n.isDepthTexture){var _=t.DEPTH_COMPONENT;if(n.type===Io){if(!R)throw new Error(\"Float Depth Texture only supported in WebGL2.0\");_=t.DEPTH_COMPONENT32F}else R&&(_=t.DEPTH_COMPONENT16);n.format===jo&&_===t.DEPTH_COMPONENT&&n.type!==Lo&&n.type!==Co&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture.\"),n.type=Lo,v=a.convert(n.type)),n.format===Wo&&(_=t.DEPTH_STENCIL,n.type!==Fo&&(console.warn(\"THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture.\"),n.type=Fo,v=a.convert(n.type))),i.texImage2D(t.TEXTURE_2D,0,_,f.width,f.height,0,g,v,null)}else if(n.isDataTexture)if(x.length>0&&m){for(var w=0,M=x.length;w-1?i.compressedTexImage2D(t.TEXTURE_2D,w,g,y.width,y.height,0,y.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):i.texImage2D(t.TEXTURE_2D,w,g,y.width,y.height,0,g,v,y.data);else if(x.length>0&&m){for(var w=0,M=x.length;w=1,it=null,nt={},rt=new c,at=new c,ot={};return ot[t.TEXTURE_2D]=o(t.TEXTURE_2D,t.TEXTURE_2D,1),ot[t.TEXTURE_CUBE_MAP]=o(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),P.setClear(0,0,0,1),C.setClear(1),I.setClear(0),p(t.DEPTH_TEST),C.setFunc(Ja),y(!1),x(fa),p(t.CULL_FACE),p(t.BLEND),g(Sa),{buffers:{color:P,depth:C,stencil:I},initAttributes:s,enableAttribute:h,enableAttributeAndDivisor:l,disableUnusedAttributes:u,enable:p,disable:d,getCompressedTextureFormats:f,useProgram:m,setBlending:g,setMaterial:v,setFlipSided:y,setCullFace:x,setLineWidth:b,setPolygonOffset:_,setScissorTest:w,activeTexture:M,bindTexture:E,compressedTexImage2D:T,texImage2D:S,scissor:A,viewport:R,reset:L}}function fe(t,e,i){function n(){if(void 0!==a)return a;var i=e.get(\"EXT_texture_filter_anisotropic\");return a=null!==i?t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}var a,o=void 0!==i.precision?i.precision:\"highp\",s=r(o);s!==o&&(console.warn(\"THREE.WebGLRenderer:\",o,\"not supported, using\",s,\"instead.\"),o=s);var c=!0===i.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),l=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),d=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),m=t.getParameter(t.MAX_VARYING_VECTORS),g=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=l>0,y=!!e.get(\"OES_texture_float\");return{getMaxAnisotropy:n,getMaxPrecision:r,precision:o,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:u,maxCubemapSize:p,maxAttributes:d,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y}}function me(t,e,i,n){lt.call(this),this.type=\"PerspectiveCamera\",this.fov=void 0!==t?t:50,this.zoom=1,this.near=void 0!==i?i:.1,this.far=void 0!==n?n:2e3,this.focus=10,this.aspect=void 0!==e?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function ge(t){me.call(this),this.cameras=t||[]}function ve(t){function e(){if(null!==r&&r.isPresenting){var e=r.getEyeParameters(\"left\"),n=e.renderWidth,a=e.renderHeight;f=t.getPixelRatio(),d=t.getSize(),t.setDrawingBufferSize(2*n,a,1)}else i.enabled&&t.setDrawingBufferSize(d.width,d.height,f)}var i=this,r=null,a=null;\"undefined\"!=typeof window&&\"VRFrameData\"in window&&(a=new window.VRFrameData);var o=new n,s=new n,h=new n,l=new me;l.bounds=new c(0,0,.5,1),l.layers.enable(1);var u=new me;u.bounds=new c(.5,0,.5,1),u.layers.enable(2);var p=new ge([l,u]);p.layers.enable(1),p.layers.enable(2);var d,f;\"undefined\"!=typeof window&&window.addEventListener(\"vrdisplaypresentchange\",e,!1),this.enabled=!1,this.standing=!1,this.getDevice=function(){return r},this.setDevice=function(t){void 0!==t&&(r=t)},this.getCamera=function(t){if(null===r)return t;r.depthNear=t.near,r.depthFar=t.far,r.getFrameData(a);var e=a.pose;null!==e.position?t.position.fromArray(e.position):t.position.set(0,0,0),null!==e.orientation&&t.quaternion.fromArray(e.orientation),t.updateMatrixWorld();var i=r.stageParameters;if(this.standing&&i&&(s.fromArray(i.sittingToStandingTransform),h.getInverse(s),t.matrixWorld.multiply(s),t.matrixWorldInverse.multiply(h)),!1===r.isPresenting)return t;l.near=t.near,u.near=t.near,l.far=t.far,u.far=t.far,p.matrixWorld.copy(t.matrixWorld),p.matrixWorldInverse.copy(t.matrixWorldInverse),l.matrixWorldInverse.fromArray(a.leftViewMatrix),u.matrixWorldInverse.fromArray(a.rightViewMatrix),this.standing&&i&&(l.matrixWorldInverse.multiply(h),u.matrixWorldInverse.multiply(h));var n=t.parent;null!==n&&(o.getInverse(n.matrixWorld),l.matrixWorldInverse.multiply(o),u.matrixWorldInverse.multiply(o)),l.matrixWorld.getInverse(l.matrixWorldInverse),u.matrixWorld.getInverse(u.matrixWorldInverse),l.projectionMatrix.fromArray(a.leftProjectionMatrix),u.projectionMatrix.fromArray(a.rightProjectionMatrix),p.projectionMatrix.copy(l.projectionMatrix);var c=r.getLayers();if(c.length){var d=c[0];null!==d.leftBounds&&4===d.leftBounds.length&&l.bounds.fromArray(d.leftBounds),null!==d.rightBounds&&4===d.rightBounds.length&&u.bounds.fromArray(d.rightBounds)}return p},this.getStandingMatrix=function(){return s},this.submitFrame=function(){r&&r.isPresenting&&r.submitFrame()},this.dispose=function(){\"undefined\"!=typeof window&&window.removeEventListener(\"vrdisplaypresentchange\",e)}}function ye(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var n;switch(i){case\"WEBGL_depth_texture\":n=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":n=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":n=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":n=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case\"WEBGL_compressed_texture_etc1\":n=t.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:n=t.getExtension(i)}return null===n&&console.warn(\"THREE.WebGLRenderer: \"+i+\" extension not supported.\"),e[i]=n,n}}}function xe(){function t(){l.value!==n&&(l.value=n,l.needsUpdate=r>0),i.numPlanes=r,i.numIntersection=0}function e(t,e,n,r){var a=null!==t?t.length:0,o=null;if(0!==a){if(o=l.value,!0!==r||null===o){var s=n+4*a,u=e.matrixWorldInverse;h.getNormalMatrix(u),(null===o||o.length=0){var h=r[s];if(void 0!==h){var l=h.normalized,u=h.itemSize,p=Dt.get(h);if(void 0===p)continue;var d=p.buffer,f=p.type,m=p.bytesPerElement;if(h.isInterleavedBufferAttribute){var g=h.data,v=g.stride,y=h.offset;g&&g.isInstancedInterleavedBuffer?(Ct.enableAttributeAndDivisor(c,g.meshPerAttribute),void 0===i.maxInstancedCount&&(i.maxInstancedCount=g.meshPerAttribute*g.count)):Ct.enableAttribute(c),At.bindBuffer(At.ARRAY_BUFFER,d),At.vertexAttribPointer(c,u,f,l,v*m,(n*v+y)*m)}else h.isInstancedBufferAttribute?(Ct.enableAttributeAndDivisor(c,h.meshPerAttribute),void 0===i.maxInstancedCount&&(i.maxInstancedCount=h.meshPerAttribute*h.count)):Ct.enableAttribute(c),At.bindBuffer(At.ARRAY_BUFFER,d),At.vertexAttribPointer(c,u,f,l,0,n*u*m)}else if(void 0!==o){var x=o[s];if(void 0!==x)switch(x.length){case 2:At.vertexAttrib2fv(c,x);break;case 3:At.vertexAttrib3fv(c,x);break;case 4:At.vertexAttrib4fv(c,x);break;default:At.vertexAttrib1fv(c,x)}}}}Ct.disableUnusedAttributes()}function f(){if(!ne){var t=ee.getDevice();t&&t.isPresenting?t.requestAnimationFrame(m):window.requestAnimationFrame(m),ne=!0}}function m(t){null!==re&&re(t);var e=ee.getDevice();e&&e.isPresenting?e.requestAnimationFrame(m):window.requestAnimationFrame(m)}function g(t,e,i){if(!1!==t.visible){if(t.layers.test(e.layers))if(t.isLight)j.push(t),t.castShadow&&W.push(t);else if(t.isSprite)t.frustumCulled&&!xt.intersectsSprite(t)||Y.push(t);else if(t.isLensFlare)J.push(t);else if(t.isImmediateRenderObject)i&&Et.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Mt),q.push(t,null,t.material,Et.z,null);else if((t.isMesh||t.isLine||t.isPoints)&&(t.isSkinnedMesh&&t.skeleton.update(),!t.frustumCulled||xt.intersectsObject(t))){i&&Et.setFromMatrixPosition(t.matrixWorld).applyMatrix4(Mt);var n=Nt.update(t),r=t.material;if(Array.isArray(r))for(var a=n.groups,o=0,s=a.length;o=0&&t.numSupportedMorphTargets++}if(t.morphNormals){t.numSupportedMorphNormals=0;for(var p=0;p=0&&t.numSupportedMorphNormals++}var d=n.shader.uniforms;(t.isShaderMaterial||t.isRawShaderMaterial)&&!0!==t.clipping||(n.numClippingPlanes=bt.numPlanes,n.numIntersection=bt.numIntersection,d.clippingPlanes=bt.uniform),n.fog=e,n.lightsHash=Bt.state.hash,t.lights&&(d.ambientLightColor.value=Bt.state.ambient,d.directionalLights.value=Bt.state.directional,d.spotLights.value=Bt.state.spot,d.rectAreaLights.value=Bt.state.rectArea,d.pointLights.value=Bt.state.point,d.hemisphereLights.value=Bt.state.hemi,d.directionalShadowMap.value=Bt.state.directionalShadowMap,d.directionalShadowMatrix.value=Bt.state.directionalShadowMatrix,d.spotShadowMap.value=Bt.state.spotShadowMap,d.spotShadowMatrix.value=Bt.state.spotShadowMatrix,d.pointShadowMap.value=Bt.state.pointShadowMap,d.pointShadowMatrix.value=Bt.state.pointShadowMatrix);var f=n.program.getUniforms(),m=X.seqWithValue(f.seq,d);n.uniformsList=m}function b(t,e,i,n){pt=0;var r=It.get(i);if(_t&&(wt||t!==st)){var a=t===st&&i.id===it;bt.setState(i.clippingPlanes,i.clipIntersection,i.clipShadows,t,r,a)}!1===i.needsUpdate&&(void 0===r.program?i.needsUpdate=!0:i.fog&&r.fog!==e?i.needsUpdate=!0:i.lights&&r.lightsHash!==Bt.state.hash?i.needsUpdate=!0:void 0===r.numClippingPlanes||r.numClippingPlanes===bt.numPlanes&&r.numIntersection===bt.numIntersection||(i.needsUpdate=!0)),i.needsUpdate&&(x(i,e,n),i.needsUpdate=!1);var o=!1,s=!1,c=!1,h=r.program,l=h.getUniforms(),p=r.shader.uniforms;if(Ct.useProgram(h.program)&&(o=!0,s=!0,c=!0),i.id!==it&&(it=i.id,s=!0),o||t!==st){if(l.setValue(At,\"projectionMatrix\",t.projectionMatrix),Pt.logarithmicDepthBuffer&&l.setValue(At,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),st!==(ct||t)&&(st=ct||t,s=!0,c=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.envMap){var d=l.map.cameraPosition;void 0!==d&&d.setValue(At,Et.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.skinning)&&l.setValue(At,\"viewMatrix\",t.matrixWorldInverse)}if(i.skinning){l.setOptional(At,n,\"bindMatrix\"),l.setOptional(At,n,\"bindMatrixInverse\");var f=n.skeleton;if(f){var m=f.bones;if(Pt.floatVertexTextures){if(void 0===f.boneTexture){var g=Math.sqrt(4*m.length);g=ms.ceilPowerOfTwo(g),g=Math.max(g,4);var v=new Float32Array(g*g*4);v.set(f.boneMatrices);var y=new u(v,g,g,Go,Io);f.boneMatrices=v,f.boneTexture=y,f.boneTextureSize=g}l.setValue(At,\"boneTexture\",f.boneTexture),l.setValue(At,\"boneTextureSize\",f.boneTextureSize)}else l.setOptional(At,f,\"boneMatrices\")}}return s&&(l.setValue(At,\"toneMappingExposure\",K.toneMappingExposure),l.setValue(At,\"toneMappingWhitePoint\",K.toneMappingWhitePoint),i.lights&&D(p,c),e&&i.fog&&T(p,e),i.isMeshBasicMaterial?_(p,i):i.isMeshLambertMaterial?(_(p,i),S(p,i)):i.isMeshPhongMaterial?(_(p,i),i.isMeshToonMaterial?R(p,i):A(p,i)):i.isMeshStandardMaterial?(_(p,i),i.isMeshPhysicalMaterial?P(p,i):L(p,i)):i.isMeshDepthMaterial?(_(p,i),C(p,i)):i.isMeshDistanceMaterial?(_(p,i),I(p,i)):i.isMeshNormalMaterial?(_(p,i),U(p,i)):i.isLineBasicMaterial?(w(p,i),i.isLineDashedMaterial&&M(p,i)):i.isPointsMaterial?E(p,i):i.isShadowMaterial&&(p.color.value=i.color,p.opacity.value=i.opacity),void 0!==p.ltcMat&&(p.ltcMat.value=Ts.LTC_MAT_TEXTURE),void 0!==p.ltcMag&&(p.ltcMag.value=Ts.LTC_MAG_TEXTURE),X.upload(At,r.uniformsList,p,K)),l.setValue(At,\"modelViewMatrix\",n.modelViewMatrix),l.setValue(At,\"normalMatrix\",n.normalMatrix),l.setValue(At,\"modelMatrix\",n.matrixWorld),h}function _(t,e){t.opacity.value=e.opacity,e.color&&(t.diffuse.value=e.color),e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),e.map&&(t.map.value=e.map),e.alphaMap&&(t.alphaMap.value=e.alphaMap),e.specularMap&&(t.specularMap.value=e.specularMap),e.envMap&&(t.envMap.value=e.envMap,t.flipEnvMap.value=e.envMap&&e.envMap.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity);var i;if(e.map?i=e.map:e.specularMap?i=e.specularMap:e.displacementMap?i=e.displacementMap:e.normalMap?i=e.normalMap:e.bumpMap?i=e.bumpMap:e.roughnessMap?i=e.roughnessMap:e.metalnessMap?i=e.metalnessMap:e.alphaMap?i=e.alphaMap:e.emissiveMap&&(i=e.emissiveMap),void 0!==i){if(i.isWebGLRenderTarget&&(i=i.texture),!0===i.matrixAutoUpdate){var n=i.offset,r=i.repeat,a=i.rotation,o=i.center;i.matrix.setUvTransform(n.x,n.y,r.x,r.y,a,o.x,o.y)}t.uvTransform.value.copy(i.matrix)}}function w(t,e){t.diffuse.value=e.color,t.opacity.value=e.opacity}function M(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function E(t,e){if(t.diffuse.value=e.color,t.opacity.value=e.opacity,t.size.value=e.size*mt,t.scale.value=.5*ft,t.map.value=e.map,null!==e.map){if(!0===e.map.matrixAutoUpdate){var i=e.map.offset,n=e.map.repeat,r=e.map.rotation,a=e.map.center;e.map.matrix.setUvTransform(i.x,i.y,n.x,n.y,r,a.x,a.y)}t.uvTransform.value.copy(e.map.matrix)}}function T(t,e){t.fogColor.value=e.color,e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}function S(t,e){e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}function A(t,e){t.specular.value=e.specular,t.shininess.value=Math.max(e.shininess,1e-4),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function R(t,e){A(t,e),e.gradientMap&&(t.gradientMap.value=e.gradientMap)}function L(t,e){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function P(t,e){t.clearCoat.value=e.clearCoat,t.clearCoatRoughness.value=e.clearCoatRoughness,L(t,e)}function C(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function I(t,e){e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),t.referencePosition.value.copy(e.referencePosition),t.nearDistance.value=e.nearDistance,t.farDistance.value=e.farDistance}function U(t,e){e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function D(t,e){t.ambientLightColor.needsUpdate=e,t.directionalLights.needsUpdate=e,t.pointLights.needsUpdate=e,t.spotLights.needsUpdate=e,t.rectAreaLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e}function O(){var t=pt;return t>=Pt.maxTextures&&console.warn(\"THREE.WebGLRenderer: Trying to use \"+t+\" texture units while this GPU supports only \"+Pt.maxTextures),pt+=1,t}console.log(\"THREE.WebGLRenderer\",ua),t=t||{};var N=void 0!==t.canvas?t.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),F=void 0!==t.context?t.context:null,B=void 0!==t.alpha&&t.alpha,z=void 0===t.depth||t.depth,G=void 0===t.stencil||t.stencil,H=void 0!==t.antialias&&t.antialias,V=void 0===t.premultipliedAlpha||t.premultipliedAlpha,k=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,j=[],W=[],q=null,Y=[],J=[];this.domElement=N,this.context=null,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.gammaInput=!1,this.gammaOutput=!1,this.physicallyCorrectLights=!1,this.toneMapping=ao,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var K=this,$=!1,tt=null,et=null,it=-1,nt=\"\",st=null,ct=null,ht=new c,lt=new c,ut=null,pt=0,dt=N.width,ft=N.height,mt=1,gt=new c(0,0,dt,ft),vt=new c(0,0,dt,ft),yt=!1,xt=new rt,bt=new xe,_t=!1,wt=!1,Mt=new n,Et=new a,Tt={geometries:0,textures:0},St={frame:0,calls:0,vertices:0,faces:0,points:0};this.info={render:St,memory:Tt,programs:null};var At;try{var Rt={alpha:B,depth:z,stencil:G,antialias:H,premultipliedAlpha:V,preserveDrawingBuffer:k};if(null===(At=F||N.getContext(\"webgl\",Rt)||N.getContext(\"experimental-webgl\",Rt)))throw null!==N.getContext(\"webgl\")?\"Error creating WebGL context with your selected attributes.\":\"Error creating WebGL context.\";void 0===At.getShaderPrecisionFormat&&(At.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),N.addEventListener(\"webglcontextlost\",r,!1),N.addEventListener(\"webglcontextrestored\",o,!1)}catch(t){console.error(\"THREE.WebGLRenderer: \"+t)}var Lt,Pt,Ct,It,Ut,Dt,Ot,Nt,Bt,zt,Gt,Vt,qt,Jt,Qt,Kt,$t,te;i();var ee=new ve(K);this.vr=ee;var ie=new at(K,Nt,Pt.maxTextureSize);this.shadowMap=ie,this.getContext=function(){return At},this.getContextAttributes=function(){\nreturn At.getContextAttributes()},this.forceContextLoss=function(){var t=Lt.get(\"WEBGL_lose_context\");t&&t.loseContext()},this.forceContextRestore=function(){var t=Lt.get(\"WEBGL_lose_context\");t&&t.restoreContext()},this.getPixelRatio=function(){return mt},this.setPixelRatio=function(t){void 0!==t&&(mt=t,this.setSize(dt,ft,!1))},this.getSize=function(){return{width:dt,height:ft}},this.setSize=function(t,e,i){var n=ee.getDevice();if(n&&n.isPresenting)return void console.warn(\"THREE.WebGLRenderer: Can't change size while VR device is presenting.\");dt=t,ft=e,N.width=t*mt,N.height=e*mt,!1!==i&&(N.style.width=t+\"px\",N.style.height=e+\"px\"),this.setViewport(0,0,t,e)},this.getDrawingBufferSize=function(){return{width:dt*mt,height:ft*mt}},this.setDrawingBufferSize=function(t,e,i){dt=t,ft=e,mt=i,N.width=t*i,N.height=e*i,this.setViewport(0,0,t,e)},this.setViewport=function(t,e,i,n){gt.set(t,ft-e-n,i,n),Ct.viewport(ht.copy(gt).multiplyScalar(mt))},this.setScissor=function(t,e,i,n){vt.set(t,ft-e-n,i,n),Ct.scissor(lt.copy(vt).multiplyScalar(mt))},this.setScissorTest=function(t){Ct.setScissorTest(yt=t)},this.getClearColor=function(){return Vt.getClearColor()},this.setClearColor=function(){Vt.setClearColor.apply(Vt,arguments)},this.getClearAlpha=function(){return Vt.getClearAlpha()},this.setClearAlpha=function(){Vt.setClearAlpha.apply(Vt,arguments)},this.clear=function(t,e,i){var n=0;(void 0===t||t)&&(n|=At.COLOR_BUFFER_BIT),(void 0===e||e)&&(n|=At.DEPTH_BUFFER_BIT),(void 0===i||i)&&(n|=At.STENCIL_BUFFER_BIT),At.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(t,e,i,n){this.setRenderTarget(t),this.clear(e,i,n)},this.dispose=function(){N.removeEventListener(\"webglcontextlost\",r,!1),N.removeEventListener(\"webglcontextrestored\",o,!1),Gt.dispose(),ee.dispose()},this.renderBufferImmediate=function(t,e,i){Ct.initAttributes();var n=It.get(t);t.hasPositions&&!n.position&&(n.position=At.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=At.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=At.createBuffer()),t.hasColors&&!n.color&&(n.color=At.createBuffer());var r=e.getAttributes();if(t.hasPositions&&(At.bindBuffer(At.ARRAY_BUFFER,n.position),At.bufferData(At.ARRAY_BUFFER,t.positionArray,At.DYNAMIC_DRAW),Ct.enableAttribute(r.position),At.vertexAttribPointer(r.position,3,At.FLOAT,!1,0,0)),t.hasNormals){if(At.bindBuffer(At.ARRAY_BUFFER,n.normal),!i.isMeshPhongMaterial&&!i.isMeshStandardMaterial&&!i.isMeshNormalMaterial&&!0===i.flatShading)for(var a=0,o=3*t.count;a0&&m.renderInstances(n,w,E):m.render(w,E)}},this.compile=function(t,e){j.length=0,W.length=0,t.traverse(function(t){t.isLight&&(j.push(t),t.castShadow&&W.push(t))}),Bt.setup(j,W,e),t.traverse(function(e){if(e.material)if(Array.isArray(e.material))for(var i=0;i=0&&e<=t.width-n&&i>=0&&i<=t.height-r&&At.readPixels(e,i,n,r,te.convert(h),te.convert(l),a):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{s&&At.bindFramebuffer(At.FRAMEBUFFER,et)}}}}function we(t,e){this.name=\"\",this.color=new q(t),this.density=void 0!==e?e:25e-5}function Me(t,e,i){this.name=\"\",this.color=new q(t),this.near=void 0!==e?e:1,this.far=void 0!==i?i:1e3}function Ee(){ht.call(this),this.type=\"Scene\",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function Te(t,e,i,n,r){ht.call(this),this.lensFlares=[],this.positionScreen=new a,this.customUpdateCallback=void 0,void 0!==t&&this.add(t,e,i,n,r)}function Se(t){K.call(this),this.type=\"SpriteMaterial\",this.color=new q(16777215),this.map=null,this.rotation=0,this.fog=!1,this.lights=!1,this.setValues(t)}function Ae(t){ht.call(this),this.type=\"Sprite\",this.material=void 0!==t?t:new Se}function Re(){ht.call(this),this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function Le(t,e){if(t=t||[],this.bones=t.slice(0),this.boneMatrices=new Float32Array(16*this.bones.length),void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else{console.warn(\"THREE.Skeleton boneInverses is the wrong length.\"),this.boneInverses=[];for(var i=0,r=this.bones.length;i=t.HAVE_CURRENT_DATA&&(u.needsUpdate=!0),requestAnimationFrame(l)}s.call(this,t,e,i,n,r,a,o,c,h),this.generateMipmaps=!1;var u=this;requestAnimationFrame(l)}function Ge(t,e,i,n,r,a,o,c,h,l,u,p){s.call(this,null,a,o,c,h,l,n,r,u,p),this.image={width:e,height:i},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}function He(t,e,i,n,r,a,o,c,h,l){if((l=void 0!==l?l:jo)!==jo&&l!==Wo)throw new Error(\"DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat\");void 0===i&&l===jo&&(i=Lo),void 0===i&&l===Wo&&(i=Fo),s.call(this,null,n,r,a,o,c,l,i,h),this.image={width:t,height:e},this.magFilter=void 0!==o?o:bo,this.minFilter=void 0!==c?c:bo,this.flipY=!1,this.generateMipmaps=!1}function Ve(t){St.call(this),this.type=\"WireframeGeometry\";var e,i,n,r,o,s,c,h,l,u,p=[],d=[0,0],f={},m=[\"a\",\"b\",\"c\"];if(t&&t.isGeometry){var g=t.faces;for(e=0,n=g.length;e=0?(p=t(v-1e-5,g,p),d.subVectors(u,p)):(p=t(v+1e-5,g,p),d.subVectors(p,u)),g-1e-5>=0?(p=t(v,g-1e-5,p),f.subVectors(u,p)):(p=t(v,g+1e-5,p),f.subVectors(p,u)),l.crossVectors(d,f).normalize(),c.push(l.x,l.y,l.z),h.push(v,g)}}for(n=0;n.9&&a<.1&&(e<.2&&(m[t+0]+=1),i<.2&&(m[t+2]+=1),n<.2&&(m[t+4]+=1))}}function c(t){f.push(t.x,t.y,t.z)}function h(e,i){var n=3*e;i.x=t[n+0],i.y=t[n+1],i.z=t[n+2]}function l(){for(var t=new a,e=new a,n=new a,r=new a,o=new i,s=new i,c=new i,h=0,l=0;h0)&&m.push(w,M,T),(h!==i-1||l0&&l(!0),e>0&&l(!1)),this.setIndex(p),this.addAttribute(\"position\",new wt(d,3)),this.addAttribute(\"normal\",new wt(f,3)),this.addAttribute(\"uv\",new wt(m,2))}function wi(t,e,i,n,r,a,o){bi.call(this,0,t,e,i,n,r,a,o),this.type=\"ConeGeometry\",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:r,thetaStart:a,thetaLength:o}}function Mi(t,e,i,n,r,a,o){_i.call(this,0,t,e,i,n,r,a,o),this.type=\"ConeBufferGeometry\",this.parameters={radius:t,height:e,radialSegments:i,heightSegments:n,openEnded:r,thetaStart:a,thetaLength:o}}function Ei(t,e,i,n){dt.call(this),this.type=\"CircleGeometry\",this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:n},this.fromBufferGeometry(new Ti(t,e,i,n)),this.mergeVertices()}function Ti(t,e,n,r){St.call(this),this.type=\"CircleBufferGeometry\",this.parameters={radius:t,segments:e,thetaStart:n,thetaLength:r},t=t||1,e=void 0!==e?Math.max(3,e):8,n=void 0!==n?n:0,r=void 0!==r?r:2*Math.PI;var o,s,c=[],h=[],l=[],u=[],p=new a,d=new i;for(h.push(0,0,0),l.push(0,0,1),u.push(.5,.5),s=0,o=3;s<=e;s++,o+=3){var f=n+s/e*r;p.x=t*Math.cos(f),p.y=t*Math.sin(f),h.push(p.x,p.y,p.z),l.push(0,0,1),d.x=(h[o]/t+1)/2,d.y=(h[o+1]/t+1)/2,u.push(d.x,d.y)}for(o=1;o<=e;o++)c.push(o,o+1,0);this.setIndex(c),this.addAttribute(\"position\",new wt(h,3)),this.addAttribute(\"normal\",new wt(l,3)),this.addAttribute(\"uv\",new wt(u,2))}function Si(t){K.call(this),this.type=\"ShadowMaterial\",this.color=new q(0),this.opacity=1,this.lights=!0,this.transparent=!0,this.setValues(t)}function Ai(t){It.call(this,t),this.type=\"RawShaderMaterial\"}function Ri(t){K.call(this),this.defines={STANDARD:\"\"},this.type=\"MeshStandardMaterial\",this.color=new q(16777215),this.roughness=.5,this.metalness=.5,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}\nfunction Li(t){Ri.call(this),this.defines={PHYSICAL:\"\"},this.type=\"MeshPhysicalMaterial\",this.reflectivity=.5,this.clearCoat=0,this.clearCoatRoughness=0,this.setValues(t)}function Pi(t){K.call(this),this.type=\"MeshPhongMaterial\",this.color=new q(16777215),this.specular=new q(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=eo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Ci(t){Pi.call(this),this.defines={TOON:\"\"},this.type=\"MeshToonMaterial\",this.gradientMap=null,this.setValues(t)}function Ii(t){K.call(this),this.type=\"MeshNormalMaterial\",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Ui(t){K.call(this),this.type=\"MeshLambertMaterial\",this.color=new q(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=eo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function Di(t){Ie.call(this),this.type=\"LineDashedMaterial\",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}function Oi(t,e,i){var n=this,r=!1,a=0,o=0,s=void 0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(t){o++,!1===r&&void 0!==n.onStart&&n.onStart(t,a,o),r=!0},this.itemEnd=function(t){a++,void 0!==n.onProgress&&n.onProgress(t,a,o),a===o&&(r=!1,void 0!==n.onLoad&&n.onLoad())},this.itemError=function(t){void 0!==n.onError&&n.onError(t)},this.resolveURL=function(t){return s?s(t):t},this.setURLModifier=function(t){s=t}}function Ni(t){this.manager=void 0!==t?t:Bs}function Fi(t){this.manager=void 0!==t?t:Bs,this._parser=null}function Bi(t){this.manager=void 0!==t?t:Bs,this._parser=null}function zi(t){this.manager=void 0!==t?t:Bs}function Gi(t){this.manager=void 0!==t?t:Bs}function Hi(t){this.manager=void 0!==t?t:Bs}function Vi(t,e){ht.call(this),this.type=\"Light\",this.color=new q(t),this.intensity=void 0!==e?e:1,this.receiveShadow=void 0}function ki(t,e,i){Vi.call(this,t,i),this.type=\"HemisphereLight\",this.castShadow=void 0,this.position.copy(ht.DefaultUp),this.updateMatrix(),this.groundColor=new q(e)}function ji(t){this.camera=t,this.bias=0,this.radius=1,this.mapSize=new i(512,512),this.map=null,this.matrix=new n}function Wi(){ji.call(this,new me(50,1,.5,500))}function Xi(t,e,i,n,r,a){Vi.call(this,t,e),this.type=\"SpotLight\",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,Object.defineProperty(this,\"power\",{get:function(){return this.intensity*Math.PI},set:function(t){this.intensity=t/Math.PI}}),this.distance=void 0!==i?i:0,this.angle=void 0!==n?n:Math.PI/3,this.penumbra=void 0!==r?r:0,this.decay=void 0!==a?a:1,this.shadow=new Wi}function qi(t,e,i,n){Vi.call(this,t,e),this.type=\"PointLight\",Object.defineProperty(this,\"power\",{get:function(){return 4*this.intensity*Math.PI},set:function(t){this.intensity=t/(4*Math.PI)}}),this.distance=void 0!==i?i:0,this.decay=void 0!==n?n:1,this.shadow=new ji(new me(90,1,.5,500))}function Yi(){ji.call(this,new ut(-5,5,5,-5,.5,500))}function Zi(t,e){Vi.call(this,t,e),this.type=\"DirectionalLight\",this.position.copy(ht.DefaultUp),this.updateMatrix(),this.target=new ht,this.shadow=new Yi}function Ji(t,e){Vi.call(this,t,e),this.type=\"AmbientLight\",this.castShadow=void 0}function Qi(t,e,i,n){Vi.call(this,t,e),this.type=\"RectAreaLight\",this.position.set(0,1,0),this.updateMatrix(),this.width=void 0!==i?i:10,this.height=void 0!==n?n:10}function Ki(t,e,i,n){hn.call(this,t,e,i,n)}function $i(t,e,i){hn.call(this,t,e,i)}function tn(t,e,i,n){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=void 0!==n?n:new e.constructor(i),this.sampleValues=e,this.valueSize=i}function en(t,e,i,n){tn.call(this,t,e,i,n)}function nn(t,e,i,n){hn.call(this,t,e,i,n)}function rn(t,e,i,n){hn.call(this,t,e,i,n)}function an(t,e,i,n){hn.call(this,t,e,i,n)}function on(t,e,i,n){tn.call(this,t,e,i,n),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0}function sn(t,e,i,n){tn.call(this,t,e,i,n)}function cn(t,e,i,n){tn.call(this,t,e,i,n)}function hn(t,e,i,n){if(void 0===t)throw new Error(\"THREE.KeyframeTrack: track name is undefined\");if(void 0===e||0===e.length)throw new Error(\"THREE.KeyframeTrack: no keyframes in track named \"+t);this.name=t,this.times=Gs.convertArray(e,this.TimeBufferType),this.values=Gs.convertArray(i,this.ValueBufferType),this.setInterpolation(n||this.DefaultInterpolation),this.validate(),this.optimize()}function ln(t,e,i,n){hn.call(this,t,e,i,n)}function un(t,e,i){this.name=t,this.tracks=i,this.duration=void 0!==e?e:-1,this.uuid=ms.generateUUID(),this.duration<0&&this.resetDuration(),this.optimize()}function pn(t){this.manager=void 0!==t?t:Bs,this.textures={}}function dn(t){this.manager=void 0!==t?t:Bs}function fn(){this.onLoadStart=function(){},this.onLoadProgress=function(){},this.onLoadComplete=function(){}}function mn(t){\"boolean\"==typeof t&&(console.warn(\"THREE.JSONLoader: showStatus parameter has been removed from constructor.\"),t=void 0),this.manager=void 0!==t?t:Bs,this.withCredentials=!1}function gn(t){this.manager=void 0!==t?t:Bs,this.texturePath=\"\"}function vn(t,e,i,n,r){var a=.5*(n-e),o=.5*(r-i),s=t*t;return(2*i-2*n+a+o)*(t*s)+(-3*i+3*n-2*a-o)*s+a*t+i}function yn(t,e){var i=1-t;return i*i*e}function xn(t,e){return 2*(1-t)*t*e}function bn(t,e){return t*t*e}function _n(t,e,i,n){return yn(t,e)+xn(t,i)+bn(t,n)}function wn(t,e){var i=1-t;return i*i*i*e}function Mn(t,e){var i=1-t;return 3*i*i*t*e}function En(t,e){return 3*(1-t)*t*t*e}function Tn(t,e){return t*t*t*e}function Sn(t,e,i,n,r){return wn(t,e)+Mn(t,i)+En(t,n)+Tn(t,r)}function An(){this.type=\"Curve\",this.arcLengthDivisions=200}function Rn(t,e){An.call(this),this.type=\"LineCurve\",this.v1=t||new i,this.v2=e||new i}function Ln(){An.call(this),this.type=\"CurvePath\",this.curves=[],this.autoClose=!1}function Pn(t,e,i,n,r,a,o,s){An.call(this),this.type=\"EllipseCurve\",this.aX=t||0,this.aY=e||0,this.xRadius=i||1,this.yRadius=n||1,this.aStartAngle=r||0,this.aEndAngle=a||2*Math.PI,this.aClockwise=o||!1,this.aRotation=s||0}function Cn(t){An.call(this),this.type=\"SplineCurve\",this.points=t||[]}function In(t,e,n,r){An.call(this),this.type=\"CubicBezierCurve\",this.v0=t||new i,this.v1=e||new i,this.v2=n||new i,this.v3=r||new i}function Un(t,e,n){An.call(this),this.type=\"QuadraticBezierCurve\",this.v0=t||new i,this.v1=e||new i,this.v2=n||new i}function Dn(t){Ln.call(this),this.type=\"Path\",this.currentPoint=new i,t&&this.setFromPoints(t)}function On(t){Dn.call(this,t),this.type=\"Shape\",this.holes=[]}function Nn(){this.type=\"ShapePath\",this.subPaths=[],this.currentPath=null}function Fn(t){this.type=\"Font\",this.data=t}function Bn(t){this.manager=void 0!==t?t:Bs}function zn(t){this.manager=void 0!==t?t:Bs}function Gn(){this.type=\"StereoCamera\",this.aspect=1,this.eyeSep=.064,this.cameraL=new me,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new me,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1}function Hn(t,e,i){ht.call(this),this.type=\"CubeCamera\";var n=new me(90,1,t,e);n.up.set(0,-1,0),n.lookAt(new a(1,0,0)),this.add(n);var r=new me(90,1,t,e);r.up.set(0,-1,0),r.lookAt(new a(-1,0,0)),this.add(r);var o=new me(90,1,t,e);o.up.set(0,0,1),o.lookAt(new a(0,1,0)),this.add(o);var s=new me(90,1,t,e);s.up.set(0,0,-1),s.lookAt(new a(0,-1,0)),this.add(s);var c=new me(90,1,t,e);c.up.set(0,-1,0),c.lookAt(new a(0,0,1)),this.add(c);var h=new me(90,1,t,e);h.up.set(0,-1,0),h.lookAt(new a(0,0,-1)),this.add(h);var u={format:zo,magFilter:Mo,minFilter:Mo};this.renderTarget=new l(i,i,u),this.renderTarget.texture.name=\"CubeCamera\",this.update=function(t,e){null===this.parent&&this.updateMatrixWorld();var i=this.renderTarget,a=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,i.activeCubeFace=0,t.render(e,n,i),i.activeCubeFace=1,t.render(e,r,i),i.activeCubeFace=2,t.render(e,o,i),i.activeCubeFace=3,t.render(e,s,i),i.activeCubeFace=4,t.render(e,c,i),i.texture.generateMipmaps=a,i.activeCubeFace=5,t.render(e,h,i),t.setRenderTarget(null)},this.clear=function(t,e,i,n){for(var r=this.renderTarget,a=0;a<6;a++)r.activeCubeFace=a,t.setRenderTarget(r),t.clear(e,i,n);t.setRenderTarget(null)}}function Vn(){ht.call(this),this.type=\"AudioListener\",this.context=Xs.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null}function kn(t){ht.call(this),this.type=\"Audio\",this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.loop=!1,this.startTime=0,this.offset=0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.sourceType=\"empty\",this.filters=[]}function jn(t){kn.call(this,t),this.panner=this.context.createPanner(),this.panner.connect(this.gain)}function Wn(t,e){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=void 0!==e?e:2048,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}function Xn(t,e,i){this.binding=t,this.valueSize=i;var n,r=Float64Array;switch(e){case\"quaternion\":n=this._slerp;break;case\"string\":case\"bool\":r=Array,n=this._select;break;default:n=this._lerp}this.buffer=new r(4*i),this._mixBufferRegion=n,this.cumulativeWeight=0,this.useCount=0,this.referenceCount=0}function qn(t,e,i){var n=i||Yn.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,n)}function Yn(t,e,i){this.path=e,this.parsedPath=i||Yn.parseTrackName(e),this.node=Yn.findNode(t,this.parsedPath.nodeName)||t,this.rootNode=t}function Zn(){this.uuid=ms.generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;var t={};this._indicesByUUID=t;for(var e=0,i=arguments.length;e!==i;++e)t[arguments[e].uuid]=e;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};var n=this;this.stats={objects:{get total(){return n._objects.length},get inUse(){return this.total-n.nCachedObjects_}},get bindingsPerObject(){return n._bindings.length}}}function Jn(t,e,i){this._mixer=t,this._clip=e,this._localRoot=i||null;for(var n=e.tracks,r=n.length,a=new Array(r),o={endingStart:is,endingEnd:is},s=0;s!==r;++s){var c=n[s].createInterpolant(null);a[s]=c,c.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(r),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=es,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}function Qn(t){this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}function Kn(t){\"string\"==typeof t&&(console.warn(\"THREE.Uniform: Type parameter is no longer needed.\"),t=arguments[1]),this.value=t}function $n(){St.call(this),this.type=\"InstancedBufferGeometry\",this.maxInstancedCount=void 0}function tr(t,e,i,n){this.uuid=ms.generateUUID(),this.data=t,this.itemSize=e,this.offset=i,this.normalized=!0===n}function er(t,e){this.uuid=ms.generateUUID(),this.array=t,this.stride=e,this.count=void 0!==t?t.length/e:0,this.dynamic=!1,this.updateRange={offset:0,count:-1},this.onUploadCallback=function(){},this.version=0}function ir(t,e,i){er.call(this,t,e),this.meshPerAttribute=i||1}function nr(t,e,i){ft.call(this,t,e),this.meshPerAttribute=i||1}function rr(t,e,i,n){this.ray=new Ut(t,e),this.near=i||0,this.far=n||1/0,this.params={Mesh:{},Line:{},LOD:{},Points:{threshold:1},Sprite:{}},Object.defineProperties(this.params,{PointCloud:{get:function(){return console.warn(\"THREE.Raycaster: params.PointCloud has been renamed to params.Points.\"),this.Points}}})}function ar(t,e){return t.distance-e.distance}function or(t,e,i,n){if(!1!==t.visible&&(t.raycast(e,i),!0===n))for(var r=t.children,a=0,o=r.length;a0?1:+t}),\"name\"in Function.prototype==!1&&Object.defineProperty(Function.prototype,\"name\",{get:function(){return this.toString().match(/^\\s*function\\s*([^\\(\\s]*)/)[1]}}),void 0===Object.assign&&function(){Object.assign=function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i>8&255]+t[e>>16&255]+t[e>>24&255]+\"-\"+t[255&i]+t[i>>8&255]+\"-\"+t[i>>16&15|64]+t[i>>24&255]+\"-\"+t[63&n|128]+t[n>>8&255]+\"-\"+t[n>>16&255]+t[n>>24&255]+t[255&r]+t[r>>8&255]+t[r>>16&255]+t[r>>24&255]}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,r){return n+(t-e)*(r-n)/(i-e)},lerp:function(t,e,i){return(1-i)*t+i*e},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*(3-2*t)},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e))*t*t*(t*(6*t-15)+10)},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*ms.DEG2RAD},radToDeg:function(t){return t*ms.RAD2DEG},isPowerOfTwo:function(t){return 0==(t&t-1)&&0!==t},ceilPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},floorPowerOfTwo:function(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}};Object.defineProperties(i.prototype,{width:{get:function(){return this.x},set:function(t){this.x=t}},height:{get:function(){return this.y},set:function(t){this.y=t}}}),Object.assign(i.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,i=this.y,n=t.elements;return this.x=n[0]*e+n[3]*i+n[6],this.y=n[1]*e+n[4]*i+n[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t=new i,e=new i;return function(i,n){return t.set(i,i),e.set(n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){\nreturn this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn(\"THREE.Vector2: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=this.x-t.x,a=this.y-t.y;return this.x=r*i-a*n+t.x,this.y=r*n+a*i+t.y,this}}),Object.assign(n.prototype,{isMatrix4:!0,set:function(t,e,i,n,r,a,o,s,c,h,l,u,p,d,f,m){var g=this.elements;return g[0]=t,g[4]=e,g[8]=i,g[12]=n,g[1]=r,g[5]=a,g[9]=o,g[13]=s,g[2]=c,g[6]=h,g[10]=l,g[14]=u,g[3]=p,g[7]=d,g[11]=f,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new n).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t=new a;return function(e){var i=this.elements,n=e.elements,r=1/t.setFromMatrixColumn(e,0).length(),a=1/t.setFromMatrixColumn(e,1).length(),o=1/t.setFromMatrixColumn(e,2).length();return i[0]=n[0]*r,i[1]=n[1]*r,i[2]=n[2]*r,i[4]=n[4]*a,i[5]=n[5]*a,i[6]=n[6]*a,i[8]=n[8]*o,i[9]=n[9]*o,i[10]=n[10]*o,this}}(),makeRotationFromEuler:function(t){t&&t.isEuler||console.error(\"THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var e=this.elements,i=t.x,n=t.y,r=t.z,a=Math.cos(i),o=Math.sin(i),s=Math.cos(n),c=Math.sin(n),h=Math.cos(r),l=Math.sin(r);if(\"XYZ\"===t.order){var u=a*h,p=a*l,d=o*h,f=o*l;e[0]=s*h,e[4]=-s*l,e[8]=c,e[1]=p+d*c,e[5]=u-f*c,e[9]=-o*s,e[2]=f-u*c,e[6]=d+p*c,e[10]=a*s}else if(\"YXZ\"===t.order){var m=s*h,g=s*l,v=c*h,y=c*l;e[0]=m+y*o,e[4]=v*o-g,e[8]=a*c,e[1]=a*l,e[5]=a*h,e[9]=-o,e[2]=g*o-v,e[6]=y+m*o,e[10]=a*s}else if(\"ZXY\"===t.order){var m=s*h,g=s*l,v=c*h,y=c*l;e[0]=m-y*o,e[4]=-a*l,e[8]=v+g*o,e[1]=g+v*o,e[5]=a*h,e[9]=y-m*o,e[2]=-a*c,e[6]=o,e[10]=a*s}else if(\"ZYX\"===t.order){var u=a*h,p=a*l,d=o*h,f=o*l;e[0]=s*h,e[4]=d*c-p,e[8]=u*c+f,e[1]=s*l,e[5]=f*c+u,e[9]=p*c-d,e[2]=-c,e[6]=o*s,e[10]=a*s}else if(\"YZX\"===t.order){var x=a*s,b=a*c,_=o*s,w=o*c;e[0]=s*h,e[4]=w-x*l,e[8]=_*l+b,e[1]=l,e[5]=a*h,e[9]=-o*h,e[2]=-c*h,e[6]=b*l+_,e[10]=x-w*l}else if(\"XZY\"===t.order){var x=a*s,b=a*c,_=o*s,w=o*c;e[0]=s*h,e[4]=-l,e[8]=c*h,e[1]=x*l+w,e[5]=a*h,e[9]=b*l-_,e[2]=_*l-b,e[6]=o*h,e[10]=w*l+x}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){var e=this.elements,i=t._x,n=t._y,r=t._z,a=t._w,o=i+i,s=n+n,c=r+r,h=i*o,l=i*s,u=i*c,p=n*s,d=n*c,f=r*c,m=a*o,g=a*s,v=a*c;return e[0]=1-(p+f),e[4]=l-v,e[8]=u+g,e[1]=l+v,e[5]=1-(h+f),e[9]=d-m,e[2]=u-g,e[6]=d+m,e[10]=1-(h+p),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},lookAt:function(){var t=new a,e=new a,i=new a;return function(n,r,a){var o=this.elements;return i.subVectors(n,r),0===i.lengthSq()&&(i.z=1),i.normalize(),t.crossVectors(a,i),0===t.lengthSq()&&(1===Math.abs(a.z)?i.x+=1e-4:i.z+=1e-4,i.normalize(),t.crossVectors(a,i)),t.normalize(),e.crossVectors(i,t),o[0]=t.x,o[4]=e.x,o[8]=i.x,o[1]=t.y,o[5]=e.y,o[9]=i.y,o[2]=t.z,o[6]=e.z,o[10]=i.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,a=i[0],o=i[4],s=i[8],c=i[12],h=i[1],l=i[5],u=i[9],p=i[13],d=i[2],f=i[6],m=i[10],g=i[14],v=i[3],y=i[7],x=i[11],b=i[15],_=n[0],w=n[4],M=n[8],E=n[12],T=n[1],S=n[5],A=n[9],R=n[13],L=n[2],P=n[6],C=n[10],I=n[14],U=n[3],D=n[7],O=n[11],N=n[15];return r[0]=a*_+o*T+s*L+c*U,r[4]=a*w+o*S+s*P+c*D,r[8]=a*M+o*A+s*C+c*O,r[12]=a*E+o*R+s*I+c*N,r[1]=h*_+l*T+u*L+p*U,r[5]=h*w+l*S+u*P+p*D,r[9]=h*M+l*A+u*C+p*O,r[13]=h*E+l*R+u*I+p*N,r[2]=d*_+f*T+m*L+g*U,r[6]=d*w+f*S+m*P+g*D,r[10]=d*M+f*A+m*C+g*O,r[14]=d*E+f*R+m*I+g*N,r[3]=v*_+y*T+x*L+b*U,r[7]=v*w+y*S+x*P+b*D,r[11]=v*M+y*A+x*C+b*O,r[15]=v*E+y*R+x*I+b*N,this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToBufferAttribute:function(){var t=new a;return function(e){for(var i=0,n=e.count;i=0?1:-1,y=1-g*g;if(y>Number.EPSILON){var x=Math.sqrt(y),b=Math.atan2(x,g*v);m=Math.sin(m*b)/x,o=Math.sin(o*b)/x}var _=o*v;if(s=s*m+u*_,c=c*m+p*_,h=h*m+d*_,l=l*m+f*_,m===1-o){var w=1/Math.sqrt(s*s+c*c+h*h+l*l);s*=w,c*=w,h*=w,l*=w}}t[e]=s,t[e+1]=c,t[e+2]=h,t[e+3]=l}}),Object.defineProperties(r.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},w:{get:function(){return this._w},set:function(t){this._w=t,this.onChangeCallback()}}}),Object.assign(r.prototype,{set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._w=n,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._w)},copy:function(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this.onChangeCallback(),this},setFromEuler:function(t,e){if(!t||!t.isEuler)throw new Error(\"THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.\");var i=t._x,n=t._y,r=t._z,a=t.order,o=Math.cos,s=Math.sin,c=o(i/2),h=o(n/2),l=o(r/2),u=s(i/2),p=s(n/2),d=s(r/2);return\"XYZ\"===a?(this._x=u*h*l+c*p*d,this._y=c*p*l-u*h*d,this._z=c*h*d+u*p*l,this._w=c*h*l-u*p*d):\"YXZ\"===a?(this._x=u*h*l+c*p*d,this._y=c*p*l-u*h*d,this._z=c*h*d-u*p*l,this._w=c*h*l+u*p*d):\"ZXY\"===a?(this._x=u*h*l-c*p*d,this._y=c*p*l+u*h*d,this._z=c*h*d+u*p*l,this._w=c*h*l-u*p*d):\"ZYX\"===a?(this._x=u*h*l-c*p*d,this._y=c*p*l+u*h*d,this._z=c*h*d-u*p*l,this._w=c*h*l+u*p*d):\"YZX\"===a?(this._x=u*h*l+c*p*d,this._y=c*p*l+u*h*d,this._z=c*h*d-u*p*l,this._w=c*h*l-u*p*d):\"XZY\"===a&&(this._x=u*h*l-c*p*d,this._y=c*p*l-u*h*d,this._z=c*h*d+u*p*l,this._w=c*h*l+u*p*d),!1!==e&&this.onChangeCallback(),this},setFromAxisAngle:function(t,e){var i=e/2,n=Math.sin(i);return this._x=t.x*n,this._y=t.y*n,this._z=t.z*n,this._w=Math.cos(i),this.onChangeCallback(),this},setFromRotationMatrix:function(t){var e,i=t.elements,n=i[0],r=i[4],a=i[8],o=i[1],s=i[5],c=i[9],h=i[2],l=i[6],u=i[10],p=n+s+u;return p>0?(e=.5/Math.sqrt(p+1),this._w=.25/e,this._x=(l-c)*e,this._y=(a-h)*e,this._z=(o-r)*e):n>s&&n>u?(e=2*Math.sqrt(1+n-s-u),this._w=(l-c)/e,this._x=.25*e,this._y=(r+o)/e,this._z=(a+h)/e):s>u?(e=2*Math.sqrt(1+s-n-u),this._w=(a-h)/e,this._x=(r+o)/e,this._y=.25*e,this._z=(c+l)/e):(e=2*Math.sqrt(1+u-n-s),this._w=(o-r)/e,this._x=(a+h)/e,this._y=(c+l)/e,this._z=.25*e),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e=new a;return function(i,n){return void 0===e&&(e=new a),t=i.dot(n)+1,t<1e-6?(t=0,Math.abs(i.x)>Math.abs(i.z)?e.set(-i.y,i.x,0):e.set(0,-i.z,i.y)):e.crossVectors(i,n),this._x=e.x,this._y=e.y,this._z=e.z,this._w=t,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,r=t._z,a=t._w,o=e._x,s=e._y,c=e._z,h=e._w;return this._x=i*h+a*o+n*c-r*s,this._y=n*h+a*s+r*o-i*c,this._z=r*h+a*c+i*s-n*o,this._w=a*h-i*o-n*s-r*c,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var i=this._x,n=this._y,r=this._z,a=this._w,o=a*t._w+i*t._x+n*t._y+r*t._z;if(o<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,o=-o):this.copy(t),o>=1)return this._w=a,this._x=i,this._y=n,this._z=r,this;var s=Math.sqrt(1-o*o);if(Math.abs(s)<.001)return this._w=.5*(a+this._w),this._x=.5*(i+this._x),this._y=.5*(n+this._y),this._z=.5*(r+this._z),this;var c=Math.atan2(s,o),h=Math.sin((1-e)*c)/s,l=Math.sin(e*c)/s;return this._w=a*h+this._w*l,this._x=i*h+this._x*l,this._y=n*h+this._y*l,this._z=r*h+this._z*l,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(a.prototype,{isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t=new r;return function(e){return e&&e.isEuler||console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t=new r;return function(e,i){return this.applyQuaternion(t.setFromAxisAngle(e,i))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6]*n,this.y=r[1]*e+r[4]*i+r[7]*n,this.z=r[2]*e+r[5]*i+r[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements,a=1/(r[3]*e+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*e+r[4]*i+r[8]*n+r[12])*a,this.y=(r[1]*e+r[5]*i+r[9]*n+r[13])*a,this.z=(r[2]*e+r[6]*i+r[10]*n+r[14])*a,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,a=t.y,o=t.z,s=t.w,c=s*e+a*n-o*i,h=s*i+o*e-r*n,l=s*n+r*i-a*e,u=-r*e-a*i-o*n;return this.x=c*s+u*-r+h*-o-l*-a,this.y=h*s+u*-a+l*-r-c*-o,this.z=l*s+u*-o+c*-a-h*-r,this},project:function(){var t=new n;return function(e){return t.multiplyMatrices(e.projectionMatrix,t.getInverse(e.matrixWorld)),this.applyMatrix4(t)}}(),unproject:function(){var t=new n;return function(e){return t.multiplyMatrices(e.matrixWorld,t.getInverse(e.projectionMatrix)),this.applyMatrix4(t)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n,this.y=r[1]*e+r[5]*i+r[9]*n,this.z=r[2]*e+r[6]*i+r[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t=new a,e=new a;return function(i,n){return t.set(i,i,i),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e)):this.crossVectors(this,t)},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,a=e.x,o=e.y,s=e.z;return this.x=n*s-r*o,this.y=r*a-i*s,this.z=i*o-n*a,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t=new a;return function(e){return t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t=new a;return function(e){return this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(ms.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return e*e+i*i+n*n},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){var e=Math.sin(t.phi)*t.radius;return this.x=e*Math.sin(t.theta),this.y=Math.cos(t.phi)*t.radius,this.z=e*Math.cos(t.theta),this},setFromCylindrical:function(t){return this.x=t.radius*Math.sin(t.theta),this.y=t.y,this.z=t.radius*Math.cos(t.theta),this},setFromMatrixPosition:function(t){var e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=n,this},setFromMatrixColumn:function(t,e){return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn(\"THREE.Vector3: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}}),Object.assign(o.prototype,{isMatrix3:!0,set:function(t,e,i,n,r,a,o,s,c){var h=this.elements;return h[0]=t,h[1]=n,h[2]=o,h[3]=e,h[4]=r,h[5]=s,h[6]=i,h[7]=a,h[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToBufferAttribute:function(){var t=new a;return function(e){for(var i=0,n=e.count;i2048||e.height>2048?e.toDataURL(\"image/jpeg\",.6):e.toDataURL(\"image/png\")}(n)}),i.image=n.uuid}return e||(t.textures[this.uuid]=i),i},dispose:function(){this.dispatchEvent({type:\"dispose\"})},transformUv:function(t){if(300===this.mapping){if(t.applyMatrix3(this.matrix),t.x<0||t.x>1)switch(this.wrapS){case vo:t.x=t.x-Math.floor(t.x);break;case yo:t.x=t.x<0?0:1;break;case xo:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case vo:t.y=t.y-Math.floor(t.y);break;case yo:t.y=t.y<0?0:1;break;case xo:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}this.flipY&&(t.y=1-t.y)}}}),Object.assign(c.prototype,{isVector4:!0,set:function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this.w=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(\"index is out of range: \"+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=this.w,a=t.elements;return this.x=a[0]*e+a[4]*i+a[8]*n+a[12]*r,this.y=a[1]*e+a[5]*i+a[9]*n+a[13]*r,this.z=a[2]*e+a[6]*i+a[10]*n+a[14]*r,this.w=a[3]*e+a[7]*i+a[11]*n+a[15]*r,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,i,n,r,a=t.elements,o=a[0],s=a[4],c=a[8],h=a[1],l=a[5],u=a[9],p=a[2],d=a[6],f=a[10];if(Math.abs(s-h)<.01&&Math.abs(c-p)<.01&&Math.abs(u-d)<.01){\nif(Math.abs(s+h)<.1&&Math.abs(c+p)<.1&&Math.abs(u+d)<.1&&Math.abs(o+l+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;var m=(o+1)/2,g=(l+1)/2,v=(f+1)/2,y=(s+h)/4,x=(c+p)/4,b=(u+d)/4;return m>g&&m>v?m<.01?(i=0,n=.707106781,r=.707106781):(i=Math.sqrt(m),n=y/i,r=x/i):g>v?g<.01?(i=.707106781,n=0,r=.707106781):(n=Math.sqrt(g),i=y/n,r=b/n):v<.01?(i=.707106781,n=.707106781,r=0):(r=Math.sqrt(v),i=x/r,n=b/r),this.set(i,n,r,e),this}var _=Math.sqrt((d-u)*(d-u)+(c-p)*(c-p)+(h-s)*(h-s));return Math.abs(_)<.001&&(_=1),this.x=(d-u)/_,this.y=(c-p)/_,this.z=(h-s)/_,this.w=Math.acos((o+l+f-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(i,n){return void 0===t&&(t=new c,e=new c),t.set(i,i,i,i),e.set(n,n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z&&t.w===this.w},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn(\"THREE.Vector4: offset has been removed from .fromBufferAttribute().\"),this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}}),Object.assign(h.prototype,e.prototype,{isWebGLRenderTarget:!0,setSize:function(t,e){this.width===t&&this.height===e||(this.width=t,this.height=e,this.dispose()),this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.width=t.width,this.height=t.height,this.viewport.copy(t.viewport),this.texture=t.texture.clone(),this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.depthTexture=t.depthTexture,this},dispose:function(){this.dispatchEvent({type:\"dispose\"})}}),l.prototype=Object.create(h.prototype),l.prototype.constructor=l,l.prototype.isWebGLRenderTargetCube=!0,u.prototype=Object.create(s.prototype),u.prototype.constructor=u,u.prototype.isDataTexture=!0,p.prototype=Object.create(s.prototype),p.prototype.constructor=p,p.prototype.isCubeTexture=!0,Object.defineProperty(p.prototype,\"images\",{get:function(){return this.image},set:function(t){this.image=t}});var vs=new s,ys=new p,xs=[],bs=[],_s=new Float32Array(16),ws=new Float32Array(9);k.prototype.setValue=function(t,e){for(var i=this.seq,n=0,r=i.length;n!==r;++n){var a=i[n];a.setValue(t,e[a.id])}};var Ms=/([\\w\\d_]+)(\\])?(\\[|\\.)?/g;X.prototype.setValue=function(t,e,i){var n=this.map[e];void 0!==n&&n.setValue(t,i,this.renderer)},X.prototype.setOptional=function(t,e,i){var n=e[i];void 0!==n&&this.setValue(t,i,n)},X.upload=function(t,e,i,n){for(var r=0,a=e.length;r!==a;++r){var o=e[r],s=i[o.id];!1!==s.needsUpdate&&o.setValue(t,s.value,n)}},X.seqWithValue=function(t,e){for(var i=[],n=0,r=t.length;n!==r;++n){var a=t[n];a.id in e&&i.push(a)}return i};var Es={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Object.assign(q.prototype,{isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this},setScalar:function(t){return this.r=t,this.g=t,this.b=t,this},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(){function t(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+6*(e-t)*(2/3-i):t}return function(e,i,n){if(e=ms.euclideanModulo(e,1),i=ms.clamp(i,0,1),n=ms.clamp(n,0,1),0===i)this.r=this.g=this.b=n;else{var r=n<=.5?n*(1+i):n+i-n*i,a=2*n-r;this.r=t(a,r,e+1/3),this.g=t(a,r,e),this.b=t(a,r,e-1/3)}return this}}(),setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}var i;if(i=/^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(t)){var n,r=i[1],a=i[2];switch(r){case\"rgb\":case\"rgba\":if(n=/^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case\"hsl\":case\"hsla\":if(n=/^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(a)){var o=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,c=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(o,s,c)}}}else if(i=/^\\#([A-Fa-f0-9]+)$/.exec(t)){var h=i[1],l=h.length;if(3===l)return this.r=parseInt(h.charAt(0)+h.charAt(0),16)/255,this.g=parseInt(h.charAt(1)+h.charAt(1),16)/255,this.b=parseInt(h.charAt(2)+h.charAt(2),16)/255,this;if(6===l)return this.r=parseInt(h.charAt(0)+h.charAt(1),16)/255,this.g=parseInt(h.charAt(2)+h.charAt(3),16)/255,this.b=parseInt(h.charAt(4)+h.charAt(5),16)/255,this}if(t&&t.length>0){var h=Es[t];void 0!==h?this.setHex(h):console.warn(\"THREE.Color: Unknown color \"+t)}return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var i=e>0?1/e:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(){var t=this.r,e=this.g,i=this.b;return this.r=t*t,this.g=e*e,this.b=i*i,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return(\"000000\"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){var e,i,n=t||{h:0,s:0,l:0},r=this.r,a=this.g,o=this.b,s=Math.max(r,a,o),c=Math.min(r,a,o),h=(c+s)/2;if(c===s)e=0,i=0;else{var l=s-c;switch(i=h<=.5?l/(s+c):l/(2-s-c),s){case r:e=(a-o)/l+(a 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\treturn distanceFalloff * maxDistanceCutoffFactor;\\n#else\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n#endif\\n\\t}\\n\\treturn 1.0;\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_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}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * 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 theta = acos( dot( N, V ) );\\n\\tvec2 uv = vec2(\\n\\t\\tsqrt( saturate( roughness ) ),\\n\\t\\tsaturate( theta / ( 0.5 * PI ) ) );\\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.86267 + (0.49788 + 0.01436 * y ) * y;\\n\\tfloat b = 3.45068 + (4.18814 + y) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = (x > 0.0) ? v : 0.5 * inversesqrt( 1.0 - x * x ) - 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\\tvec3 result = vec3( LTC_ClippedSphereFormFactor( vectorFormFactor ) );\\n\\treturn result;\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.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 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\\n\\treturn specularColor * AB.x + AB.y;\\n}\\nfloat 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_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n\",bumpmap_pars_fragment:\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\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 );\\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\",clipping_planes_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t\\t\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vViewPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\tif ( clipped ) discard;\\n\\t\\n\\t#endif\\n#endif\\n\",clipping_planes_pars_fragment:\"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\",clipping_planes_pars_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\",clipping_planes_vertex:\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\",color_fragment:\"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",color_pars_fragment:\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\\n\",color_pars_vertex:\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\",color_vertex:\"#ifdef USE_COLOR\\n\\tvColor.xyz = color.xyz;\\n#endif\",common:\"#define PI 3.14159265359\\n#define PI2 6.28318530718\\n#define PI_HALF 1.5707963267949\\n#define RECIPROCAL_PI 0.31830988618\\n#define RECIPROCAL_PI2 0.15915494\\n#define LOG2 1.442695\\n#define EPSILON 1e-6\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float 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 average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\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}\\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};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n};\\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}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\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 linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\n\",cube_uv_reflection_fragment:\"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\treturn face;\\n}\\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\\n\\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 0.5 * log2(d);\\n\\treturn vec2(floor(mipLevel), fract(mipLevel));\\n}\\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\\n\\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = offset + vec2( texelOffset );\\n\\treturn base + s * ( scale - 2.0 * texelOffset );\\n}\\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\",defaultnormal_vertex:\"vec3 transformedNormal = normalMatrix * objectNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n\",displacementmap_pars_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\\n\",displacementmap_vertex:\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\",emissivemap_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\",emissivemap_pars_fragment:\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\",encodings_fragment:\" gl_FragColor = linearToOutputTexel( gl_FragColor );\\n\",\nencodings_pars_fragment:\"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\\n}\\nvec4 LinearTosRGB( 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.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.x, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = min( floor( D ) / 255.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n\\tXp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract(Le);\\n\\tvResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\\n\\treturn vec4( max(vRGB, 0.0), 1.0 );\\n}\\n\",envmap_fragment:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, 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#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\treflectVec = normalize( reflectVec );\\n\\t\\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\treflectVec = normalize( reflectVec );\\n\\t\\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\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\",envmap_pars_fragment:\"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\\n\\tuniform float reflectivity;\\n\\tuniform float envMapIntensity;\\n#endif\\n#ifdef USE_ENVMAP\\n\\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\tuniform float flipEnvMap;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\\n\",envmap_pars_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\\n\",envmap_vertex:\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\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\",fog_vertex:\"\\n#ifdef USE_FOG\\nfogDepth = -mvPosition.z;\\n#endif\",fog_pars_vertex:\"#ifdef USE_FOG\\n varying float fogDepth;\\n#endif\\n\",fog_fragment:\"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * fogDepth * fogDepth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\\n\",fog_pars_fragment:\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\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\",gradientmap_pars_fragment:\"#ifdef TOON\\n\\tuniform sampler2D gradientMap;\\n\\tvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\t\\tfloat dotNL = dot( normal, lightDirection );\\n\\t\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t\\t#ifdef USE_GRADIENTMAP\\n\\t\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",lightmap_fragment:\"#ifdef USE_LIGHTMAP\\n\\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n#endif\\n\",lightmap_pars_fragment:\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",lights_lambert_vertex:\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",lights_pars:\"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.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\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t\\tfloat shadowCameraNear;\\n\\t\\tfloat shadowCameraFar;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.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\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.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 ltcMat;\\tuniform sampler2D ltcMag;\\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 GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = asin( clamp( reflectVec.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\t\\t\\tsampleUV.x = atan( reflectVec.z, reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\",lights_phong_fragment:\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n\",lights_phong_pars_fragment:\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tvec3\\tspecularColor;\\n\\tfloat\\tspecularShininess;\\n\\tfloat\\tspecularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifdef TOON\\n\\t\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#else\\n\\t\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\t\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#endif\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\\n\",lights_physical_fragment:\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\\n#endif\\n\",lights_physical_pars_fragment:\"struct PhysicalMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tfloat\\tspecularRoughness;\\n\\tvec3\\tspecularColor;\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoat;\\n\\t\\tfloat clearCoatRoughness;\\n\\t#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\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.specularRoughness;\\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\\tfloat norm = texture2D( ltcMag, uv ).a;\\n\\t\\tvec4 t = texture2D( ltcMat, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( 1, 0, t.y ),\\n\\t\\t\\tvec3( 0, t.z, 0 ),\\n\\t\\t\\tvec3( t.w, 0, t.x )\\n\\t\\t);\\n\\t\\treflectedLight.directSpecular += lightColor * material.specularColor * norm * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifndef STANDARD\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\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\\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\\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\",lights_template:\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\",logdepthbuf_fragment:\"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\",logdepthbuf_pars_fragment:\"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\",logdepthbuf_pars_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\",logdepthbuf_vertex:\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\tgl_Position.z *= gl_Position.w;\\n\\t#endif\\n#endif\\n\",map_fragment:\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\",map_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\",map_particle_fragment:\"#ifdef USE_MAP\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\",map_particle_pars_fragment:\"#ifdef USE_MAP\\n\\tuniform mat3 uvTransform;\\n\\tuniform sampler2D map;\\n#endif\\n\",metalnessmap_fragment:\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\\n\",metalnessmap_pars_fragment:\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",morphnormal_vertex:\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\\n#endif\\n\",morphtarget_pars_vertex:\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_MORPHNORMALS\\n\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",morphtarget_vertex:\"#ifdef USE_MORPHTARGETS\\n\\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\",normal_fragment:\"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\",normalmap_pars_fragment:\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\\n\",\npacking:\"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}\\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 linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( 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 invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n\",premultiplied_alpha_fragment:\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\\n\",project_vertex:\"vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\ngl_Position = projectionMatrix * mvPosition;\\n\",dithering_fragment:\"#if defined( DITHERING )\\n gl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\\n\",dithering_pars_fragment:\"#if defined( 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\",roughnessmap_fragment:\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\\n\",roughnessmap_pars_fragment:\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",shadowmap_pars_fragment:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\\n\\t\\tconst vec2 offset = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = mix( a, b, f.x );\\n\\t\\treturn c;\\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\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\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\\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( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, 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( 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 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\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\\tshadow = (\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\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 )\\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\",shadowmap_pars_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n#endif\\n\",shadowmap_vertex:\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\",shadowmask_pars_fragment:\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\",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\",skinning_pars_vertex:\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\",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\",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#endif\\n\",specularmap_fragment:\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",specularmap_pars_fragment:\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",tonemapping_fragment:\"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\",tonemapping_pars_fragment:\"#ifndef saturate\\n\\t#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\\nvec3 Uncharted2ToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\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}\\n\",uv_pars_fragment:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n#endif\",uv_pars_vertex:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\n\",uv_vertex:\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\",uv2_pars_fragment:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_pars_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n#endif\",uv2_vertex:\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = uv2;\\n#endif\",worldpos_vertex:\"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\\n\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n#endif\\n\",cube_frag:\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\",cube_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\\n\",depth_frag:\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\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#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#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\",depth_vert:\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\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}\\n\",distanceRGBA_frag:\"#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 \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\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\",distanceRGBA_vert:\"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\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\",equirect_frag:\"uniform sampler2D tEquirect;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = asin( clamp( direction.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\",equirect_vert:\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",linedashed_frag:\"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 \\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\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",linedashed_vert:\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_frag:\"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 \\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\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\treflectedLight.indirectDiffuse += texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\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\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshbasic_vert:\"#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#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\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\",meshlambert_frag:\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\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 \\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\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshlambert_vert:\"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\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 \\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\\t#include \\n\\t#include \\n}\\n\",meshphong_frag:\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\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 \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphong_vert:\"#define PHONG\\nvarying vec3 vViewPosition;\\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 \\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#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\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\",\nmeshphysical_frag:\"#define PHYSICAL\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifndef STANDARD\\n\\tuniform float clearCoat;\\n\\tuniform float clearCoatRoughness;\\n#endif\\nvarying vec3 vViewPosition;\\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 \\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 \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",meshphysical_vert:\"#define PHYSICAL\\nvarying vec3 vViewPosition;\\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 \\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#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\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}\\n\",normal_frag:\"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\\n}\\n\",normal_vert:\"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\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#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\\n\",points_frag:\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",points_vert:\"uniform float size;\\nuniform float scale;\\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_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",shadow_frag:\"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n}\\n\",shadow_vert:\"#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\"},Rs={basic:{uniforms:Ss.merge([Ts.common,Ts.specularmap,Ts.envmap,Ts.aomap,Ts.lightmap,Ts.fog]),vertexShader:As.meshbasic_vert,fragmentShader:As.meshbasic_frag},lambert:{uniforms:Ss.merge([Ts.common,Ts.specularmap,Ts.envmap,Ts.aomap,Ts.lightmap,Ts.emissivemap,Ts.fog,Ts.lights,{emissive:{value:new q(0)}}]),vertexShader:As.meshlambert_vert,fragmentShader:As.meshlambert_frag},phong:{uniforms:Ss.merge([Ts.common,Ts.specularmap,Ts.envmap,Ts.aomap,Ts.lightmap,Ts.emissivemap,Ts.bumpmap,Ts.normalmap,Ts.displacementmap,Ts.gradientmap,Ts.fog,Ts.lights,{emissive:{value:new q(0)},specular:{value:new q(1118481)},shininess:{value:30}}]),vertexShader:As.meshphong_vert,fragmentShader:As.meshphong_frag},standard:{uniforms:Ss.merge([Ts.common,Ts.envmap,Ts.aomap,Ts.lightmap,Ts.emissivemap,Ts.bumpmap,Ts.normalmap,Ts.displacementmap,Ts.roughnessmap,Ts.metalnessmap,Ts.fog,Ts.lights,{emissive:{value:new q(0)},roughness:{value:.5},metalness:{value:.5},envMapIntensity:{value:1}}]),vertexShader:As.meshphysical_vert,fragmentShader:As.meshphysical_frag},points:{uniforms:Ss.merge([Ts.points,Ts.fog]),vertexShader:As.points_vert,fragmentShader:As.points_frag},dashed:{uniforms:Ss.merge([Ts.common,Ts.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:As.linedashed_vert,fragmentShader:As.linedashed_frag},depth:{uniforms:Ss.merge([Ts.common,Ts.displacementmap]),vertexShader:As.depth_vert,fragmentShader:As.depth_frag},normal:{uniforms:Ss.merge([Ts.common,Ts.bumpmap,Ts.normalmap,Ts.displacementmap,{opacity:{value:1}}]),vertexShader:As.normal_vert,fragmentShader:As.normal_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:As.cube_vert,fragmentShader:As.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:As.equirect_vert,fragmentShader:As.equirect_frag},distanceRGBA:{uniforms:Ss.merge([Ts.common,Ts.displacementmap,{referencePosition:{value:new a},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:As.distanceRGBA_vert,fragmentShader:As.distanceRGBA_frag},shadow:{uniforms:Ss.merge([Ts.lights,Ts.fog,{color:{value:new q(0)},opacity:{value:1}}]),vertexShader:As.shadow_vert,fragmentShader:As.shadow_frag}};Rs.physical={uniforms:Ss.merge([Rs.standard.uniforms,{clearCoat:{value:0},clearCoatRoughness:{value:0}}]),vertexShader:As.meshphysical_vert,fragmentShader:As.meshphysical_frag},Object.assign(Y.prototype,{set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){return(e||new i).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){return(e||new i).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new i;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),J.prototype=Object.create(s.prototype),J.prototype.constructor=J;var Ls=0;Object.assign(K.prototype,e.prototype,{isMaterial:!0,onBeforeCompile:function(){},setValues:function(t){if(void 0!==t)for(var e in t){var i=t[e];if(void 0!==i)if(\"shading\"!==e){var n=this[e];void 0!==n?n&&n.isColor?n.set(i):n&&n.isVector3&&i&&i.isVector3?n.copy(i):this[e]=\"overdraw\"===e?Number(i):i:console.warn(\"THREE.\"+this.type+\": '\"+e+\"' is not a property of this material.\")}else console.warn(\"THREE.\"+this.type+\": .shading has been removed. Use the boolean .flatShading instead.\"),this.flatShading=1===i;else console.warn(\"THREE.Material: '\"+e+\"' parameter is undefined.\")}},toJSON:function(t){function e(t){var e=[];for(var i in t){var n=t[i];delete n.metadata,e.push(n)}return e}var i=void 0===t||\"string\"==typeof t;i&&(t={textures:{},images:{}});var n={metadata:{version:4.5,type:\"Material\",generator:\"Material.toJSON\"}};if(n.uuid=this.uuid,n.type=this.type,\"\"!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearCoat&&(n.clearCoat=this.clearCoat),void 0!==this.clearCoatRoughness&&(n.clearCoatRoughness=this.clearCoatRoughness),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(t).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(t).uuid),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(t).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(t).uuid,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(t).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(t).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(t).uuid,n.reflectivity=this.reflectivity),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(t).uuid),void 0!==this.size&&(n.size=this.size),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==Sa&&(n.blending=this.blending),!0===this.flatShading&&(n.flatShading=this.flatShading),this.side!==xa&&(n.side=this.side),this.vertexColors!==wa&&(n.vertexColors=this.vertexColors),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,0!==this.rotation&&(n.rotation=this.rotation),1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.morphTargets&&(n.morphTargets=!0),!0===this.skinning&&(n.skinning=!0),!1===this.visible&&(n.visible=!1),\"{}\"!==JSON.stringify(this.userData)&&(n.userData=this.userData),i){var r=e(t.textures),a=e(t.images);r.length>0&&(n.textures=r),a.length>0&&(n.images=a)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.flatShading=t.flatShading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.overdraw=t.overdraw,this.visible=t.visible,this.userData=JSON.parse(JSON.stringify(t.userData)),this.clipShadows=t.clipShadows,this.clipIntersection=t.clipIntersection;var e=t.clippingPlanes,i=null;if(null!==e){var n=e.length;i=new Array(n);for(var r=0;r!==n;++r)i[r]=e[r].clone()}return this.clippingPlanes=i,this},dispose:function(){this.dispatchEvent({type:\"dispose\"})}}),$.prototype=Object.create(K.prototype),$.prototype.constructor=$,$.prototype.isMeshDepthMaterial=!0,$.prototype.copy=function(t){return K.prototype.copy.call(this,t),this.depthPacking=t.depthPacking,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this},tt.prototype=Object.create(K.prototype),tt.prototype.constructor=tt,tt.prototype.isMeshDistanceMaterial=!0,tt.prototype.copy=function(t){return K.prototype.copy.call(this,t),this.referencePosition.copy(t.referencePosition),this.nearDistance=t.nearDistance,this.farDistance=t.farDistance,this.skinning=t.skinning,this.morphTargets=t.morphTargets,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this},Object.assign(et.prototype,{isBox3:!0,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromArray:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,a=-1/0,o=-1/0,s=0,c=t.length;sr&&(r=h),l>a&&(a=l),u>o&&(o=u)}return this.min.set(e,i,n),this.max.set(r,a,o),this},setFromBufferAttribute:function(t){for(var e=1/0,i=1/0,n=1/0,r=-1/0,a=-1/0,o=-1/0,s=0,c=t.count;sr&&(r=h),l>a&&(a=l),u>o&&(o=u)}return this.min.set(e,i,n),this.max.set(r,a,o),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){return(e||new a).set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(){var t=new a;return function(e){return this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=t.constant&&i>=t.constant},clampPoint:function(t,e){return(e||new a).copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new a;return function(e){return t.copy(e).clamp(this.min,this.max).sub(e).length()}}(),getBoundingSphere:function(){var t=new a;return function(e){var i=e||new it;return this.getCenter(i.center),i.radius=.5*this.getSize(t).length(),i}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new a,new a,new a,new a,new a,new a,new a,new a];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}}),Object.assign(it.prototype,{set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new et;return function(e,i){var n=this.center;void 0!==i?n.copy(i):t.setFromPoints(e).getCenter(n);for(var r=0,a=0,o=e.length;athis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},getBoundingBox:function(t){var e=t||new et;return e.set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}}),Object.assign(nt.prototype,{set:function(t,e){return this.normal.copy(t),this.constant=e,this},setComponents:function(t,e,i,n){return this.normal.set(t,e,i),this.constant=n,this},setFromNormalAndCoplanarPoint:function(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this},setFromCoplanarPoints:function(){var t=new a,e=new a;return function(i,n,r){var a=t.subVectors(r,n).cross(e.subVectors(i,n)).normalize();return this.setFromNormalAndCoplanarPoint(a,i),this}}(),clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.normal.copy(t.normal),this.constant=t.constant,this},normalize:function(){var t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this},negate:function(){return this.constant*=-1,this.normal.negate(),this},distanceToPoint:function(t){return this.normal.dot(t)+this.constant},distanceToSphere:function(t){return this.distanceToPoint(t.center)-t.radius},projectPoint:function(t,e){return(e||new a).copy(this.normal).multiplyScalar(-this.distanceToPoint(t)).add(t)},intersectLine:function(){var t=new a;return function(e,i){var n=i||new a,r=e.delta(t),o=this.normal.dot(r);if(0!==o){var s=-(e.start.dot(this.normal)+this.constant)/o;if(!(s<0||s>1))return n.copy(r).multiplyScalar(s).add(e.start)}else if(0===this.distanceToPoint(e.start))return n.copy(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){return(t||new a).copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new a,e=new o;return function(i,n){var r=n||e.getNormalMatrix(i),a=this.coplanarPoint(t).applyMatrix4(i),o=this.normal.applyMatrix3(r).normalize();return this.constant=-a.dot(o),this}}(),translate:function(t){return this.constant-=t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(rt.prototype,{set:function(t,e,i,n,r,a){var o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(i),o[3].copy(n),o[4].copy(r),o[5].copy(a),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements,n=i[0],r=i[1],a=i[2],o=i[3],s=i[4],c=i[5],h=i[6],l=i[7],u=i[8],p=i[9],d=i[10],f=i[11],m=i[12],g=i[13],v=i[14],y=i[15];return e[0].setComponents(o-n,l-s,f-u,y-m).normalize(),e[1].setComponents(o+n,l+s,f+u,y+m).normalize(),e[2].setComponents(o+r,l+c,f+p,y+g).normalize(),e[3].setComponents(o-r,l-c,f-p,y-g).normalize(),e[4].setComponents(o-a,l-h,f-d,y-v).normalize(),e[5].setComponents(o+a,l+h,f+d,y+v).normalize(),this},intersectsObject:function(){var t=new it;return function(e){var i=e.geometry;return null===i.boundingSphere&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new it;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,i=t.center,n=-t.radius,r=0;r<6;r++){if(e[r].distanceToPoint(i)0?i.min.x:i.max.x,e.x=a.normal.x>0?i.max.x:i.min.x,t.y=a.normal.y>0?i.min.y:i.max.y,e.y=a.normal.y>0?i.max.y:i.min.y,t.z=a.normal.z>0?i.min.z:i.max.z,e.z=a.normal.z>0?i.max.z:i.min.z;var o=a.distanceToPoint(t),s=a.distanceToPoint(e);if(o<0&&s<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}}),st.RotationOrders=[\"XYZ\",\"YZX\",\"ZXY\",\"XZY\",\"YXZ\",\"ZYX\"],st.DefaultOrder=\"XYZ\",Object.defineProperties(st.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}}),Object.assign(st.prototype,{isEuler:!0,set:function(t,e,i,n){return this._x=t,this._y=e,this._z=i,this._order=n||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,i){var n=ms.clamp,r=t.elements,a=r[0],o=r[4],s=r[8],c=r[1],h=r[5],l=r[9],u=r[2],p=r[6],d=r[10];return e=e||this._order,\"XYZ\"===e?(this._y=Math.asin(n(s,-1,1)),Math.abs(s)<.99999?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-o,a)):(this._x=Math.atan2(p,h),this._z=0)):\"YXZ\"===e?(this._x=Math.asin(-n(l,-1,1)),Math.abs(l)<.99999?(this._y=Math.atan2(s,d),this._z=Math.atan2(c,h)):(this._y=Math.atan2(-u,a),this._z=0)):\"ZXY\"===e?(this._x=Math.asin(n(p,-1,1)),Math.abs(p)<.99999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-o,h)):(this._y=0,this._z=Math.atan2(c,a))):\"ZYX\"===e?(this._y=Math.asin(-n(u,-1,1)),Math.abs(u)<.99999?(this._x=Math.atan2(p,d),this._z=Math.atan2(c,a)):(this._x=0,this._z=Math.atan2(-o,h))):\"YZX\"===e?(this._z=Math.asin(n(c,-1,1)),Math.abs(c)<.99999?(this._x=Math.atan2(-l,h),this._y=Math.atan2(-u,a)):(this._x=0,this._y=Math.atan2(s,d))):\"XZY\"===e?(this._z=Math.asin(-n(o,-1,1)),Math.abs(o)<.99999?(this._x=Math.atan2(p,h),this._y=Math.atan2(s,a)):(this._x=Math.atan2(-l,d),this._y=0)):console.warn(\"THREE.Euler: .setFromRotationMatrix() given unsupported order: \"+e),this._order=e,!1!==i&&this.onChangeCallback(),this},setFromQuaternion:function(){var t=new n;return function(e,i,n){return t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,i,n)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new r;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new a(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(ct.prototype,{set:function(t){this.mask=1<1){for(var e=0;e1){for(var e=0;e0){a.children=[];for(var s=0;s0&&(r.geometries=h),l.length>0&&(r.materials=l),u.length>0&&(r.textures=u),p.length>0&&(r.images=p)}return r.object=a,r},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),!0===e)for(var i=0;i0)for(var m=0;m0&&(this.normalsNeedUpdate=!0)},computeFlatVertexNormals:function(){var t,e,i;for(this.computeFaceNormals(),t=0,e=this.faces.length;t0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,i,n,r;for(i=0,n=this.faces.length;i0&&(t+=e[i].distanceTo(e[i-1])),this.lineDistances[i]=t},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new et),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new it),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if(!t||!t.isGeometry)return void console.error(\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\",t);var n,r=this.vertices.length,a=this.vertices,s=t.vertices,c=this.faces,h=t.faces,l=this.faceVertexUvs[0],u=t.faceVertexUvs[0],p=this.colors,d=t.colors;void 0===i&&(i=0),void 0!==e&&(n=(new o).getNormalMatrix(e));for(var f=0,m=s.length;f=0;i--){var f=p[i];for(this.faces.splice(f,1),o=0,s=this.faceVertexUvs.length;o0,b=v.vertexNormals.length>0,_=1!==v.color.r||1!==v.color.g||1!==v.color.b,w=v.vertexColors.length>0,M=0;if(M=t(M,0,0),M=t(M,1,!0),M=t(M,2,!1),M=t(M,3,y),M=t(M,4,x),M=t(M,5,b),M=t(M,6,_),M=t(M,7,w),l.push(M),l.push(v.a,v.b,v.c),l.push(v.materialIndex),y){var E=this.faceVertexUvs[0][c];l.push(n(E[0]),n(E[1]),n(E[2]))}if(x&&l.push(e(v.normal)),b){var T=v.vertexNormals;l.push(e(T[0]),e(T[1]),e(T[2]))}if(_&&l.push(i(v.color)),w){var S=v.vertexColors;l.push(i(S[0]),i(S[1]),i(S[2]))}}return r.data={},r.data.vertices=s,r.data.normals=u,d.length>0&&(r.data.colors=d),m.length>0&&(r.data.uvs=[m]),r.data.faces=l,r},clone:function(){return(new dt).copy(this)},copy:function(t){var e,i,n,r,a,o;this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var s=t.vertices;for(e=0,i=s.length;e0,s=a[1]&&a[1].length>0,c=t.morphTargets,h=c.length;if(h>0){e=[];for(var l=0;l0){u=[];for(var l=0;l65535?_t:xt)(t,1):this.index=t},addAttribute:function(t,e){return e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?\"index\"===t?(console.warn(\"THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute.\"),void this.setIndex(e)):(this.attributes[t]=e,this):(console.warn(\"THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).\"),void this.addAttribute(t,new ft(arguments[1],arguments[2])))},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,i){this.groups.push({start:t,count:e,materialIndex:void 0!==i?i:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;void 0!==e&&(t.applyToBufferAttribute(e),e.needsUpdate=!0);var i=this.attributes.normal;if(void 0!==i){(new o).getNormalMatrix(t).applyToBufferAttribute(i),i.needsUpdate=!0}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var t=new n;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new n;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new n;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new n;return function(e,i,n){return t.makeTranslation(e,i,n),this.applyMatrix(t),this}}(),scale:function(){var t=new n;return function(e,i,n){return t.makeScale(e,i,n),this.applyMatrix(t),this}}(),lookAt:function(){var t=new ht;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),center:function(){this.computeBoundingBox();var t=this.boundingBox.getCenter().negate();return this.translate(t.x,t.y,t.z),t},setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var i=new wt(3*e.vertices.length,3),n=new wt(3*e.colors.length,3);if(this.addAttribute(\"position\",i.copyVector3sArray(e.vertices)),this.addAttribute(\"color\",n.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var r=new wt(e.lineDistances.length,1);this.addAttribute(\"lineDistance\",r.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],i=0,n=t.length;i0){var i=new Float32Array(3*t.normals.length);this.addAttribute(\"normal\",new ft(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.addAttribute(\"color\",new ft(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var r=new Float32Array(2*t.uvs.length);this.addAttribute(\"uv\",new ft(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var a=new Float32Array(2*t.uvs2.length);this.addAttribute(\"uv2\",new ft(a,2).copyVector2sArray(t.uvs2))}if(t.indices.length>0){var o=Tt(t.indices)>65535?Uint32Array:Uint16Array,s=new o(3*t.indices.length);this.setIndex(new ft(s,1).copyIndicesArray(t.indices))}this.groups=t.groups;for(var c in t.morphTargets){for(var h=[],l=t.morphTargets[c],u=0,p=l.length;u0){var m=new wt(4*t.skinIndices.length,4);this.addAttribute(\"skinIndex\",m.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var g=new wt(4*t.skinWeights.length,4);this.addAttribute(\"skinWeight\",g.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new et);var t=this.attributes.position;void 0!==t?this.boundingBox.setFromBufferAttribute(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new et,e=new a;return function(){null===this.boundingSphere&&(this.boundingSphere=new it);var i=this.attributes.position\n;if(i){var n=this.boundingSphere.center;t.setFromBufferAttribute(i),t.getCenter(n);for(var r=0,a=0,o=i.count;a0&&(t.data.groups=JSON.parse(JSON.stringify(s)));var c=this.boundingSphere;return null!==c&&(t.data.boundingSphere={center:c.center.toArray(),radius:c.radius}),t},clone:function(){return(new St).copy(this)},copy:function(t){var e,i,n;this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;var r=t.index;null!==r&&this.setIndex(r.clone());var a=t.attributes;for(e in a){var o=a[e];this.addAttribute(e,o.clone())}var s=t.morphAttributes;for(e in s){var c=[],h=s[e];for(i=0,n=h.length;i0)if(s=p*f-d,c=p*d-f,l=u*g,s>=0)if(c>=-l)if(c<=l){var v=1/g;s*=v,c*=v,h=s*(s+p*c+2*d)+c*(p*s+c+2*f)+m}else c=u,s=Math.max(0,-(p*c+d)),h=-s*s+c*(c+2*f)+m;else c=-u,s=Math.max(0,-(p*c+d)),h=-s*s+c*(c+2*f)+m;else c<=-l?(s=Math.max(0,-(-p*u+d)),c=s>0?-u:Math.min(Math.max(-u,-f),u),h=-s*s+c*(c+2*f)+m):c<=l?(s=0,c=Math.min(Math.max(-u,-f),u),h=c*(c+2*f)+m):(s=Math.max(0,-(p*u+d)),c=s>0?u:Math.min(Math.max(-u,-f),u),h=-s*s+c*(c+2*f)+m);else c=p>0?-u:u,s=Math.max(0,-(p*c+d)),h=-s*s+c*(c+2*f)+m;return a&&a.copy(this.direction).multiplyScalar(s).add(this.origin),o&&o.copy(e).multiplyScalar(c).add(t),h}}(),intersectSphere:function(){var t=new a;return function(e,i){t.subVectors(e.center,this.origin);var n=t.dot(this.direction),r=t.dot(t)-n*n,a=e.radius*e.radius;if(r>a)return null;var o=Math.sqrt(a-r),s=n-o,c=n+o;return s<0&&c<0?null:s<0?this.at(c,i):this.at(s,i)}}(),intersectsSphere:function(t){return this.distanceToPoint(t.center)<=t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null},intersectPlane:function(t,e){var i=this.distanceToPlane(t);return null===i?null:this.at(i,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);return 0===e||t.normal.dot(this.direction)*e<0},intersectBox:function(t,e){var i,n,r,a,o,s,c=1/this.direction.x,h=1/this.direction.y,l=1/this.direction.z,u=this.origin;return c>=0?(i=(t.min.x-u.x)*c,n=(t.max.x-u.x)*c):(i=(t.max.x-u.x)*c,n=(t.min.x-u.x)*c),h>=0?(r=(t.min.y-u.y)*h,a=(t.max.y-u.y)*h):(r=(t.max.y-u.y)*h,a=(t.min.y-u.y)*h),i>a||r>n?null:((r>i||i!==i)&&(i=r),(a=0?(o=(t.min.z-u.z)*l,s=(t.max.z-u.z)*l):(o=(t.max.z-u.z)*l,s=(t.min.z-u.z)*l),i>s||o>n?null:((o>i||i!==i)&&(i=o),(s=0?i:n,e)))},intersectsBox:function(){var t=new a;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new a,e=new a,i=new a,n=new a;return function(r,a,o,s,c){e.subVectors(a,r),i.subVectors(o,r),n.crossVectors(e,i);var h,l=this.direction.dot(n);if(l>0){if(s)return null;h=1}else{if(!(l<0))return null;h=-1,l=-l}t.subVectors(this.origin,r);var u=h*this.direction.dot(i.crossVectors(t,i));if(u<0)return null;var p=h*this.direction.dot(e.cross(t));if(p<0)return null;if(u+p>l)return null;var d=-h*t.dot(n);return d<0?null:this.at(d/l,c)}}(),applyMatrix4:function(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}}),Object.assign(Dt.prototype,{set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},getCenter:function(t){return(t||new a).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){return(t||new a).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){var i=e||new a;return this.delta(i).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(){var t=new a,e=new a;return function(i,n){t.subVectors(i,this.start),e.subVectors(this.end,this.start);var r=e.dot(e),a=e.dot(t),o=a/r;return n&&(o=ms.clamp(o,0,1)),o}}(),closestPointToPoint:function(t,e,i){var n=this.closestPointToPointParameter(t,e),r=i||new a;return this.delta(r).multiplyScalar(n).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}}),Object.assign(Ot,{normal:function(){var t=new a;return function(e,i,n,r){var o=r||new a;o.subVectors(n,i),t.subVectors(e,i),o.cross(t);var s=o.lengthSq();return s>0?o.multiplyScalar(1/Math.sqrt(s)):o.set(0,0,0)}}(),barycoordFromPoint:function(){var t=new a,e=new a,i=new a;return function(n,r,o,s,c){t.subVectors(s,r),e.subVectors(o,r),i.subVectors(n,r);var h=t.dot(t),l=t.dot(e),u=t.dot(i),p=e.dot(e),d=e.dot(i),f=h*p-l*l,m=c||new a;if(0===f)return m.set(-2,-1,-1);var g=1/f,v=(p*u-l*d)*g,y=(h*d-l*u)*g;return m.set(1-v-y,y,v)}}(),containsPoint:function(){var t=new a;return function(e,i,n,r){var a=Ot.barycoordFromPoint(e,i,n,r,t);return a.x>=0&&a.y>=0&&a.x+a.y<=1}}()}),Object.assign(Ot.prototype,{set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},area:function(){var t=new a,e=new a;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),midpoint:function(t){return(t||new a).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(t){return Ot.normal(this.a,this.b,this.c,t)},plane:function(t){return(t||new nt).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(t,e){return Ot.barycoordFromPoint(t,this.a,this.b,this.c,e)},containsPoint:function(t){return Ot.containsPoint(t,this.a,this.b,this.c)},closestPointToPoint:function(){var t=new nt,e=[new Dt,new Dt,new Dt],i=new a,n=new a;return function(r,o){var s=o||new a,c=1/0;if(t.setFromCoplanarPoints(this.a,this.b,this.c),t.projectPoint(r,i),!0===this.containsPoint(i))s.copy(i);else{e[0].set(this.a,this.b),e[1].set(this.b,this.c),e[2].set(this.c,this.a);for(var h=0;h0){var o=r[a[0]];if(void 0!==o)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=o.length;t0)for(this.morphTargetInfluences=[],this.morphTargetDictionary={},t=0,e=s.length;ti.far?null:{distance:c,point:b.clone(),object:t}}function r(i,n,r,a,o,s,c,p){h.fromBufferAttribute(a,s),l.fromBufferAttribute(a,c),u.fromBufferAttribute(a,p);var d=e(i,i.material,n,r,h,l,u,x);return d&&(o&&(m.fromBufferAttribute(o,s),g.fromBufferAttribute(o,c),v.fromBufferAttribute(o,p),d.uv=t(x,h,l,u,m,g,v)),d.face=new pt(s,c,p,Ot.normal(h,l,u)),d.faceIndex=s),d}var o=new n,s=new Ut,c=new it,h=new a,l=new a,u=new a,p=new a,d=new a,f=new a,m=new i,g=new i,v=new i,y=new a,x=new a,b=new a;return function(i,n){var a=this.geometry,y=this.material,b=this.matrixWorld;if(void 0!==y&&(null===a.boundingSphere&&a.computeBoundingSphere(),c.copy(a.boundingSphere),c.applyMatrix4(b),!1!==i.ray.intersectsSphere(c)&&(o.getInverse(b),s.copy(i.ray).applyMatrix4(o),null===a.boundingBox||!1!==s.intersectsBox(a.boundingBox)))){var _;if(a.isBufferGeometry){var w,M,E,T,S,A=a.index,R=a.attributes.position,L=a.attributes.uv;if(null!==A)for(T=0,S=A.count;T0&&(U=F);for(var B=0,z=N.length;Ba)){var o=n.ray.origin.distanceTo(t);on.far||r.push({distance:o,point:t.clone(),face:null,object:this})}}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),Re.prototype=Object.assign(Object.create(ht.prototype),{constructor:Re,copy:function(t){ht.prototype.copy.call(this,t,!1);for(var e=t.levels,i=0,n=e.length;i1){t.setFromMatrixPosition(i.matrixWorld),e.setFromMatrixPosition(this.matrixWorld);var r=t.distanceTo(e);n[0].object.visible=!0;for(var a=1,o=n.length;a=n[a].distance;a++)n[a-1].object.visible=!1,n[a].object.visible=!0;for(;as)){d.applyMatrix4(this.matrixWorld);var E=n.ray.origin.distanceTo(d);En.far||r.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}else for(var x=0,b=v.length/3-1;xs)){d.applyMatrix4(this.matrixWorld);var E=n.ray.origin.distanceTo(d);En.far||r.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}}else if(c.isGeometry)for(var T=c.vertices,S=T.length,x=0;xs)){d.applyMatrix4(this.matrixWorld);var E=n.ray.origin.distanceTo(d);En.far||r.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),De.prototype=Object.assign(Object.create(Ue.prototype),{constructor:De,isLineSegments:!0}),Oe.prototype=Object.assign(Object.create(Ue.prototype),{constructor:Oe,isLineLoop:!0}),Ne.prototype=Object.create(K.prototype),Ne.prototype.constructor=Ne,Ne.prototype.isPointsMaterial=!0,Ne.prototype.copy=function(t){return K.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this},Fe.prototype=Object.assign(Object.create(ht.prototype),{constructor:Fe,isPoints:!0,raycast:function(){var t=new n,e=new Ut,i=new it;return function(n,r){function o(t,i){var a=e.distanceSqToPoint(t);if(an.far)return;r.push({distance:c,distanceToRay:Math.sqrt(a),point:o.clone(),index:i,face:null,object:s})}}var s=this,c=this.geometry,h=this.matrixWorld,l=n.params.Points.threshold;if(null===c.boundingSphere&&c.computeBoundingSphere(),i.copy(c.boundingSphere),i.applyMatrix4(h),i.radius+=l,!1!==n.ray.intersectsSphere(i)){t.getInverse(h),e.copy(n.ray).applyMatrix4(t);var u=l/((this.scale.x+this.scale.y+this.scale.z)/3),p=u*u,d=new a;if(c.isBufferGeometry){var f=c.index,m=c.attributes,g=m.position.array;if(null!==f)for(var v=f.array,y=0,x=v.length;y=-Number.EPSILON&&R>=-Number.EPSILON&&A>=-Number.EPSILON))return!1;return!0}return function(e,i){var n=e.length;if(n<3)return null;var r,a,o,s=[],c=[],h=[];if(Ds.area(e)>0)for(a=0;a2;){if(u--<=0)return console.warn(\"THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()\"),i?h:s;if(r=a,l<=r&&(r=0),a=r+1,l<=a&&(a=0),o=a+1,l<=o&&(o=0),t(e,r,a,o,l,c)){var p,d,f,m,g;for(p=c[r],d=c[a],f=c[o],s.push([e[p],e[d],e[f]]),h.push([c[r],c[a],c[o]]),m=a,g=a+1;g2&&t[e-1].equals(t[0])&&t.pop()}function n(t,e,i){return t.x!==e.x?t.xNumber.EPSILON){var f;if(p>0){if(d<0||d>p)return[];if((f=h*l-c*u)<0||f>p)return[]}else{if(d>0||d0||fT?[]:b===T?a?[]:[y]:_<=T?[y,x]:[y,M]}function a(t,e,i,n){var r=e.x-t.x,a=e.y-t.y,o=i.x-t.x,s=i.y-t.y,c=n.x-t.x,h=n.y-t.y,l=r*s-a*o,u=r*h-a*c;if(Math.abs(l)>Number.EPSILON){var p=c*s-h*o;return l>0?u>=0&&p>=0:u>=0||p>=0}return u>0}i(t),e.forEach(i);for(var o,s,c,h,l,u,p={},d=t.concat(),f=0,m=e.length;f0;){if(--_<0){console.log('THREE.ShapeUtils: Infinite Loop! Holes left:\" + indepHoles.length + \", Probably Hole outside Shape!');break}for(o=b;on&&(o=0);var s=a(m[t],m[r],m[o],i[e]);if(!s)return!1;var c=i.length-1,h=e-1;h<0&&(h=c);var l=e+1;return l>c&&(l=0),!!(s=a(i[e],i[h],i[l],m[t]))}(o,w)&&!function(t,e){var i,n,a;for(i=0;i0)return!0;return!1}(s,c)&&!function(t,i){var n,a,o,s,c;for(n=0;n0)return!0;return!1}(s,c)){n=w,g.splice(y,1),u=m.slice(0,o+1),p=m.slice(o),d=i.slice(n),f=i.slice(0,n+1),m=u.concat(d).concat(f).concat(p),b=o;break}if(n>=0)break;v[l]=!0}if(n>=0)break}}return m}(t,e),v=Ds.triangulate(g,!1);for(o=0,s=v.length;oNumber.EPSILON){var d=Math.sqrt(u),f=Math.sqrt(h*h+l*l),m=e.x-c/d,g=e.y+s/d,v=n.x-l/f,y=n.y+h/f,x=((v-m)*l-(y-g)*h)/(s*l-c*h);r=m+s*x-t.x,a=g+c*x-t.y;var b=r*r+a*a;if(b<=2)return new i(r,a);o=Math.sqrt(b/2)}else{var _=!1;s>Number.EPSILON?h>Number.EPSILON&&(_=!0):s<-Number.EPSILON?h<-Number.EPSILON&&(_=!0):Math.sign(c)===Math.sign(l)&&(_=!0),_?(r=-c,a=s,o=Math.sqrt(u)):(r=s,a=c,o=Math.sqrt(u/2))}return new i(r/o,a/o)}function o(t,e){var i,n;for(J=t.length;--J>=0;){i=J,n=J-1,n<0&&(n=t.length-1);var r=0,a=R+2*T;for(r=0;r=0;H--){for(k=H/T,j=M*Math.cos(k*Math.PI/2),V=E*Math.sin(k*Math.PI/2),J=0,Q=G.length;J0||0===t.search(/^data\\:image\\/jpeg/);a.format=i?zo:Go,a.needsUpdate=!0,void 0!==e&&e(a)},i,n),a},setCrossOrigin:function(t){return this.crossOrigin=t,this},setPath:function(t){return this.path=t,this}}),Vi.prototype=Object.assign(Object.create(ht.prototype),{constructor:Vi,isLight:!0,copy:function(t){return ht.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){var e=ht.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),ki.prototype=Object.assign(Object.create(Vi.prototype),{constructor:ki,isHemisphereLight:!0,copy:function(t){return Vi.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(ji.prototype,{copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t={};return 0!==this.bias&&(t.bias=this.bias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),Wi.prototype=Object.assign(Object.create(ji.prototype),{constructor:Wi,isSpotLightShadow:!0,update:function(t){var e=this.camera,i=2*ms.RAD2DEG*t.angle,n=this.mapSize.width/this.mapSize.height,r=t.distance||e.far;i===e.fov&&n===e.aspect&&r===e.far||(e.fov=i,e.aspect=n,e.far=r,e.updateProjectionMatrix())}}),Xi.prototype=Object.assign(Object.create(Vi.prototype),{constructor:Xi,isSpotLight:!0,copy:function(t){return Vi.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),qi.prototype=Object.assign(Object.create(Vi.prototype),{constructor:qi,isPointLight:!0,copy:function(t){return Vi.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),Yi.prototype=Object.assign(Object.create(ji.prototype),{constructor:Yi}),Zi.prototype=Object.assign(Object.create(Vi.prototype),{constructor:Zi,isDirectionalLight:!0,copy:function(t){return Vi.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Ji.prototype=Object.assign(Object.create(Vi.prototype),{constructor:Ji,isAmbientLight:!0}),Qi.prototype=Object.assign(Object.create(Vi.prototype),{constructor:Qi,isRectAreaLight:!0,copy:function(t){return Vi.prototype.copy.call(this,t),this.width=t.width,this.height=t.height,this},toJSON:function(t){var e=Vi.prototype.toJSON.call(this,t);return e.object.width=this.width,e.object.height=this.height,e}}),Ki.prototype=Object.assign(Object.create(hn.prototype),{constructor:Ki,ValueTypeName:\"string\",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),$i.prototype=Object.assign(Object.create(hn.prototype),{constructor:$i,ValueTypeName:\"bool\",ValueBufferType:Array,DefaultInterpolation:2300,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Object.assign(tn.prototype,{evaluate:function(t){var e=this.parameterPositions,i=this._cachedIndex,n=e[i],r=e[i-1];t:{e:{var a;i:{n:if(!(t=r)break t;var s=e[1];t=r)break e}a=i,i=0}}for(;i>>1;te;)--a;if(++a,0!==r||a!==n){r>=a&&(a=Math.max(a,1),r=a-1);var o=this.getValueSize();this.times=Gs.arraySlice(i,r,a),this.values=Gs.arraySlice(this.values,r*o,a*o)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!=0&&(console.error(\"THREE.KeyframeTrack: Invalid value size in track.\",this),t=!1);var i=this.times,n=this.values,r=i.length;0===r&&(console.error(\"THREE.KeyframeTrack: Track is empty.\",this),t=!1);for(var a=null,o=0;o!==r;o++){var s=i[o];if(\"number\"==typeof s&&isNaN(s)){console.error(\"THREE.KeyframeTrack: Time is not a valid number.\",this,o,s),t=!1;break}if(null!==a&&a>s){console.error(\"THREE.KeyframeTrack: Out of order keys.\",this,o,s,a),t=!1;break}a=s}if(void 0!==n&&Gs.isTypedArray(n))for(var o=0,c=n.length;o!==c;++o){var h=n[o];if(isNaN(h)){console.error(\"THREE.KeyframeTrack: Value is not a valid number.\",this,o,h),t=!1;break}}return t},optimize:function(){for(var t=this.times,e=this.values,i=this.getValueSize(),n=2302===this.getInterpolation(),r=1,a=t.length-1,o=1;o0){t[r]=t[a];for(var f=a*i,m=r*i,p=0;p!==i;++p)e[m+p]=e[f+p];++r}return r!==t.length&&(this.times=Gs.arraySlice(t,0,r),this.values=Gs.arraySlice(e,0,r*i)),this}}),ln.prototype=Object.assign(Object.create(hn.prototype),{constructor:ln,ValueTypeName:\"vector\"}),Object.assign(un,{parse:function(t){for(var e=[],i=t.tracks,n=1/(t.fps||1),r=0,a=i.length;r!==a;++r)e.push(hn.parse(i[r]).scale(n));return new un(t.name,t.duration,e)},toJSON:function(t){for(var e=[],i=t.tracks,n={name:t.name,duration:t.duration,tracks:e},r=0,a=i.length;r!==a;++r)e.push(hn.toJSON(i[r]));return n},CreateFromMorphTargetSequence:function(t,e,i,n){for(var r=e.length,a=[],o=0;o1){var h=c[1],l=n[h];l||(n[h]=l=[]),l.push(s)}}var u=[];for(var h in n)u.push(un.CreateFromMorphTargetSequence(h,n[h],e,i));return u},parseAnimation:function(t,e){if(!t)return console.error(\"THREE.AnimationClip: No animation in JSONLoader data.\"),null;for(var i=function(t,e,i,n,r){if(0!==i.length){var a=[],o=[];Gs.flattenJSON(i,a,o,n),0!==a.length&&r.push(new t(e,a,o))}},n=[],r=t.name||\"default\",a=t.length||-1,o=t.fps||30,s=t.hierarchy||[],c=0;c1?t.skinWeights[n+1]:0,s=i>2?t.skinWeights[n+2]:0,h=i>3?t.skinWeights[n+3]:0;e.skinWeights.push(new c(a,o,s,h))}if(t.skinIndices)for(var n=0,r=t.skinIndices.length;n1?t.skinIndices[n+1]:0,p=i>2?t.skinIndices[n+2]:0,d=i>3?t.skinIndices[n+3]:0;e.skinIndices.push(new c(l,u,p,d))}e.bones=t.bones,e.bones&&e.bones.length>0&&(e.skinWeights.length!==e.skinIndices.length||e.skinIndices.length!==e.vertices.length)&&console.warn(\"When skinning, number of vertices (\"+e.vertices.length+\"), skinIndices (\"+e.skinIndices.length+\"), and skinWeights (\"+e.skinWeights.length+\") should match.\")}function n(t,e){var i=t.scale;if(void 0!==t.morphTargets)for(var n=0,r=t.morphTargets.length;n0){console.warn('THREE.JSONLoader: \"morphColors\" no longer supported. Using them as face colors.');for(var u=e.faces,p=t.morphColors[0].colors,n=0,r=u.length;n0&&(e.animations=i)}return function(i,a){void 0!==i.data&&(i=i.data),void 0!==i.scale?i.scale=1/i.scale:i.scale=1;var o=new dt;return t(i,o),e(i,o),n(i,o),r(i,o),o.computeFaceNormals(),o.computeBoundingSphere(),void 0===i.materials||0===i.materials.length?{geometry:o}:{geometry:o,materials:fn.prototype.initMaterials(i.materials,a,this.crossOrigin)}}}()}),Object.assign(gn.prototype,{load:function(t,e,i,n){\"\"===this.texturePath&&(this.texturePath=t.substring(0,t.lastIndexOf(\"/\")+1));var r=this;new Ni(r.manager).load(t,function(i){var a=null;try{a=JSON.parse(i)}catch(e){return void 0!==n&&n(e),void console.error(\"THREE:ObjectLoader: Can't parse \"+t+\".\",e.message)}var o=a.metadata;if(void 0===o||void 0===o.type||\"geometry\"===o.type.toLowerCase())return void console.error(\"THREE.ObjectLoader: Can't load \"+t+\". Use THREE.JSONLoader instead.\");r.parse(a,e)},i,n)},setTexturePath:function(t){this.texturePath=t},setCrossOrigin:function(t){this.crossOrigin=t},parse:function(t,e){var i=this.parseGeometries(t.geometries),n=this.parseImages(t.images,function(){void 0!==e&&e(o)}),r=this.parseTextures(t.textures,n),a=this.parseMaterials(t.materials,r),o=this.parseObject(t.object,i,a);return t.animations&&(o.animations=this.parseAnimations(t.animations)),void 0!==t.images&&0!==t.images.length||void 0!==e&&e(o),o},parseGeometries:function(t){var e={};if(void 0!==t)for(var i=new mn,n=new dn,r=0,a=t.length;r0){var r=new Oi(e),a=new zi(r);a.setCrossOrigin(this.crossOrigin);for(var o=0,s=t.length;o0?new Ce(s,c):new Nt(s,c);break;case\"LOD\":o=new Re;break;case\"Line\":o=new Ue(r(e.geometry),a(e.material),e.mode);break;case\"LineLoop\":o=new Oe(r(e.geometry),a(e.material));break;case\"LineSegments\":o=new De(r(e.geometry),a(e.material));break;case\"PointCloud\":case\"Points\":o=new Fe(r(e.geometry),a(e.material));break;case\"Sprite\":o=new Ae(a(e.material));break;case\"Group\":o=new Be;break;default:o=new ht}if(o.uuid=e.uuid,void 0!==e.name&&(o.name=e.name),void 0!==e.matrix?(t.fromArray(e.matrix),t.decompose(o.position,o.quaternion,o.scale)):(void 0!==e.position&&o.position.fromArray(e.position),void 0!==e.rotation&&o.rotation.fromArray(e.rotation),void 0!==e.quaternion&&o.quaternion.fromArray(e.quaternion),void 0!==e.scale&&o.scale.fromArray(e.scale)),void 0!==e.castShadow&&(o.castShadow=e.castShadow),void 0!==e.receiveShadow&&(o.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(o.shadow.bias=e.shadow.bias),void 0!==e.shadow.radius&&(o.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&o.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(o.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(o.visible=e.visible),void 0!==e.userData&&(o.userData=e.userData),void 0!==e.children)for(var h=e.children,l=0;l0)){c=r;break}c=r-1}if(r=c,n[r]===i)return r/(a-1);var h=n[r];return(r+(i-h)/(n[r+1]-h))/(a-1)},getTangent:function(t){var e=t-1e-4,i=t+1e-4;e<0&&(e=0),i>1&&(i=1);var n=this.getPoint(e);return this.getPoint(i).clone().sub(n).normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)},computeFrenetFrames:function(t,e){var i,r,o,s=new a,c=[],h=[],l=[],u=new a,p=new n;for(i=0;i<=t;i++)r=i/t,c[i]=this.getTangentAt(r),c[i].normalize();h[0]=new a,l[0]=new a;var d=Number.MAX_VALUE,f=Math.abs(c[0].x),m=Math.abs(c[0].y),g=Math.abs(c[0].z);for(f<=d&&(d=f,s.set(1,0,0)),m<=d&&(d=m,s.set(0,1,0)),g<=d&&s.set(0,0,1),u.crossVectors(c[0],s).normalize(),h[0].crossVectors(c[0],u),l[0].crossVectors(c[0],h[0]),i=1;i<=t;i++)h[i]=h[i-1].clone(),l[i]=l[i-1].clone(),u.crossVectors(c[i-1],c[i]),u.length()>Number.EPSILON&&(u.normalize(),o=Math.acos(ms.clamp(c[i-1].dot(c[i]),-1,1)),h[i].applyMatrix4(p.makeRotationAxis(u,o))),l[i].crossVectors(c[i],h[i]);if(!0===e)for(o=Math.acos(ms.clamp(h[0].dot(h[t]),-1,1)),o/=t,c[0].dot(u.crossVectors(h[0],h[t]))>0&&(o=-o),i=1;i<=t;i++)h[i].applyMatrix4(p.makeRotationAxis(c[i],o*i)),l[i].crossVectors(c[i],h[i]);return{tangents:c,normals:h,binormals:l}},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}),Rn.prototype=Object.create(An.prototype),Rn.prototype.constructor=Rn,Rn.prototype.isLineCurve=!0,Rn.prototype.getPoint=function(t,e){var n=e||new i;return 1===t?n.copy(this.v2):(n.copy(this.v2).sub(this.v1),n.multiplyScalar(t).add(this.v1)),n},Rn.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},Rn.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},Rn.prototype.copy=function(t){return An.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Ln.prototype=Object.assign(Object.create(An.prototype),{constructor:Ln,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new Rn(e,t))},getPoint:function(t){for(var e=t*this.getLength(),i=this.getCurveLengths(),n=0;n=e){var r=i[n]-e,a=this.curves[n],o=a.getLength(),s=0===o?0:1-r/o;return a.getPointAt(s)}n++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,n=this.curves.length;i1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i},copy:function(t){An.prototype.copy.call(this,t),this.curves=[];for(var e=0,i=t.curves.length;er;)a-=r;ar.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(vn(s,c.x,h.x,l.x,u.x),vn(s,c.y,h.y,l.y,u.y)),n},Cn.prototype.copy=function(t){An.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e0){var h=c.getPoint(0);h.equals(this.currentPoint)||this.lineTo(h.x,h.y)}this.curves.push(c);var l=c.getPoint(1);this.currentPoint.copy(l)},copy:function(t){return Ln.prototype.copy.call(this,t),this.currentPoint.copy(t.currentPoint),this}}),On.prototype=Object.assign(Object.create(Dn.prototype),{constructor:On,getPointsHoles:function(t){for(var e=[],i=0,n=this.holes.length;i1){for(var v=!1,y=[],x=0,b=p.length;xNumber.EPSILON){if(h<0&&(o=e[a],c=-c,s=e[r],h=-h),t.ys.y)continue;if(t.y===o.y){if(t.x===o.x)return!0}else{var l=h*(t.x-o.x)-c*(t.y-o.y);if(0===l)return!0;if(l<0)continue;n=!n}}else{if(t.y!==o.y)continue;if(s.x<=t.x&&t.x<=o.x||o.x<=t.x&&t.x<=s.x)return!0}}return n})(M.p,p[T].p)&&(x!==T&&y.push({froms:x,tos:T,hole:w}),E?(E=!1,u[T].push(M)):v=!0);E&&u[x].push(M)}y.length>0&&(v||(d=u))}for(var S,m=0,A=p.length;m0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t=.5)for(var a=0;a!==r;++a)t[e+a]=t[i+a]},_slerp:function(t,e,i,n){r.slerpFlat(t,e,t,e,t,i,n)},_lerp:function(t,e,i,n,r){for(var a=1-n,o=0;o!==r;++o){var s=e+o;t[s]=t[s]*a+t[i+o]*n}}}),Object.assign(qn.prototype,{getValue:function(t,e){this.bind();var i=this._targetGroup.nCachedObjects_,n=this._bindings[i];void 0!==n&&n.getValue(t,e)},setValue:function(t,e){for(var i=this._bindings,n=this._targetGroup.nCachedObjects_,r=i.length;n!==r;++n)i[n].setValue(t,e)},bind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()},unbind:function(){for(var t=this._bindings,e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}}),Object.assign(Yn,{Composite:qn,create:function(t,e,i){return t&&t.isAnimationObjectGroup?new Yn.Composite(t,e,i):new Yn(t,e,i)},sanitizeNodeName:function(t){return t.replace(/\\s/g,\"_\").replace(/[^\\w-]/g,\"\")},parseTrackName:function(){var t=/((?:[\\w-]+[\\/:])*)/,e=/([\\w-\\.]+)?/,i=/(?:\\.([\\w-]+)(?:\\[(.+)\\])?)?/,n=/\\.([\\w-]+)(?:\\[(.+)\\])?/,r=new RegExp(\"^\"+t.source+e.source+i.source+n.source+\"$\"),a=[\"material\",\"materials\",\"bones\"];return function(t){var e=r.exec(t);if(!e)throw new Error(\"PropertyBinding: Cannot parse trackName: \"+t);var i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},n=i.nodeName&&i.nodeName.lastIndexOf(\".\");if(void 0!==n&&-1!==n){var o=i.nodeName.substring(n+1);-1!==a.indexOf(o)&&(i.nodeName=i.nodeName.substring(0,n),i.objectName=o)}if(null===i.propertyName||0===i.propertyName.length)throw new Error(\"PropertyBinding: can not parse propertyName from trackName: \"+t);return i}}(),findNode:function(t,e){if(!e||\"\"===e||\"root\"===e||\".\"===e||-1===e||e===t.name||e===t.uuid)return t;if(t.skeleton){var i=function(t){for(var i=0;i=e){var l=e++,u=t[l];i[u.uuid]=h,t[h]=u,i[c]=l,t[l]=s;for(var p=0,d=r;p!==d;++p){var f=n[p],m=f[l],g=f[h];f[h]=m,f[l]=g}}}this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,n=this._indicesByUUID,r=this._bindings,a=r.length,o=0,s=arguments.length;o!==s;++o){var c=arguments[o],h=c.uuid,l=n[h];if(void 0!==l)if(delete n[h],l0)for(var c=this._interpolants,h=this._propertyBindings,l=0,u=c.length;l!==u;++l)c[l].evaluate(o),h[l].accumulate(n,s)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i){e*=i.evaluate(t)[0],t>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t;if(0===t)return e;var i=this._clip.duration,n=this.loop,r=this._loopCount;if(2200===n){-1===r&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=i)e=i;else{if(!(e<0))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{var a=2202===n;if(-1===r&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),e>=i||e<0){var o=Math.floor(e/i);e-=i*o,r+=Math.abs(o);var s=this.repetitions-r;if(s<0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?i:0,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(0===s){var c=t<0;this._setEndings(c,!c,a)}else this._setEndings(!1,!1,a);this._loopCount=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:o})}}if(a&&1==(1&r))return this.time=e,i-e}return this.time=e,e},_setEndings:function(t,e,i){var n=this._interpolantSettings;i?(n.endingStart=2401,n.endingEnd=2401):(n.endingStart=t?this.zeroSlopeAtStart?2401:is:2402,n.endingEnd=e?this.zeroSlopeAtEnd?2401:is:2402)},_scheduleFading:function(t,e,i){var n=this._mixer,r=n.time,a=this._weightInterpolant;null===a&&(a=n._lendControlInterpolant(),this._weightInterpolant=a);var o=a.parameterPositions,s=a.sampleValues;return o[0]=r,s[0]=e,o[1]=r+t,s[1]=i,this}}),Object.assign(Qn.prototype,e.prototype,{_bindAction:function(t,e){var i=t._localRoot||this._root,n=t._clip.tracks,r=n.length,a=t._propertyBindings,o=t._interpolants,s=i.uuid,c=this._bindingsByRootAndName,h=c[s];void 0===h&&(h={},c[s]=h);for(var l=0;l!==r;++l){var u=n[l],p=u.name,d=h[p];if(void 0!==d)a[l]=d;else{if(void 0!==(d=a[l])){null===d._cacheIndex&&(++d.referenceCount,this._addInactiveBinding(d,s,p));continue}var f=e&&e._propertyBindings[l].binding.parsedPath;d=new Xn(Yn.create(i,p,f),u.ValueTypeName,u.getValueSize()),++d.referenceCount,this._addInactiveBinding(d,s,p),a[l]=d}o[l].resultBuffer=d.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,i=t._clip.uuid,n=this._actionsByClip[i];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,i,e)}for(var r=t._propertyBindings,a=0,o=r.length;a!==o;++a){var s=r[a];0==s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var r=e[i];0==--r.useCount&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){var e=t._cacheIndex;return null!==e&&e.99999?this.quaternion.set(0,0,0,1):i.y<-.99999?this.quaternion.set(1,0,0,0):(e.set(i.z,0,-i.x).normalize(),t=Math.acos(i.y),this.quaternion.setFromAxisAngle(e,t))}}(),Sr.prototype.setLength=function(t,e,i){void 0===e&&(e=.2*t),void 0===i&&(i=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()},Sr.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},Ar.prototype=Object.create(De.prototype),Ar.prototype.constructor=Ar;var Zs=new a,Js=new Rr,Qs=new Rr,Ks=new Rr;Lr.prototype=Object.create(An.prototype),Lr.prototype.constructor=Lr,Lr.prototype.isCatmullRomCurve3=!0,Lr.prototype.getPoint=function(t,e){var i=e||new a,n=this.points,r=n.length,o=(r-(this.closed?0:1))*t,s=Math.floor(o),c=o-s;this.closed?s+=s>0?0:(Math.floor(Math.abs(s)/n.length)+1)*n.length:0===c&&s===r-1&&(s=r-2,c=1);var h,l,u,p;if(this.closed||s>0?h=n[(s-1)%r]:(Zs.subVectors(n[0],n[1]).add(n[0]),h=Zs),l=n[s%r],u=n[(s+1)%r],this.closed||s+20&&t.push(new THREE.VectorKeyframeTrack(a+\".position\",n,i)),s.length>0&&t.push(new THREE.QuaternionKeyframeTrack(a+\".quaternion\",n,s)),o.length>0&&t.push(new THREE.VectorKeyframeTrack(a+\".scale\",n,o)),t}function T(e,t,r){var a,n,i,s=!0;for(n=0,i=e.length;n=0;){var a=e[t];if(null!==a.value[r])return a;t--}return null}function k(e,t,r){for(;t0&&d.addAttribute(\"position\",new THREE.Float32BufferAttribute(n.array,n.stride)),i.array.length>0&&d.addAttribute(\"normal\",new THREE.Float32BufferAttribute(i.array,i.stride)),o.array.length>0&&d.addAttribute(\"color\",new THREE.Float32BufferAttribute(o.array,o.stride)),s.array.length>0&&d.addAttribute(\"uv\",new THREE.Float32BufferAttribute(s.array,s.stride)),c.array.length>0&&d.addAttribute(\"skinIndex\",new THREE.Float32BufferAttribute(c.array,c.stride)),l.array.length>0&&d.addAttribute(\"skinWeight\",new THREE.Float32BufferAttribute(l.array,l.stride)),a.data=d,a.type=e[0].type,a.materialKeys=u,a}function Ee(e,t,r,a){function n(e){for(var t=i[e+r]*d,n=t+d;t0&&console.log(\"THREE.ColladaLoader: Geometry has faces with more than 4 vertices.\")}else for(var f=0,m=i.length;f=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function He(e){for(var t={sid:e.getAttribute(\"sid\"),name:e.getAttribute(\"name\")||\"\",attachments:[],transforms:[]},r=0;ra.limits.max||t\",\"\").replace(\"uniform float roughness;\",\"uniform vec3 specular;\").replace(\"uniform float metalness;\",\"uniform float glossiness;\").replace(\"#include \",i).replace(\"#include \",o).replace(\"#include \",l).replace(\"#include \",u).replace(\"#include \",c);delete s.roughness,delete s.metalness,delete s.roughnessMap,delete s.metalnessMap,s.specular={value:(new THREE.Color).setHex(1118481)},s.glossiness={value:.5},s.specularMap={value:null},s.glossinessMap={value:null},e.vertexShader=n.vertexShader,e.fragmentShader=p,e.uniforms=s,e.defines={STANDARD:\"\"},e.color=new THREE.Color(1,1,1),e.opacity=1;var d=[];if(Array.isArray(r.diffuseFactor)){var E=r.diffuseFactor;e.color.fromArray(E),e.opacity=E[3]}if(void 0!==r.diffuseTexture&&d.push(t.assignTexture(e,\"map\",r.diffuseTexture.index)),e.emissive=new THREE.Color(0,0,0),e.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,e.specular=new THREE.Color(1,1,1),Array.isArray(r.specularFactor)&&e.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var m=r.specularGlossinessTexture.index;d.push(t.assignTexture(e,\"glossinessMap\",m)),d.push(t.assignTexture(e,\"specularMap\",m))}return Promise.all(d)},createMaterial:function(e){var a=new THREE.ShaderMaterial({defines:e.defines,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,fog:!0,lights:!0,opacity:e.opacity,transparent:e.transparent});return a.isGLTFSpecularGlossinessMaterial=!0,a.color=e.color,a.map=void 0===e.map?null:e.map,a.lightMap=null,a.lightMapIntensity=1,a.aoMap=void 0===e.aoMap?null:e.aoMap,a.aoMapIntensity=1,a.emissive=e.emissive,a.emissiveIntensity=1,a.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,a.bumpMap=void 0===e.bumpMap?null:e.bumpMap,a.bumpScale=1,a.normalMap=void 0===e.normalMap?null:e.normalMap,e.normalScale&&(a.normalScale=e.normalScale),a.displacementMap=null,a.displacementScale=1,a.displacementBias=0,a.specularMap=void 0===e.specularMap?null:e.specularMap,a.specular=e.specular,a.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,a.glossiness=e.glossiness,a.alphaMap=null,a.envMap=void 0===e.envMap?null:e.envMap,a.envMapIntensity=1,a.refractionRatio=.98,a.extensions.derivatives=!0,a},cloneMaterial:function(e){var a=e.clone();a.isGLTFSpecularGlossinessMaterial=!0;for(var t=this.specularGlossinessParams,r=0;r=2.0 are supported.\")));m.extensionsUsed&&(m.extensionsUsed.indexOf(d.KHR_LIGHTS)>=0&&(c[d.KHR_LIGHTS]=new t(m)),m.extensionsUsed.indexOf(d.KHR_MATERIALS_COMMON)>=0&&(c[d.KHR_MATERIALS_COMMON]=new r(m)),m.extensionsUsed.indexOf(d.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS)>=0&&(c[d.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]=new s)),console.time(\"GLTFLoader\"),new p(m,c,{path:a||this.path||\"\",crossOrigin:this.crossOrigin,manager:this.manager}).parse(function(e,a,t,r){console.timeEnd(\"GLTFLoader\"),i({scene:e,scenes:a,cameras:t,animations:r})},o)}};var d={KHR_BINARY_GLTF:\"KHR_binary_glTF\",KHR_LIGHTS:\"KHR_lights\",KHR_MATERIALS_COMMON:\"KHR_materials_common\",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:\"KHR_materials_pbrSpecularGlossiness\"};r.prototype.getMaterialType=function(e){switch(e.extensions[this.name].type){case\"commonBlinn\":case\"commonPhong\":return THREE.MeshPhongMaterial;case\"commonLambert\":return THREE.MeshLambertMaterial;case\"commonConstant\":default:return THREE.MeshBasicMaterial}},r.prototype.extendParams=function(e,a,t){var r=a.extensions[this.name],n=[],s=[];switch(r.type){case\"commonBlinn\":case\"commonPhong\":s.push(\"diffuseFactor\",\"diffuseTexture\",\"specularFactor\",\"specularTexture\",\"shininessFactor\");break;case\"commonLambert\":s.push(\"diffuseFactor\",\"diffuseTexture\")}var i={};return s.forEach(function(e){void 0!==r[e]&&(i[e]=r[e])}),void 0!==i.diffuseFactor&&(e.color=(new THREE.Color).fromArray(i.diffuseFactor),e.opacity=i.diffuseFactor[3]),void 0!==i.diffuseTexture&&n.push(t.assignTexture(e,\"map\",i.diffuseTexture.index)),void 0!==i.specularFactor&&(e.specular=(new THREE.Color).fromArray(i.specularFactor)),void 0!==i.specularTexture&&n.push(t.assignTexture(e,\"specularMap\",i.specularTexture.index)),void 0!==i.shininessFactor&&(e.shininess=i.shininessFactor),Promise.all(n)};var E=\"glTF\",m=12,f={JSON:1313821514,BIN:5130562},h={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},T=(Number,THREE.Matrix3,THREE.Matrix4,THREE.Vector2,THREE.Vector3,THREE.Vector4,THREE.Texture,{5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array}),v={9728:THREE.NearestFilter,9729:THREE.LinearFilter,9984:THREE.NearestMipMapNearestFilter,9985:THREE.LinearMipMapNearestFilter,9986:THREE.NearestMipMapLinearFilter,9987:THREE.LinearMipMapLinearFilter},R={33071:THREE.ClampToEdgeWrapping,33648:THREE.MirroredRepeatWrapping,10497:THREE.RepeatWrapping},g={6406:THREE.AlphaFormat,6407:THREE.RGBFormat,6408:THREE.RGBAFormat,6409:THREE.LuminanceFormat,6410:THREE.LuminanceAlphaFormat},M={5121:THREE.UnsignedByteType,32819:THREE.UnsignedShort4444Type,32820:THREE.UnsignedShort5551Type,33635:THREE.UnsignedShort565Type},S=(THREE.BackSide,THREE.FrontSide,THREE.NeverDepth,THREE.LessDepth,THREE.EqualDepth,THREE.LessEqualDepth,THREE.GreaterEqualDepth,THREE.NotEqualDepth,THREE.GreaterEqualDepth,THREE.AlwaysDepth,THREE.AddEquation,THREE.SubtractEquation,THREE.ReverseSubtractEquation,THREE.ZeroFactor,THREE.OneFactor,THREE.SrcColorFactor,THREE.OneMinusSrcColorFactor,THREE.SrcAlphaFactor,THREE.OneMinusSrcAlphaFactor,THREE.DstAlphaFactor,THREE.OneMinusDstAlphaFactor,THREE.DstColorFactor,THREE.OneMinusDstColorFactor,THREE.SrcAlphaSaturateFactor,{SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16}),H={scale:\"scale\",translation:\"position\",rotation:\"quaternion\",weights:\"morphTargetInfluences\"},L={CATMULLROMSPLINE:THREE.InterpolateSmooth,CUBICSPLINE:THREE.InterpolateSmooth,LINEAR:THREE.InterpolateLinear,STEP:THREE.InterpolateDiscrete},A={OPAQUE:\"OPAQUE\",MASK:\"MASK\",BLEND:\"BLEND\"};return p.prototype._withDependencies=function(e){for(var a={},t=0;t1))return v;v.name+=\"_\"+o,s.add(v)}return s})})})},p.prototype.loadCamera=function(e){var a,t=this.json.cameras[e],r=t[t.type];if(!r)return void console.warn(\"THREE.GLTFLoader: Missing camera parameters.\");if(\"perspective\"===t.type){var n=r.aspectRatio||1,s=r.yfov*n;a=new THREE.PerspectiveCamera(THREE.Math.radToDeg(s),n,r.znear||1,r.zfar||2e6)}else\"orthographic\"===t.type&&(a=new THREE.OrthographicCamera(r.xmag/-2,r.xmag/2,r.ymag/2,r.ymag/-2,r.znear,r.zfar));return void 0!==t.name&&(a.name=t.name),t.extras&&(a.userData=t.extras),Promise.resolve(a)},p.prototype.loadSkins=function(){var e=this.json;return this._withDependencies([\"accessors\"]).then(function(a){return i(e.skins,function(e){return{joints:e.joints,inverseBindMatrices:a.accessors[e.inverseBindMatrices]}})})},p.prototype.loadAnimations=function(){var e=this.json;return this._withDependencies([\"accessors\",\"nodes\"]).then(function(a){return i(e.animations,function(e,t){for(var r=[],n=0;n1&&(n.name+=\"_instance_\"+o[e.mesh]++),n}if(void 0!==e.camera)return t.getDependency(\"camera\",e.camera);if(e.extensions&&e.extensions[d.KHR_LIGHTS]&&void 0!==e.extensions[d.KHR_LIGHTS].light){return a[d.KHR_LIGHTS].lights[e.extensions[d.KHR_LIGHTS].light]}return new THREE.Object3D}).then(function(a){return i(a,function(t,n){var s=e.nodes[n];if(void 0!==s.name&&(t.name=THREE.PropertyBinding.sanitizeNodeName(s.name)),s.extras&&(t.userData=s.extras),void 0!==s.matrix){var i=new THREE.Matrix4;i.fromArray(s.matrix),t.applyMatrix(i)}else void 0!==s.translation&&t.position.fromArray(s.translation),void 0!==s.rotation&&t.quaternion.fromArray(s.rotation),void 0!==s.scale&&t.scale.fromArray(s.scale);if(void 0!==s.skin){for(var o=[],l=t.children.length>0?t.children:[t],u=0;u0?(t.remove.apply(t,t.children),t.add.apply(t,o)):t=o[0]}return t})})})},p.prototype.loadScenes=function(){function e(t,r,n){var s=n[t];r.add(s);var i=a.nodes[t];if(i.children)for(var o=i.children,l=0,u=o.length;l=0?o.substring(0,n):o;p=p.toLowerCase();var h=n>=0?o.substring(n+1):\"\";if(h=h.trim(),\"newmtl\"===p)e={name:h},s[h]=e;else if(e)if(\"ka\"===p||\"kd\"===p||\"ks\"===p){var l=h.split(r,3);e[p]=[parseFloat(l[0]),parseFloat(l[1]),parseFloat(l[2])]}else e[p]=h}}var c=new THREE.MTLLoader.MaterialCreator(this.texturePath||this.path,this.materialOptions);return c.setCrossOrigin(this.crossOrigin),c.setManager(this.manager),c.setMaterials(s),c}},THREE.MTLLoader.MaterialCreator=function(t,a){this.baseUrl=t||\"\",this.options=a,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:THREE.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:THREE.RepeatWrapping},THREE.MTLLoader.MaterialCreator.prototype={constructor:THREE.MTLLoader.MaterialCreator,crossOrigin:\"Anonymous\",setCrossOrigin:function(t){this.crossOrigin=t},setManager:function(t){this.manager=t},setMaterials:function(t){this.materialsInfo=this.convert(t),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(t){if(!this.options)return t;var a={};for(var e in t){var r=t[e],s={};a[e]=s;for(var i in r){var o=!0,n=r[i],p=i.toLowerCase();switch(p){case\"kd\":case\"ka\":case\"ks\":this.options&&this.options.normalizeRGB&&(n=[n[0]/255,n[1]/255,n[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===n[0]&&0===n[1]&&0===n[2]&&(o=!1)}o&&(s[p]=n)}}return a},preload:function(){for(var t in this.materialsInfo)this.create(t)},getIndex:function(t){return this.nameLookup[t]},getAsArray:function(){var t=0;for(var a in this.materialsInfo)this.materialsArray[t]=this.create(a),this.nameLookup[a]=t,t++;return this.materialsArray},create:function(t){return void 0===this.materials[t]&&this.createMaterial_(t),this.materials[t]},createMaterial_:function(t){function a(t,a){return\"string\"!=typeof a||\"\"===a?\"\":/^https?:\\/\\//i.test(a)?a:t+a}function e(t,e){if(!i[t]){var s=r.getTextureParams(e,i),o=r.loadTexture(a(r.baseUrl,s.url));o.repeat.copy(s.scale),o.offset.copy(s.offset),o.wrapS=r.wrap,o.wrapT=r.wrap,i[t]=o}}var r=this,s=this.materialsInfo[t],i={name:t,side:this.side};for(var o in s){var n,p=s[o];if(\"\"!==p)switch(o.toLowerCase()){case\"kd\":i.color=(new THREE.Color).fromArray(p);break;case\"ks\":i.specular=(new THREE.Color).fromArray(p);break;case\"map_kd\":e(\"map\",p);break;case\"map_ks\":e(\"specularMap\",p);break;case\"norm\":e(\"normalMap\",p);break;case\"map_bump\":case\"bump\":e(\"bumpMap\",p);break;case\"ns\":i.shininess=parseFloat(p);break;case\"d\":n=parseFloat(p),n<1&&(i.opacity=n,i.transparent=!0);break;case\"tr\":n=parseFloat(p),n>0&&(i.opacity=1-n,i.transparent=!0)}}return this.materials[t]=new THREE.MeshPhongMaterial(i),this.materials[t]},getTextureParams:function(t,a){var e,r={scale:new THREE.Vector2(1,1),offset:new THREE.Vector2(0,0)},s=t.split(/\\s+/);return e=s.indexOf(\"-bm\"),e>=0&&(a.bumpScale=parseFloat(s[e+1]),s.splice(e,2)),e=s.indexOf(\"-s\"),e>=0&&(r.scale.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),e=s.indexOf(\"-o\"),e>=0&&(r.offset.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),r.url=s.join(\" \").trim(),r},loadTexture:function(t,a,e,r,s){var i,o=THREE.Loader.Handlers.get(t),n=void 0!==this.manager?this.manager:THREE.DefaultLoadingManager;return null===o&&(o=new THREE.TextureLoader(n)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin),i=o.load(t,e,r,s),void 0!==a&&(i.mapping=a),i}};","THREE.OBJLoader=function(){function t(){var t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materialLibraries:[],startObject:function(t,e){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=t,void(this.object.fromDeclaration=!1!==e);var r=this.object&&\"function\"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&\"function\"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:t||\"\",fromDeclaration:!1!==e,geometry:{vertices:[],normals:[],colors:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(t,e){var r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);var i={index:this.materials.length,name:t||\"\",mtllib:Array.isArray(e)&&e.length>0?e[e.length-1]:\"\",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(t){var e={index:\"number\"==typeof t?t:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return e.clone=this.clone.bind(e),e}};return this.materials.push(i),i},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(t){var e=this.currentMaterial();if(e&&-1===e.groupEnd&&(e.groupEnd=this.geometry.vertices.length/3,e.groupCount=e.groupEnd-e.groupStart,e.inherited=!1),t&&this.materials.length>1)for(var r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return t&&0===this.materials.length&&this.materials.push({name:\"\",smooth:this.smooth}),e}},r&&r.name&&\"function\"==typeof r.clone){var i=r.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&\"function\"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(t,e){var r=parseInt(t,10);return 3*(r>=0?r-1:r+e/3)},parseNormalIndex:function(t,e){var r=parseInt(t,10);return 3*(r>=0?r-1:r+e/3)},parseUVIndex:function(t,e){var r=parseInt(t,10);return 2*(r>=0?r-1:r+e/2)},addVertex:function(t,e,r){var i=this.vertices,s=this.object.geometry.vertices;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addVertexLine:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])},addNormal:function(t,e,r){var i=this.normals,s=this.object.geometry.normals;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addColor:function(t,e,r){var i=this.colors,s=this.object.geometry.colors;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addUV:function(t,e,r){var i=this.uvs,s=this.object.geometry.uvs;s.push(i[t+0],i[t+1]),s.push(i[e+0],i[e+1]),s.push(i[r+0],i[r+1])},addUVLine:function(t){var e=this.uvs;this.object.geometry.uvs.push(e[t+0],e[t+1])},addFace:function(t,e,r,i,s,a,n,o,h){var l=this.vertices.length,u=this.parseVertexIndex(t,l),c=this.parseVertexIndex(e,l),m=this.parseVertexIndex(r,l);if(this.addVertex(u,c,m),void 0!==i){var p=this.uvs.length;u=this.parseUVIndex(i,p),c=this.parseUVIndex(s,p),m=this.parseUVIndex(a,p),this.addUV(u,c,m)}if(void 0!==n){var f=this.normals.length;u=this.parseNormalIndex(n,f),c=n===o?u:this.parseNormalIndex(o,f),m=n===h?u:this.parseNormalIndex(h,f),this.addNormal(u,c,m)}this.colors.length>0&&this.addColor(u,c,m)},addLineGeometry:function(t,e){this.object.geometry.type=\"Line\";for(var r=this.vertices.length,i=this.uvs.length,s=0,a=t.length;s0){var j=E.split(\"/\");v.push(j)}}for(var x=v[0],g=1,b=v.length-1;g1){var M=l[1].trim().toLowerCase();a.object.smooth=\"0\"!==M&&\"off\"!==M}else a.object.smooth=!0;var B=a.object.currentMaterial();B&&(B.smooth=a.object.smooth)}a.finalize();var A=new THREE.Group;A.materialLibraries=[].concat(a.materialLibraries);for(var c=0,m=a.objects.length;c0?N.addAttribute(\"normal\",new THREE.Float32BufferAttribute(U.normals,3)):N.computeVertexNormals(),U.colors.length>0&&N.addAttribute(\"color\",new THREE.Float32BufferAttribute(U.colors,3)),U.uvs.length>0&&N.addAttribute(\"uv\",new THREE.Float32BufferAttribute(U.uvs,2));for(var S=[],_=0,G=C.length;_1){for(var _=0,G=C.length;_ 0) {\n\t\t\tthis._tweensAddedDuringUpdate = {};\n\n\t\t\tfor (var i = 0; i < tweenIds.length; i++) {\n\n\t\t\t\tif (this._tweens[tweenIds[i]].update(time) === false) {\n\t\t\t\t\tthis._tweens[tweenIds[i]]._isPlaying = false;\n\n\t\t\t\t\tif (!preserve) {\n\t\t\t\t\t\tdelete this._tweens[tweenIds[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttweenIds = Object.keys(this._tweensAddedDuringUpdate);\n\t\t}\n\n\t\treturn true;\n\n\t}\n};\n\nvar TWEEN = new _Group();\n\nTWEEN.Group = _Group;\nTWEEN._nextId = 0;\nTWEEN.nextId = function () {\n\treturn TWEEN._nextId++;\n};\n\n\n// Include a performance.now polyfill.\n// In node.js, use process.hrtime.\nif (typeof (window) === 'undefined' && typeof (process) !== 'undefined') {\n\tTWEEN.now = function () {\n\t\tvar time = process.hrtime();\n\n\t\t// Convert [seconds, nanoseconds] to milliseconds.\n\t\treturn time[0] * 1000 + time[1] / 1000000;\n\t};\n}\n// In a browser, use window.performance.now if it is available.\nelse if (typeof (window) !== 'undefined' &&\n window.performance !== undefined &&\n\t\t window.performance.now !== undefined) {\n\t// This must be bound, because directly assigning this function\n\t// leads to an invocation exception in Chrome.\n\tTWEEN.now = window.performance.now.bind(window.performance);\n}\n// Use Date.now if it is available.\nelse if (Date.now !== undefined) {\n\tTWEEN.now = Date.now;\n}\n// Otherwise, use 'new Date().getTime()'.\nelse {\n\tTWEEN.now = function () {\n\t\treturn new Date().getTime();\n\t};\n}\n\n\nTWEEN.Tween = function (object, group) {\n\tthis._object = object;\n\tthis._valuesStart = {};\n\tthis._valuesEnd = {};\n\tthis._valuesStartRepeat = {};\n\tthis._duration = 1000;\n\tthis._repeat = 0;\n\tthis._repeatDelayTime = undefined;\n\tthis._yoyo = false;\n\tthis._isPlaying = false;\n\tthis._reversed = false;\n\tthis._delayTime = 0;\n\tthis._startTime = null;\n\tthis._easingFunction = TWEEN.Easing.Linear.None;\n\tthis._interpolationFunction = TWEEN.Interpolation.Linear;\n\tthis._chainedTweens = [];\n\tthis._onStartCallback = null;\n\tthis._onStartCallbackFired = false;\n\tthis._onUpdateCallback = null;\n\tthis._onCompleteCallback = null;\n\tthis._onStopCallback = null;\n\tthis._group = group || TWEEN;\n\tthis._id = TWEEN.nextId();\n\n};\n\nTWEEN.Tween.prototype = {\n\tgetId: function getId() {\n\t\treturn this._id;\n\t},\n\n\tisPlaying: function isPlaying() {\n\t\treturn this._isPlaying;\n\t},\n\n\tto: function to(properties, duration) {\n\n\t\tthis._valuesEnd = properties;\n\n\t\tif (duration !== undefined) {\n\t\t\tthis._duration = duration;\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tstart: function start(time) {\n\n\t\tthis._group.add(this);\n\n\t\tthis._isPlaying = true;\n\n\t\tthis._onStartCallbackFired = false;\n\n\t\tthis._startTime = time !== undefined ? time : TWEEN.now();\n\t\tthis._startTime += this._delayTime;\n\n\t\tfor (var property in this._valuesEnd) {\n\n\t\t\t// Check if an Array was provided as property value\n\t\t\tif (this._valuesEnd[property] instanceof Array) {\n\n\t\t\t\tif (this._valuesEnd[property].length === 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Create a local copy of the Array with the start value at the front\n\t\t\t\tthis._valuesEnd[property] = [this._object[property]].concat(this._valuesEnd[property]);\n\n\t\t\t}\n\n\t\t\t// If `to()` specifies a property that doesn't exist in the source object,\n\t\t\t// we should not set that property in the object\n\t\t\tif (this._object[property] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Save the starting value.\n\t\t\tthis._valuesStart[property] = this._object[property];\n\n\t\t\tif ((this._valuesStart[property] instanceof Array) === false) {\n\t\t\t\tthis._valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n\t\t\t}\n\n\t\t\tthis._valuesStartRepeat[property] = this._valuesStart[property] || 0;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tstop: function stop() {\n\n\t\tif (!this._isPlaying) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis._group.remove(this);\n\t\tthis._isPlaying = false;\n\n\t\tif (this._onStopCallback !== null) {\n\t\t\tthis._onStopCallback.call(this._object, this._object);\n\t\t}\n\n\t\tthis.stopChainedTweens();\n\t\treturn this;\n\n\t},\n\n\tend: function end() {\n\n\t\tthis.update(this._startTime + this._duration);\n\t\treturn this;\n\n\t},\n\n\tstopChainedTweens: function stopChainedTweens() {\n\n\t\tfor (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n\t\t\tthis._chainedTweens[i].stop();\n\t\t}\n\n\t},\n\n\tdelay: function delay(amount) {\n\n\t\tthis._delayTime = amount;\n\t\treturn this;\n\n\t},\n\n\trepeat: function repeat(times) {\n\n\t\tthis._repeat = times;\n\t\treturn this;\n\n\t},\n\n\trepeatDelay: function repeatDelay(amount) {\n\n\t\tthis._repeatDelayTime = amount;\n\t\treturn this;\n\n\t},\n\n\tyoyo: function yoyo(yoyo) {\n\n\t\tthis._yoyo = yoyo;\n\t\treturn this;\n\n\t},\n\n\teasing: function easing(easing) {\n\n\t\tthis._easingFunction = easing;\n\t\treturn this;\n\n\t},\n\n\tinterpolation: function interpolation(interpolation) {\n\n\t\tthis._interpolationFunction = interpolation;\n\t\treturn this;\n\n\t},\n\n\tchain: function chain() {\n\n\t\tthis._chainedTweens = arguments;\n\t\treturn this;\n\n\t},\n\n\tonStart: function onStart(callback) {\n\n\t\tthis._onStartCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonUpdate: function onUpdate(callback) {\n\n\t\tthis._onUpdateCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonComplete: function onComplete(callback) {\n\n\t\tthis._onCompleteCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tonStop: function onStop(callback) {\n\n\t\tthis._onStopCallback = callback;\n\t\treturn this;\n\n\t},\n\n\tupdate: function update(time) {\n\n\t\tvar property;\n\t\tvar elapsed;\n\t\tvar value;\n\n\t\tif (time < this._startTime) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this._onStartCallbackFired === false) {\n\n\t\t\tif (this._onStartCallback !== null) {\n\t\t\t\tthis._onStartCallback.call(this._object, this._object);\n\t\t\t}\n\n\t\t\tthis._onStartCallbackFired = true;\n\t\t}\n\n\t\telapsed = (time - this._startTime) / this._duration;\n\t\telapsed = elapsed > 1 ? 1 : elapsed;\n\n\t\tvalue = this._easingFunction(elapsed);\n\n\t\tfor (property in this._valuesEnd) {\n\n\t\t\t// Don't update properties that do not exist in the source object\n\t\t\tif (this._valuesStart[property] === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar start = this._valuesStart[property] || 0;\n\t\t\tvar end = this._valuesEnd[property];\n\n\t\t\tif (end instanceof Array) {\n\n\t\t\t\tthis._object[property] = this._interpolationFunction(end, value);\n\n\t\t\t} else {\n\n\t\t\t\t// Parses relative end values with start as base (e.g.: +10, -3)\n\t\t\t\tif (typeof (end) === 'string') {\n\n\t\t\t\t\tif (end.charAt(0) === '+' || end.charAt(0) === '-') {\n\t\t\t\t\t\tend = start + parseFloat(end);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tend = parseFloat(end);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Protect against non numeric properties.\n\t\t\t\tif (typeof (end) === 'number') {\n\t\t\t\t\tthis._object[property] = start + (end - start) * value;\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif (this._onUpdateCallback !== null) {\n\t\t\tthis._onUpdateCallback.call(this._object, value);\n\t\t}\n\n\t\tif (elapsed === 1) {\n\n\t\t\tif (this._repeat > 0) {\n\n\t\t\t\tif (isFinite(this._repeat)) {\n\t\t\t\t\tthis._repeat--;\n\t\t\t\t}\n\n\t\t\t\t// Reassign starting values, restart by making startTime = now\n\t\t\t\tfor (property in this._valuesStartRepeat) {\n\n\t\t\t\t\tif (typeof (this._valuesEnd[property]) === 'string') {\n\t\t\t\t\t\tthis._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this._yoyo) {\n\t\t\t\t\t\tvar tmp = this._valuesStartRepeat[property];\n\n\t\t\t\t\t\tthis._valuesStartRepeat[property] = this._valuesEnd[property];\n\t\t\t\t\t\tthis._valuesEnd[property] = tmp;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._valuesStart[property] = this._valuesStartRepeat[property];\n\n\t\t\t\t}\n\n\t\t\t\tif (this._yoyo) {\n\t\t\t\t\tthis._reversed = !this._reversed;\n\t\t\t\t}\n\n\t\t\t\tif (this._repeatDelayTime !== undefined) {\n\t\t\t\t\tthis._startTime = time + this._repeatDelayTime;\n\t\t\t\t} else {\n\t\t\t\t\tthis._startTime = time + this._delayTime;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\n\t\t\t} else {\n\n\t\t\t\tif (this._onCompleteCallback !== null) {\n\n\t\t\t\t\tthis._onCompleteCallback.call(this._object, this._object);\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n\t\t\t\t\t// Make the chained tweens start exactly at the time they should,\n\t\t\t\t\t// even if the `update()` method was called way past the duration of the tween\n\t\t\t\t\tthis._chainedTweens[i].start(this._startTime + this._duration);\n\t\t\t\t}\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\n\nTWEEN.Easing = {\n\n\tLinear: {\n\n\t\tNone: function (k) {\n\n\t\t\treturn k;\n\n\t\t}\n\n\t},\n\n\tQuadratic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn k * (2 - k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k;\n\t\t\t}\n\n\t\t\treturn - 0.5 * (--k * (k - 2) - 1);\n\n\t\t}\n\n\t},\n\n\tCubic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn --k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k;\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * k + 2);\n\n\t\t}\n\n\t},\n\n\tQuartic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn 1 - (--k * k * k * k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k * k;\n\t\t\t}\n\n\t\t\treturn - 0.5 * ((k -= 2) * k * k * k - 2);\n\n\t\t}\n\n\t},\n\n\tQuintic: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k * k * k * k * k;\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn --k * k * k * k * k + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * k * k * k * k * k;\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * k * k * k + 2);\n\n\t\t}\n\n\t},\n\n\tSinusoidal: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - Math.cos(k * Math.PI / 2);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn Math.sin(k * Math.PI / 2);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\treturn 0.5 * (1 - Math.cos(Math.PI * k));\n\n\t\t}\n\n\t},\n\n\tExponential: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn k === 0 ? 0 : Math.pow(1024, k - 1);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn k === 1 ? 1 : 1 - Math.pow(2, - 10 * k);\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * Math.pow(1024, k - 1);\n\t\t\t}\n\n\t\t\treturn 0.5 * (- Math.pow(2, - 10 * (k - 1)) + 2);\n\n\t\t}\n\n\t},\n\n\tCircular: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - Math.sqrt(1 - k * k);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\treturn Math.sqrt(1 - (--k * k));\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn - 0.5 * (Math.sqrt(1 - k * k) - 1);\n\t\t\t}\n\n\t\t\treturn 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n\n\t\t}\n\n\t},\n\n\tElastic: {\n\n\t\tIn: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn -Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\treturn Math.pow(2, -10 * k) * Math.sin((k - 0.1) * 5 * Math.PI) + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k === 0) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tif (k === 1) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tk *= 2;\n\n\t\t\tif (k < 1) {\n\t\t\t\treturn -0.5 * Math.pow(2, 10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI);\n\t\t\t}\n\n\t\t\treturn 0.5 * Math.pow(2, -10 * (k - 1)) * Math.sin((k - 1.1) * 5 * Math.PI) + 1;\n\n\t\t}\n\n\t},\n\n\tBack: {\n\n\t\tIn: function (k) {\n\n\t\t\tvar s = 1.70158;\n\n\t\t\treturn k * k * ((s + 1) * k - s);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tvar s = 1.70158;\n\n\t\t\treturn --k * k * ((s + 1) * k + s) + 1;\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tvar s = 1.70158 * 1.525;\n\n\t\t\tif ((k *= 2) < 1) {\n\t\t\t\treturn 0.5 * (k * k * ((s + 1) * k - s));\n\t\t\t}\n\n\t\t\treturn 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n\n\t\t}\n\n\t},\n\n\tBounce: {\n\n\t\tIn: function (k) {\n\n\t\t\treturn 1 - TWEEN.Easing.Bounce.Out(1 - k);\n\n\t\t},\n\n\t\tOut: function (k) {\n\n\t\t\tif (k < (1 / 2.75)) {\n\t\t\t\treturn 7.5625 * k * k;\n\t\t\t} else if (k < (2 / 2.75)) {\n\t\t\t\treturn 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n\t\t\t} else if (k < (2.5 / 2.75)) {\n\t\t\t\treturn 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n\t\t\t} else {\n\t\t\t\treturn 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n\t\t\t}\n\n\t\t},\n\n\t\tInOut: function (k) {\n\n\t\t\tif (k < 0.5) {\n\t\t\t\treturn TWEEN.Easing.Bounce.In(k * 2) * 0.5;\n\t\t\t}\n\n\t\t\treturn TWEEN.Easing.Bounce.Out(k * 2 - 1) * 0.5 + 0.5;\n\n\t\t}\n\n\t}\n\n};\n\nTWEEN.Interpolation = {\n\n\tLinear: function (v, k) {\n\n\t\tvar m = v.length - 1;\n\t\tvar f = m * k;\n\t\tvar i = Math.floor(f);\n\t\tvar fn = TWEEN.Interpolation.Utils.Linear;\n\n\t\tif (k < 0) {\n\t\t\treturn fn(v[0], v[1], f);\n\t\t}\n\n\t\tif (k > 1) {\n\t\t\treturn fn(v[m], v[m - 1], m - f);\n\t\t}\n\n\t\treturn fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n\n\t},\n\n\tBezier: function (v, k) {\n\n\t\tvar b = 0;\n\t\tvar n = v.length - 1;\n\t\tvar pw = Math.pow;\n\t\tvar bn = TWEEN.Interpolation.Utils.Bernstein;\n\n\t\tfor (var i = 0; i <= n; i++) {\n\t\t\tb += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n\t\t}\n\n\t\treturn b;\n\n\t},\n\n\tCatmullRom: function (v, k) {\n\n\t\tvar m = v.length - 1;\n\t\tvar f = m * k;\n\t\tvar i = Math.floor(f);\n\t\tvar fn = TWEEN.Interpolation.Utils.CatmullRom;\n\n\t\tif (v[0] === v[m]) {\n\n\t\t\tif (k < 0) {\n\t\t\t\ti = Math.floor(f = m * (1 + k));\n\t\t\t}\n\n\t\t\treturn fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n\n\t\t} else {\n\n\t\t\tif (k < 0) {\n\t\t\t\treturn v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n\t\t\t}\n\n\t\t\tif (k > 1) {\n\t\t\t\treturn v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n\t\t\t}\n\n\t\t\treturn fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n\n\t\t}\n\n\t},\n\n\tUtils: {\n\n\t\tLinear: function (p0, p1, t) {\n\n\t\t\treturn (p1 - p0) * t + p0;\n\n\t\t},\n\n\t\tBernstein: function (n, i) {\n\n\t\t\tvar fc = TWEEN.Interpolation.Utils.Factorial;\n\n\t\t\treturn fc(n) / fc(i) / fc(n - i);\n\n\t\t},\n\n\t\tFactorial: (function () {\n\n\t\t\tvar a = [1];\n\n\t\t\treturn function (n) {\n\n\t\t\t\tvar s = 1;\n\n\t\t\t\tif (a[n]) {\n\t\t\t\t\treturn a[n];\n\t\t\t\t}\n\n\t\t\t\tfor (var i = n; i > 1; i--) {\n\t\t\t\t\ts *= i;\n\t\t\t\t}\n\n\t\t\t\ta[n] = s;\n\t\t\t\treturn s;\n\n\t\t\t};\n\n\t\t})(),\n\n\t\tCatmullRom: function (p0, p1, p2, p3, t) {\n\n\t\t\tvar v0 = (p2 - p0) * 0.5;\n\t\t\tvar v1 = (p3 - p1) * 0.5;\n\t\t\tvar t2 = t * t;\n\t\t\tvar t3 = t * t2;\n\n\t\t\treturn (2 * p1 - 2 * p2 + v0 + v1) * t3 + (- 3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n\n\t\t}\n\n\t}\n\n};\n\n// UMD (Universal Module Definition)\n(function (root) {\n\n\tif (typeof define === 'function' && define.amd) {\n\n\t\t// AMD\n\t\tdefine([], function () {\n\t\t\treturn TWEEN;\n\t\t});\n\n\t} else if (typeof module !== 'undefined' && typeof exports === 'object') {\n\n\t\t// Node.js\n\t\tmodule.exports = TWEEN;\n\n\t} else if (root !== undefined) {\n\n\t\t// Global variable\n\t\troot.TWEEN = TWEEN;\n\n\t}\n\n})(this);\n","var str = Object.prototype.toString\n\nmodule.exports = anArray\n\nfunction anArray(arr) {\n return (\n arr.BYTES_PER_ELEMENT\n && str.call(arr.buffer) === '[object ArrayBuffer]'\n || Array.isArray(arr)\n )\n}\n","module.exports = function numtype(num, def) {\n\treturn typeof num === 'number'\n\t\t? num \n\t\t: (typeof def === 'number' ? def : 0)\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction placeHoldersCount (b64) {\n var len = b64.length\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n}\n\nfunction byteLength (b64) {\n // base64 is 4/3 + up to two characters of the original data\n return (b64.length * 3 / 4) - placeHoldersCount(b64)\n}\n\nfunction toByteArray (b64) {\n var i, l, tmp, placeHolders, arr\n var len = b64.length\n placeHolders = placeHoldersCount(b64)\n\n arr = new Arr((len * 3 / 4) - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0; i < l; i += 4) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","'use strict';\n// For more information about browser field, check out the browser field at https://github.com/substack/browserify-handbook#browser-field.\n\nmodule.exports = {\n // Create a tag with optional data attributes\n createLink: function(href, attributes) {\n var head = document.head || document.getElementsByTagName('head')[0];\n var link = document.createElement('link');\n\n link.href = href;\n link.rel = 'stylesheet';\n\n for (var key in attributes) {\n if ( ! attributes.hasOwnProperty(key)) {\n continue;\n }\n var value = attributes[key];\n link.setAttribute('data-' + key, value);\n }\n\n head.appendChild(link);\n },\n // Create a