2016-10-07 18:56:00 +00:00
! function ( t ) { function e ( n ) { if ( i [ n ] ) return i [ n ] . exports ; var r = i [ n ] = { exports : { } , id : n , loaded : ! 1 } ; return t [ n ] . call ( r . exports , r , r . exports , e ) , r . loaded = ! 0 , r . exports } var i = { } ; return e . m = t , e . c = i , e . p = "assets/js" , e ( 0 ) } ( [ function ( t , e , i ) { t . exports = i ( 1 ) } , function ( t , e , i ) { "use strict" ; function n ( t ) { return t && t . _ _esModule ? t : { "default" : t } } function r ( ) { if ( c [ "default" ] . webgl ) { var t = document . getElementById ( "appContainer" ) ; new l [ "default" ] ( t ) } else c [ "default" ] . addGetWebGLMessage ( ) } var a = i ( 2 ) , o = n ( a ) , s = i ( 4 ) , c = n ( s ) , h = i ( 5 ) , l = n ( h ) ; o [ "default" ] . isDev = ! 0 , r ( ) } , function ( t , e , i ) { "use strict" ; function n ( t ) { return t && t . _ _esModule ? t : { "default" : t } } Object . defineProperty ( e , "__esModule" , { value : ! 0 } ) ; var r = i ( 3 ) , a = n ( r ) ; e [ "default" ] = { isDev : ! 1 , isLoaded : ! 1 , isTweening : ! 1 , isRotating : ! 0 , isMouseMoving : ! 1 , isMouseOver : ! 1 , maxAnisotropy : 1 , dpr : 1 , easing : a [ "default" ] . Easing . Quadratic . InOut , duration : 500 , model : { path : "./assets/models/Teapot.json" , scale : 20 } , texture : { path : "./assets/textures/" , imageFiles : [ { name : "UV" , image : "UV_Grid_Sm.jpg" } ] } , mesh : { enableHelper : ! 1 , wireframe : ! 1 , translucent : ! 1 , material : { color : 16777215 , emissive : 16777215 } } , fog : { color : 16777215 , near : 8e-4 } , camera : { fov : 40 , near : 2 , far : 1e3 , aspect : 1 , posX : 0 , posY : 30 , posZ : 40 } , controls : { autoRotate : ! 0 , autoRotateSpeed : - . 5 , rotateSpeed : . 5 , zoomSpeed : . 8 , minDistance : 200 , maxDistance : 600 , minPolarAngle : Math . PI / 5 , maxPolarAngle : Math . PI / 2 , minAzimuthAngle : - ( 1 / 0 ) , maxAzimuthAngle : 1 / 0 , enableDamping : ! 0 , dampingFactor : . 5 , enableZoom : ! 0 , target : { x : 0 , y : 0 , z : 0 } } , ambientLight : { enabled : ! 1 , color : 1315860 } , directionalLight : { enabled : ! 0 , color : 15790320 , intensity : . 4 , x : - 75 , y : 280 , z : 150 } , shadow : { enabled : ! 0 , helperEnabled : ! 0 , bias : 0 , mapWidth : 2048 , mapHeight : 2048 , near : 250 , far : 400 , top : 100 , right : 100 , bottom : - 100 , left : - 100 } , pointLight : { enabled : ! 0 , color : 16777215 , intensity : . 34 , distance : 115 , x : 0 , y : 0 , z : 0 } , hemiLight : { enabled : ! 0 , color : 13158600 , groundColor : 16777215 , intensity : . 55 , x : 0 , y : 0 , z : 0 } } } , function ( t , e , i ) { var n , r ; "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol && t !== Symbol . prototype ? "symbol" : typeof t } ; ! function ( ) { if ( "performance" in window == ! 1 && ( window . performance = { } ) , Date . now = Date . now || function ( ) { return ( new Date ) . getTime ( ) } , "now" in window . performance == ! 1 ) { var t = window . performance . timing && window . performance . timing . navigationStart ? window . performance . timing . navigationStart : Date . now ( ) ; window . performance . now = function ( ) { return Date . now ( ) - t } } } ( ) ; var a = a || function ( ) { var t = [ ] ; return { getAll : function ( ) { return t } , removeAll : function ( ) { t = [ ] } , add : function ( e ) { t . push ( e ) } , remove : function ( e ) { var i = t . indexOf ( e ) ; i !== - 1 && t . splice ( i , 1 ) } , update : function ( e ) { if ( 0 === t . length ) return ! 1 ; var i = 0 ; for ( e = void 0 !== e ? e : window . performance . now ( ) ; i < t . length ; ) t [ i ] . update ( e ) ? i ++ : t . splice ( i , 1 ) ; return ! 0 } } } ( ) ; a . Tween = function ( t ) { var e = t , i = { } , n = { } , r = { } , o = 1e3 , s = 0 , c = ! 1 , h = ! 1 , l = ! 1 , u = 0 , p = null , d = a . Easing . Linear . None , f = a . Interpolation . Linear , m = [ ] , g = null , v = ! 1 , y = null , x = null , _ = null ; for ( var b in t ) i [ b ] = parseFloat ( t [ b ] , 10 ) ; this . to = function ( t , e ) { return void 0 !== e && ( o = e ) , n = t , this } , this . start = function ( t ) { a . add ( this ) , h = ! 0 , v = ! 1 , p = void 0 !== t ? t : window . performance . now ( ) , p += u ; for ( var o in n ) { if ( n [ o ] instanceof Array ) { if ( 0 === n [ o ] . length ) continue ; n [ o ] = [ e [ o ] ] . concat ( n [ o ] ) } i [ o ] = e [ o ] , i [ o ] instanceof Array == ! 1 && ( i [ o ] *= 1 ) , r [ o ] = i [ o ] || 0 } return this } , this . stop = function ( ) { return h ? ( a . remove ( this ) , h = ! 1 , null !== _ && _ . call ( e ) , this . stopChainedTweens ( ) , this ) : this } , this . stopChainedTweens = function ( ) { for ( var t = 0 , e = m . length ; t < e ; t ++ ) m [ t ] . stop ( ) } , this . delay = function ( t ) { return u = t , this } , this . repeat = function ( t ) { return s = t , this } , this . yoyo = function ( t ) { return c = t , this } , this . easing = function ( t ) { return d = t , this } , this . interpolation = function ( t ) { return f = t , this } , this . chain = function ( ) { return m = arguments , this } , this . onStart = function ( t ) { return g = t , this } , this . onUpdate = function ( t ) { return y = t , this } , this . onComplete = function ( t ) { return x = t , this } , this . onStop = function ( t ) { return _ = t , this } , this . update = function ( t ) { var a , h , _ ; if ( t < p ) return ! 0 ; v === ! 1 && ( null !== g && g . call ( e ) , v = ! 0 ) , h = ( t - p ) / o , h = h > 1 ? 1 : h , _ = d ( h ) ; for ( a in n ) { var b = i [ a ] || 0 , w = n [ a ] ; w instanceof Array ? e [ a ] = f ( w , _ ) : ( "string" == typeof w && ( w =
A [ p ] = f ) ; var m = f [ d ] ; void 0 === m && ( m = o . clone ( ) , f [ d ] = m ) , o = m } o . visible = i . visible , o . wireframe = i . wireframe ; var g = i . side ; return B . renderSingleSided && g == _r && ( g = yr ) , B . renderReverseSided && ( g === yr ? g = xr : g === xr && ( g = yr ) ) , o . side = g , o . clipShadows = i . clipShadows , o . clippingPlanes = i . clippingPlanes , o . wireframeLinewidth = i . wireframeLinewidth , o . linewidth = i . linewidth , n && void 0 !== o . uniforms . lightPos && o . uniforms . lightPos . value . copy ( r ) , o } function u ( t , e , i ) { if ( t . visible !== ! 1 ) { var n = 0 !== ( t . layers . mask & e . layers . mask ) ; if ( n && ( t . isMesh || t . isLine || t . isPoints ) && t . castShadow && ( t . frustumCulled === ! 1 || f . intersectsObject ( t ) === ! 0 ) ) { var r = t . material ; r . visible === ! 0 && ( t . modelViewMatrix . multiplyMatrices ( i . matrixWorldInverse , t . matrixWorld ) , b . push ( t ) ) } for ( var a = t . children , o = 0 , s = a . length ; o < s ; o ++ ) u ( a [ o ] , e , i ) } } var p = e . context , d = e . state , f = new rt , m = new l , g = n . shadows , v = new i , y = new i ( s . maxTextureSize , s . maxTextureSize ) , x = new h , _ = new h , b = [ ] , w = 1 , M = 2 , S = ( w | M ) + 1 , T = new Array ( S ) , E = new Array ( S ) , A = { } , L = [ new h ( 1 , 0 , 0 ) , new h ( ( - 1 ) , 0 , 0 ) , new h ( 0 , 0 , 1 ) , new h ( 0 , 0 , ( - 1 ) ) , new h ( 0 , 1 , 0 ) , new h ( 0 , ( - 1 ) , 0 ) ] , P = [ new h ( 0 , 1 , 0 ) , new h ( 0 , 1 , 0 ) , new h ( 0 , 1 , 0 ) , new h ( 0 , 1 , 0 ) , new h ( 0 , 0 , 1 ) , new h ( 0 , 0 , ( - 1 ) ) ] , C = [ new a , new a , new a , new a , new a , new a ] , R = new $ ; R . depthPacking = Lo , R . clipping = ! 0 ; for ( var I = Uc . distanceRGBA , O = t . UniformsUtils . clone ( I . uniforms ) , U = 0 ; U !== S ; ++ U ) { var D = 0 !== ( U & w ) , N = 0 !== ( U & M ) , F = R . clone ( ) ; F . morphTargets = D , F . skinning = N , T [ U ] = F ; var z = new Q ( { defines : { USE _SHADOWMAP : "" } , uniforms : O , vertexShader : I . vertexShader , fragmentShader : I . fragmentShader , morphTargets : D , skinning : N , clipping : ! 0 } ) ; E [ U ] = z } var B = this ; this . enabled = ! 1 , this . autoUpdate = ! 0 , this . needsUpdate = ! 1 , this . type = gr , this . renderReverseSided = ! 0 , this . renderSingleSided = ! 0 , this . render = function ( t , i ) { if ( B . enabled !== ! 1 && ( B . autoUpdate !== ! 1 || B . needsUpdate !== ! 1 ) && 0 !== g . length ) { d . clearColor ( 1 , 1 , 1 , 1 ) , d . disable ( p . BLEND ) , d . setDepthTest ( ! 0 ) , d . setScissorTest ( ! 1 ) ; for ( var n , a , s = 0 , h = g . length ; s < h ; s ++ ) { var l = g [ s ] , w = l . shadow ; if ( void 0 !== w ) { var M = w . camera ; if ( v . copy ( w . mapSize ) , v . min ( y ) , l && l . isPointLight ) { n = 6 , a = ! 0 ; var S = v . x , T = v . y ; C [ 0 ] . set ( 2 * S , T , S , T ) , C [ 1 ] . set ( 0 , T , S , T ) , C [ 2 ] . set ( 3 * S , T , S , T ) , C [ 3 ] . set ( S , T , S , T ) , C [ 4 ] . set ( 3 * S , 0 , S , T ) , C [ 5 ] . set ( S , 0 , S , T ) , v . x *= 4 , v . y *= 2 } else n = 1 , a = ! 1 ; if ( null === w . map ) { var E = { minFilter : Sa , magFilter : Sa , format : Ha } ; w . map = new o ( v . x , v . y , E ) , M . updateProjectionMatrix ( ) } w && w . isSpotLightShadow && w . update ( l ) ; var A = w . map , R = w . matrix ; _ . setFromMatrixPosition ( l . matrixWorld ) , M . position . copy ( _ ) , e . setRenderTarget ( A ) , e . clear ( ) ; for ( var I = 0 ; I < n ; I ++ ) { if ( a ) { x . copy ( M . position ) , x . add ( L [ I ] ) , M . up . copy ( P [ I ] ) , M . lookAt ( x ) ; var O = C [ I ] ; d . viewport ( O ) } else x . setFromMatrixPosition ( l . target . matrixWorld ) , M . lookAt ( x ) ; M . updateMatrixWorld ( ) , M . matrixWorldInverse . getInverse ( M . matrixWorld ) , R . set ( . 5 , 0 , 0 , . 5 , 0 , . 5 , 0 , . 5 , 0 , 0 , . 5 , . 5 , 0 , 0 , 0 , 1 ) , R . multiply ( M . projectionMatrix ) , R . multiply ( M . matrixWorldInverse ) , m . multiplyMatrices ( M . projectionMatrix , M . matrixWorldInverse ) , f . setFromMatrix ( m ) , b . length = 0 , u ( t , i , M ) ; for ( var U = 0 , D = b . length ; U < D ; U ++ ) { var N = b [ U ] , F = r . update ( N ) , z = N . material ; if ( z && z . isMultiMaterial ) for ( var k = F . groups , G = z . materials , j = 0 , V = k . length ; j < V ; j ++ ) { var W = k [ j ] , H = G [ W . materialIndex ] ; if ( H . visible === ! 0 ) { var X = c ( N , H , a , _ ) ; e . renderBufferDirect ( M , null , F , X , N , W ) } } else { var X = c ( N , z , a , _ ) ; e . renderBufferDirect ( M , null , F , X , N , null ) } } } } } var Y = e . getClearColor ( ) , q = e . getClearAlpha ( ) ; e . setClearColor ( Y , q ) , B . needsUpdate = ! 1 } } } function ot ( t , e ) { this . origin = void 0 !== t ? t : new h , this . direction = void 0 !== e ? e : new h } function st ( t , e , i , n ) { this . _x = t || 0 , this . _y = e || 0 , this . _z = i || 0 , this . _order = n || st . DefaultOrder } function ct ( ) { this . mask = 1 } function ht ( ) { function e ( ) { a . setFromEuler ( r , ! 1 ) } function i ( ) { r . setFromQuaternion ( a , void 0 , ! 1 ) } Object . defineProperty ( this , "id" , { value : lt ( ) } ) , this . uuid = t . Math . generateUUID ( ) , this . name = "" , this . type = "Object3D" , this . parent = null , this . children = [ ] , this . up = ht . DefaultUp . clone ( ) ; var n = new h , r = new st , a = new c , o = new h ( 1 , 1 , 1 ) ; r . onChange ( e ) , a . onChange ( i ) , Object . defineProperties ( this , { position : { enumerable : ! 0 , value : n } , rotation : { enumerable : ! 0 , value : r } , quaternion : { enumerable : ! 0 , value : a } , scale : { enumerable : ! 0 , value : o } , modelViewMatrix : { value : new l } , normalMatrix : { value : new it } } ) , this . matrix = new l , this . matrixWorld = new l , this . matrixAutoUpdate = ht . DefaultMatrixAutoU
n . texImage2D ( e . TEXTURE _2D , x , f , g . width , g . height , 0 , f , m , g . data ) ; i . generateMipmaps = ! 1 } else n . texImage2D ( e . TEXTURE _2D , 0 , f , s . width , s . height , 0 , f , m , s . data ) ; else if ( i && i . isCompressedTexture ) for ( var x = 0 , b = v . length ; x < b ; x ++ ) g = v [ x ] , i . format !== Ha && i . format !== Wa ? n . getCompressedTextureFormats ( ) . indexOf ( f ) > - 1 && n . compressedTexImage2D ( e . TEXTURE _2D , x , f , g . width , g . height , 0 , g . data ) : n . texImage2D ( e . TEXTURE _2D , x , f , g . width , g . height , 0 , f , m , g . data ) ; else if ( v . length > 0 && p ) { for ( var x = 0 , b = v . length ; x < b ; x ++ ) g = v [ x ] , n . texImage2D ( e . TEXTURE _2D , x , f , f , m , g ) ; i . generateMipmaps = ! 1 } else n . texImage2D ( e . TEXTURE _2D , 0 , f , f , m , s ) ; i . generateMipmaps && p && e . generateMipmap ( e . TEXTURE _2D ) , t . _ _version = i . version , i . onUpdate && i . onUpdate ( i ) } function w ( t , i , a , s ) { var c = o ( i . texture . format ) , h = o ( i . texture . type ) ; n . texImage2D ( s , 0 , c , i . width , i . height , 0 , c , h , null ) , e . bindFramebuffer ( e . FRAMEBUFFER , t ) , e . framebufferTexture2D ( e . FRAMEBUFFER , a , s , r . get ( i . texture ) . _ _webglTexture , 0 ) , e . bindFramebuffer ( e . FRAMEBUFFER , null ) } function M ( t , i ) { e . bindRenderbuffer ( e . RENDERBUFFER , t ) , i . depthBuffer && ! i . stencilBuffer ? ( e . renderbufferStorage ( e . RENDERBUFFER , e . DEPTH _COMPONENT16 , i . width , i . height ) , e . framebufferRenderbuffer ( e . FRAMEBUFFER , e . DEPTH _ATTACHMENT , e . RENDERBUFFER , t ) ) : i . depthBuffer && i . stencilBuffer ? ( e . renderbufferStorage ( e . RENDERBUFFER , e . DEPTH _STENCIL , i . width , i . height ) , e . framebufferRenderbuffer ( e . FRAMEBUFFER , e . DEPTH _STENCIL _ATTACHMENT , e . RENDERBUFFER , t ) ) : e . renderbufferStorage ( e . RENDERBUFFER , e . RGBA4 , i . width , i . height ) , e . bindRenderbuffer ( e . RENDERBUFFER , null ) } function S ( t , i ) { var n = i && i . isWebGLRenderTargetCube ; if ( n ) throw new Error ( "Depth Texture with cube render targets is not supported!" ) ; if ( e . bindFramebuffer ( e . FRAMEBUFFER , t ) , ! i . depthTexture || ! i . depthTexture . isDepthTexture ) throw new Error ( "renderTarget.depthTexture must be an instance of THREE.DepthTexture" ) ; r . get ( i . depthTexture ) . _ _webglTexture && i . depthTexture . image . width === i . width && i . depthTexture . image . height === i . height || ( i . depthTexture . image . width = i . width , i . depthTexture . image . height = i . height , i . depthTexture . needsUpdate = ! 0 ) , v ( i . depthTexture , 0 ) ; var a = r . get ( i . depthTexture ) . _ _webglTexture ; if ( i . depthTexture . format === Za ) e . framebufferTexture2D ( e . FRAMEBUFFER , e . DEPTH _ATTACHMENT , e . TEXTURE _2D , a , 0 ) ; else { if ( i . depthTexture . format !== Ja ) throw new Error ( "Unknown depthTexture format" ) ; e . framebufferTexture2D ( e . FRAMEBUFFER , e . DEPTH _STENCIL _ATTACHMENT , e . TEXTURE _2D , a , 0 ) } } function T ( t ) { var i = r . get ( t ) , n = t && t . isWebGLRenderTargetCube ; if ( t . depthTexture ) { if ( n ) throw new Error ( "target.depthTexture not supported in Cube render targets" ) ; S ( i . _ _webglFramebuffer , t ) } else if ( n ) { i . _ _webglDepthbuffer = [ ] ; for ( var a = 0 ; a < 6 ; a ++ ) e . bindFramebuffer ( e . FRAMEBUFFER , i . _ _webglFramebuffer [ a ] ) , i . _ _webglDepthbuffer [ a ] = e . createRenderbuffer ( ) , M ( i . _ _webglDepthbuffer [ a ] , t ) } else e . bindFramebuffer ( e . FRAMEBUFFER , i . _ _webglFramebuffer ) , i . _ _webglDepthbuffer = e . createRenderbuffer ( ) , M ( i . _ _webglDepthbuffer , t ) ; e . bindFramebuffer ( e . FRAMEBUFFER , null ) } function E ( t ) { var i = r . get ( t ) , a = r . get ( t . texture ) ; t . addEventListener ( "dispose" , f ) , a . _ _webglTexture = e . createTexture ( ) , L . textures ++ ; var o = t && t . isWebGLRenderTargetCube , s = h ( t ) ; if ( o ) { i . _ _webglFramebuffer = [ ] ; for ( var c = 0 ; c < 6 ; c ++ ) i . _ _webglFramebuffer [ c ] = e . createFramebuffer ( ) } else i . _ _webglFramebuffer = e . createFramebuffer ( ) ; if ( o ) { n . bindTexture ( e . TEXTURE _CUBE _MAP , a . _ _webglTexture ) , _ ( e . TEXTURE _CUBE _MAP , t . texture , s ) ; for ( var c = 0 ; c < 6 ; c ++ ) w ( i . _ _webglFramebuffer [ c ] , t , e . COLOR _ATTACHMENT0 , e . TEXTURE _CUBE _MAP _POSITIVE _X + c ) ; t . texture . generateMipmaps && s && e . generateMipmap ( e . TEXTURE _CUBE _MAP ) , n . bindTexture ( e . TEXTURE _CUBE _MAP , null ) } else n . bindTexture ( e . TEXTURE _2D , a . _ _webglTexture ) , _ ( e . TEXTURE _2D , t . texture , s ) , w ( i . _ _webglFramebuffer , t , e . COLOR _ATTACHMENT0 , e . TEXTURE _2D ) , t . texture . generateMipmaps && s && e . generateMipmap ( e . TEXTURE _2D ) , n . bindTexture ( e . TEXTURE _2D , null ) ; t . depthBuffer && T ( t ) } function A ( t ) { var i = t . texture ; if ( i . generateMipmaps && h ( t ) && i . minFilter !== Sa && i . minFilter !== Aa ) { var a = t && t . isWebGLRenderTargetCube ? e . TEXTURE _CUBE _MAP : e . TEXTURE _2D , o = r . get ( i ) . _ _webglTexture ; n . bindTexture ( a , o ) , e . generateMipmap ( a ) , n . bindTexture ( a , null ) } } var L = s . memory , P = "undefined" != typeof WebGL2RenderingContext && e instanceof WebGL2RenderingContext ; this . setT
vertices : 0 , faces : 0 , points : 0 } ; this . info = { render : Yt , memory : { geometries : 0 , textures : 0 } , programs : null } ; var qt ; try { var Zt = { alpha : j , depth : V , stencil : W , antialias : Y , premultipliedAlpha : J , preserveDrawingBuffer : K } ; if ( qt = G || k . getContext ( "webgl" , Zt ) || k . getContext ( "experimental-webgl" , Zt ) , null === qt ) throw null !== k . getContext ( "webgl" ) ? "Error creating WebGL context with your selected attributes." : "Error creating WebGL context." ; void 0 === qt . getShaderPrecisionFormat && ( qt . getShaderPrecisionFormat = function ( ) { return { rangeMin : 1 , rangeMax : 1 , precision : 1 } } ) , k . addEventListener ( "webglcontextlost" , s , ! 1 ) } catch ( Jt ) { } var Kt = new ae ( qt ) ; Kt . get ( "WEBGL_depth_texture" ) , Kt . get ( "OES_texture_float" ) , Kt . get ( "OES_texture_float_linear" ) , Kt . get ( "OES_texture_half_float" ) , Kt . get ( "OES_texture_half_float_linear" ) , Kt . get ( "OES_standard_derivatives" ) , Kt . get ( "ANGLE_instanced_arrays" ) , Kt . get ( "OES_element_index_uint" ) && ( Pt . MaxIndex = 4294967296 ) ; var $t = new re ( qt , Kt , e ) , se = new ne ( qt , Kt , B ) , ce = new ie , he = new ee ( qt , Kt , se , ce , $t , B , this . info ) , le = new te ( qt , ce , this . info ) , ue = new Qt ( this , $t ) , pe = new zt ; this . info . programs = ue . programs ; var de = new Ft ( qt , Kt , Yt ) , fe = new Nt ( qt , Kt , Yt ) , me = new Dt ( ( - 1 ) , 1 , 1 , ( - 1 ) , 0 , 1 ) , ge = new Ut , ve = new Ct ( new It ( 2 , 2 ) , new ft ( { depthTest : ! 1 , depthWrite : ! 1 , fog : ! 1 } ) ) , ye = Uc . cube , xe = new Ct ( new Rt ( 5 , 5 , 5 ) , new Q ( { uniforms : ye . uniforms , vertexShader : ye . vertexShader , fragmentShader : ye . fragmentShader , side : xr , depthTest : ! 1 , depthWrite : ! 1 , fog : ! 1 } ) ) ; r ( ) , this . context = qt , this . capabilities = $t , this . extensions = Kt , this . properties = ce , this . state = se ; var _e = new at ( this , Xt , le , $t ) ; this . shadowMap = _e ; var be = new Z ( this , ct ) , we = new q ( this , ht ) ; this . getContext = function ( ) { return qt } , this . getContextAttributes = function ( ) { return qt . getContextAttributes ( ) } , this . forceContextLoss = function ( ) { Kt . get ( "WEBGL_lose_context" ) . loseContext ( ) } , this . getMaxAnisotropy = function ( ) { return $t . getMaxAnisotropy ( ) } , this . getPrecision = function ( ) { return $t . precision } , this . getPixelRatio = function ( ) { return Et } , this . setPixelRatio = function ( t ) { void 0 !== t && ( Et = t , this . setSize ( Ot . z , Ot . w , ! 1 ) ) } , this . getSize = function ( ) { return { width : St , height : Tt } } , this . setSize = function ( t , e , i ) { St = t , Tt = e , k . width = t * Et , k . height = e * Et , i !== ! 1 && ( k . style . width = t + "px" , k . style . height = e + "px" ) , this . setViewport ( 0 , 0 , t , e ) } , this . setViewport = function ( t , e , i , n ) { se . viewport ( Ot . set ( t , e , i , n ) ) } , this . setScissor = function ( t , e , i , n ) { se . scissor ( At . set ( t , e , i , n ) ) } , this . setScissorTest = function ( t ) { se . setScissorTest ( Lt = t ) } , this . getClearColor = function ( ) { return wt } , this . setClearColor = function ( t , e ) { wt . set ( t ) , Mt = void 0 !== e ? e : 1 , n ( wt . r , wt . g , wt . b , Mt ) } , this . getClearAlpha = function ( ) { return Mt } , this . setClearAlpha = function ( t ) { Mt = t , n ( wt . r , wt . g , wt . b , Mt ) } , this . clear = function ( t , e , i ) { var n = 0 ; ( void 0 === t || t ) && ( n |= qt . COLOR _BUFFER _BIT ) , ( void 0 === e || e ) && ( n |= qt . DEPTH _BUFFER _BIT ) , ( void 0 === i || i ) && ( n |= qt . STENCIL _BUFFER _BIT ) , qt . 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 . resetGLState = o , this . dispose = function ( ) { nt = [ ] , ot = - 1 , tt = [ ] , it = - 1 , k . removeEventListener ( "webglcontextlost" , s , ! 1 ) } , this . renderBufferImmediate = function ( t , e , i ) { se . initAttributes ( ) ; var n = ce . get ( t ) ; t . hasPositions && ! n . position && ( n . position = qt . createBuffer ( ) ) , t . hasNormals && ! n . normal && ( n . normal = qt . createBuffer ( ) ) , t . hasUvs && ! n . uv && ( n . uv = qt . createBuffer ( ) ) , t . hasColors && ! n . color && ( n . color = qt . createBuffer ( ) ) ; var r = e . getAttributes ( ) ; if ( t . hasPositions && ( qt . bindBuffer ( qt . ARRAY _BUFFER , n . position ) , qt . bufferData ( qt . ARRAY _BUFFER , t . positionArray , qt . DYNAMIC _DRAW ) , se . enableAttribute ( r . position ) , qt . vertexAttribPointer ( r . position , 3 , qt . FLOAT , ! 1 , 0 , 0 ) ) , t . hasNormals ) { if ( qt . bindBuffer ( qt . ARRAY _BUFFER , n . normal ) , ! i . isMeshPhongMaterial && ! i . isMeshStandardMaterial && i . shading === br ) for ( var a = 0 , o = 3 * t . count ; a < o ; a += 9 ) { var s = t . normalArray , c = ( s [ a + 0 ] + s [ a + 3 ] + s [ a + 6 ] ) / 3 , h = ( s [ a + 1 ] + s [ a + 4 ] + s [ a + 7 ] ) / 3 , l = ( s [ a + 2 ] + s [ a + 5 ] + s [ a + 8 ] ) / 3 ; s [ a + 0 ] = c , s [ a + 1 ] = h , s [ a + 2 ] = l , s [ a + 3 ] = c , s [ a + 4 ] = h , s [ a + 5 ] = l , s [ a + 6 ] = c , s [ a + 7 ] = h , s [ a + 8 ] = l } qt . bufferData ( qt . ARRAY _BUFFER , t . normalArray , qt . DYNAMIC _DRAW ) , se . enableAttribute ( r . normal ) , qt . vertexAttribPointer ( r .
} , set : function ( t ) { this . uniforms . opacity . value = t } } } ) } function oi ( t ) { Q . call ( this , t ) , this . type = "RawShaderMaterial" } function si ( e ) { this . uuid = t . Math . generateUUID ( ) , this . type = "MultiMaterial" , this . materials = e instanceof Array ? e : [ ] , this . visible = ! 0 } function ci ( t ) { J . call ( this ) , this . defines = { STANDARD : "" } , this . type = "MeshStandardMaterial" , this . color = new X ( 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 X ( 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 ) } function hi ( t ) { ci . call ( this ) , this . defines = { PHYSICAL : "" } , this . type = "MeshPhysicalMaterial" , this . reflectivity = . 5 , this . clearCoat = 0 , this . clearCoatRoughness = 0 , this . setValues ( t ) } function li ( t ) { J . call ( this ) , this . type = "MeshPhongMaterial" , this . color = new X ( 16777215 ) , this . specular = new X ( 1118481 ) , this . shininess = 30 , this . map = null , this . lightMap = null , this . lightMapIntensity = 1 , this . aoMap = null , this . aoMapIntensity = 1 , this . emissive = new X ( 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 = na , 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 ui ( t ) { J . call ( this , t ) , this . type = "MeshNormalMaterial" , this . wireframe = ! 1 , this . wireframeLinewidth = 1 , this . fog = ! 1 , this . lights = ! 1 , this . morphTargets = ! 1 , this . setValues ( t ) } function pi ( t ) { J . call ( this ) , this . type = "MeshLambertMaterial" , this . color = new X ( 16777215 ) , this . map = null , this . lightMap = null , this . lightMapIntensity = 1 , this . aoMap = null , this . aoMapIntensity = 1 , this . emissive = new X ( 0 ) , this . emissiveIntensity = 1 , this . emissiveMap = null , this . specularMap = null , this . alphaMap = null , this . envMap = null , this . combine = na , 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 ) { J . call ( this ) , this . type = "LineDashedMaterial" , this . color = new X ( 16777215 ) , this . linewidth = 1 , this . scale = 1 , this . dashSize = 3 , this . gapSize = 1 , this . lights = ! 1 , this . setValues ( t ) } function fi ( t , e , i ) { var n = this , r = ! 1 , a = 0 , o = 0 ; this . onStart = void 0 , this . onLoad = t , this . onProgress = e , this . onError = i , this . itemStart = function ( t ) { o ++ , r === ! 1 && 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 ) } } function mi ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager } function gi ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager , this . _parser = null } function vi ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager , this . _parser = null } function yi ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager } function xi ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager } function _i ( e ) { this . manager = void 0 !== e ? e : t . DefaultLoadingManager } function bi ( t , e ) { ht . call ( this ) , this . type = "Light" , this . color = new X ( t ) , this . intensity = void 0 !== e ? e : 1 , this . receiveShadow = void 0 } function wi ( t , e , i ) { bi . call ( this , t , i ) , this . type = "HemisphereLight" , this . castShadow = void 0 , this . position . copy ( ht . DefaultUp ) , this . updateMatrix ( ) , this . groundColor = new X ( e ) } function Mi ( t ) { this . camera = t , this . bias = 0 , this . radius = 1 , this . mapSize = new i ( 512 , 512 ) , this . map = null , this . matrix = new l } function Si ( ) { Mi . call ( this , new U
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 = . 01 , o = . 1 , s = t . elements , c = s [ 0 ] , h = s [ 4 ] , l = s [ 8 ] , u = s [ 1 ] , p = s [ 5 ] , d = s [ 9 ] , f = s [ 2 ] , m = s [ 6 ] , g = s [ 10 ] ; if ( Math . abs ( h - u ) < a && Math . abs ( l - f ) < a && Math . abs ( d - m ) < a ) { if ( Math . abs ( h + u ) < o && Math . abs ( l + f ) < o && Math . abs ( d + m ) < o && Math . abs ( c + p + g - 3 ) < o ) return this . set ( 1 , 0 , 0 , 0 ) , this ; e = Math . PI ; var v = ( c + 1 ) / 2 , y = ( p + 1 ) / 2 , x = ( g + 1 ) / 2 , _ = ( h + u ) / 4 , b = ( l + f ) / 4 , w = ( d + m ) / 4 ; return v > y && v > x ? v < a ? ( i = 0 , n = . 707106781 , r = . 707106781 ) : ( i = Math . sqrt ( v ) , n = _ / i , r = b / i ) : y > x ? y < a ? ( i = . 707106781 , n = 0 , r = . 707106781 ) : ( n = Math . sqrt ( y ) , i = _ / n , r = w / n ) : x < a ? ( i = . 707106781 , n = . 707106781 , r = 0 ) : ( r = Math . sqrt ( x ) , i = b / r , n = w / r ) , this . set ( i , n , r , e ) , this } var M = Math . sqrt ( ( m - d ) * ( m - d ) + ( l - f ) * ( l - f ) + ( u - h ) * ( u - h ) ) ; return Math . abs ( M ) < . 001 && ( M = 1 ) , this . x = ( m - d ) / M , this . y = ( l - f ) / M , this . z = ( u - h ) / M , this . w = Math . acos ( ( c + p + g - 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 a , e = new a ) , t . set ( i , i , i , i ) , e . set ( n , n , n , n ) , this . clamp ( t , e ) } } ( ) , 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 ) } , lengthManhattan : 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 ( ) ) } , setLength : function ( t ) { return this . multiplyScalar ( t / this . length ( ) ) } , 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 } , fromAttribute : function ( t , e , i ) { return void 0 === i && ( i = 0 ) , e = e * t . itemSize + i , this . x = t . array [ e ] , this . y = t . array [ e + 1 ] , this . z = t . array [ e + 2 ] , this . w = t . array [ e + 3 ] , this } } , Object . assign ( o . 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 ( ) { t
alphamap _fragment : Do , alphamap _pars _fragment : No , alphatest _fragment : Fo , aomap _fragment : zo , aomap _pars _fragment : Bo , begin _vertex : ko , beginnormal _vertex : Go , bsdfs : jo , bumpmap _pars _fragment : Vo , clipping _planes _fragment : Wo , clipping _planes _pars _fragment : Ho , clipping _planes _pars _vertex : Xo , clipping _planes _vertex : Yo , color _fragment : qo , color _pars _fragment : Zo , color _pars _vertex : Jo , color _vertex : Ko , common : Qo , cube _uv _reflection _fragment : $o , defaultnormal _vertex : ts , displacementmap _pars _vertex : es , displacementmap _vertex : is , emissivemap _fragment : ns , emissivemap _pars _fragment : rs , encodings _fragment : as , encodings _pars _fragment : os , envmap _fragment : ss , envmap _pars _fragment : cs , envmap _pars _vertex : hs , envmap _vertex : ls , fog _fragment : us , fog _pars _fragment : ps , lightmap _fragment : ds , lightmap _pars _fragment : fs , lights _lambert _vertex : ms , lights _pars : gs , lights _phong _fragment : vs , lights _phong _pars _fragment : ys , lights _physical _fragment : xs , lights _physical _pars _fragment : _s , lights _template : bs , logdepthbuf _fragment : ws , logdepthbuf _pars _fragment : Ms , logdepthbuf _pars _vertex : Ss , logdepthbuf _vertex : Ts , map _fragment : Es , map _pars _fragment : As , map _particle _fragment : Ls , map _particle _pars _fragment : Ps , metalnessmap _fragment : Cs , metalnessmap _pars _fragment : Rs , morphnormal _vertex : Is , morphtarget _pars _vertex : Os , morphtarget _vertex : Us , normal _flip : Ds , normal _fragment : Ns , normalmap _pars _fragment : Fs , packing : zs , premultiplied _alpha _fragment : Bs , project _vertex : ks , roughnessmap _fragment : Gs , roughnessmap _pars _fragment : js , shadowmap _pars _fragment : Vs , shadowmap _pars _vertex : Ws , shadowmap _vertex : Hs , shadowmask _pars _fragment : Xs , skinbase _vertex : Ys , skinning _pars _vertex : qs , skinning _vertex : Zs , skinnormal _vertex : Js , specularmap _fragment : Ks , specularmap _pars _fragment : Qs , tonemapping _fragment : $s , tonemapping _pars _fragment : tc , uv _pars _fragment : ec , uv _pars _vertex : ic , uv _vertex : nc , uv2 _pars _fragment : rc , uv2 _pars _vertex : ac , uv2 _vertex : oc , worldpos _vertex : sc , cube _frag : cc , cube _vert : hc , depth _frag : lc , depth _vert : uc , distanceRGBA _frag : pc , distanceRGBA _vert : dc , equirect _frag : fc , equirect _vert : mc , linedashed _frag : gc , linedashed _vert : vc , meshbasic _frag : yc , meshbasic _vert : xc , meshlambert _frag : _c , meshlambert _vert : bc , meshphong _frag : wc , meshphong _vert : Mc , meshphysical _frag : Sc , meshphysical _vert : Tc , normal _frag : Ec , normal _vert : Ac , points _frag : Lc , points _vert : Pc , shadow _frag : Cc , shadow _vert : Rc } ; X . prototype = { constructor : X , 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 ) { this . r = t , this . g = t , this . b = t } , 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 e ( 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 ( i , n , r ) { if ( i = t . Math . euclideanModulo ( i , 1 ) , n = t . Math . clamp ( n , 0 , 1 ) , r = t . Math . clamp ( r , 0 , 1 ) , 0 === n ) this . r = this . g = this . b = r ; else { var a = r <= . 5 ? r * ( 1 + n ) : r + n - r * n , o = 2 * r - a ; this . r = e ( o , a , i + 1 / 3 ) , this . g = e ( o , a , i ) , this . b = e ( o , a , i - 1 / 3 ) } return this } } ( ) , setStyle : function ( e ) { function i ( t ) { void 0 !== t && parseFloat ( t ) < 1 } var n ; if ( n = /^((?:rgb|hsl)a?)\(\s*([^\)]*)\)/ . exec ( e ) ) { var r , a = n [ 1 ] , o = n [ 2 ] ; switch ( a ) { case "rgb" : case "rgba" : if ( r = /^(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/ . exec ( o ) ) return this . r = Math . min ( 255 , parseInt ( r [ 1 ] , 10 ) ) / 255 , this . g = Math . min ( 255 , parseInt ( r [ 2 ] , 10 ) ) / 255 , this . b = Math . min ( 255 , parseInt ( r [ 3 ] , 10 ) ) / 255 , i ( r [ 5 ] ) , this ; if ( r = /^(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/ . exec ( o ) ) return this . r = Math . min ( 100 , parseInt ( r [ 1 ] , 10 ) ) / 100 , this . g = Math . min ( 100 , parseInt ( r [ 2 ] , 10 ) ) / 100 , this . b = Math . min ( 100 , parseInt ( r [ 3 ] , 10 ) ) / 100 , i ( r [ 5 ] ) , this ; break ; case "hsl" : case "hsla" : if ( r = /^([0-9]*\.?[0-9]+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(,\s*([0-9]*\.?[0-9]+)\s*)?$/ . exec ( o ) ) { var s = parseFloat ( r [ 1 ] ) / 360 , c = parseInt ( r [ 2 ] , 10 ) / 100 , h = parseInt ( r [ 3 ] , 10 ) / 100 ; return i ( r [ 5 ] ) , this . setHSL ( s , c , h ) } } } else if ( n = /^\#([A-Fa-f0-9]+)$/ . exec ( e ) ) { var l = n [ 1 ] , u = l . length ; if ( 3 === u ) return this . r = parseInt ( l . charAt ( 0 ) + l . charAt ( 0 ) , 16 ) / 255 , this . g = parseInt ( l . charAt ( 1 ) + l . charAt ( 1 ) , 16 ) / 255 , this . b = parseInt ( l . charAt ( 2 ) + l . charAt
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 et ; 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 et ; 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 ++ ) { var a = e [ r ] . distanceToPoint ( i ) ; if ( a < n ) return ! 1 } return ! 0 } , intersectsBox : function ( ) { var t = new h , e = new h ; return function ( i ) { for ( var n = this . planes , r = 0 ; r < 6 ; r ++ ) { var a = n [ r ] ; t . x = a . normal . x > 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 } } , ot . prototype = { constructor : ot , set : function ( t , e ) { return this . origin . copy ( t ) , this . direction . copy ( e ) , this } , clone : function ( ) { return ( new this . constructor ) . copy ( this ) } , copy : function ( t ) { return this . origin . copy ( t . origin ) , this . direction . copy ( t . direction ) , this } , at : function ( t , e ) { var i = e || new h ; return i . copy ( this . direction ) . multiplyScalar ( t ) . add ( this . origin ) } , lookAt : function ( t ) { return this . direction . copy ( t ) . sub ( this . origin ) . normalize ( ) , this } , recast : function ( ) { var t = new h ; return function ( e ) { return this . origin . copy ( this . at ( e , t ) ) , this } } ( ) , closestPointToPoint : function ( t , e ) { var i = e || new h ; i . subVectors ( t , this . origin ) ; var n = i . dot ( this . direction ) ; return n < 0 ? i . copy ( this . origin ) : i . copy ( this . direction ) . multiplyScalar ( n ) . add ( this . origin ) } , distanceToPoint : function ( t ) { return Math . sqrt ( this . distanceSqToPoint ( t ) ) } , distanceSqToPoint : function ( ) { var t = new h ; return function ( e ) { var i = t . subVectors ( e , this . origin ) . dot ( this . direction ) ; return i < 0 ? this . origin . distanceToSquared ( e ) : ( t . copy ( this . direction ) . multiplyScalar ( i ) . add ( this . origin ) , t . distanceToSquared ( e ) ) } } ( ) , distanceSqToSegment : function ( ) { var t = new h , e = new h , i = new h ; return function ( n , r , a , o ) { t . copy ( n ) . add ( r ) . multiplyScalar ( . 5 ) , e . copy ( r ) . sub ( n ) . normalize ( ) , i . copy ( this . origin ) . sub ( t ) ; var s , c , h , l , u = . 5 * n . distanceTo ( r ) , p = - this . direction . dot ( e ) , d = i . dot ( this . direction ) , f = - i . dot ( e ) , m = i . lengthSq ( ) , g = Math . abs ( 1 - p * p ) ; if ( g > 0 ) 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 h ; 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 ) ; if ( 0 === e ) return ! 0 ; var i = t . normal . dot ( this . direction ) ; return i * 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 ) *
} if ( s === ! 0 ) { var M = a [ 1 ] [ l ] ; void 0 !== M ? this . uvs2 . push ( M [ 0 ] , M [ 1 ] , M [ 2 ] ) : this . uvs2 . push ( new i , new i , new i ) } for ( var S = 0 ; S < h ; S ++ ) { var T = c [ S ] . vertices ; e [ S ] . push ( T [ y . a ] , T [ y . b ] , T [ y . c ] ) } for ( var S = 0 ; S < d ; S ++ ) { var E = p [ S ] . vertexNormals [ l ] ; u [ S ] . push ( E . a , E . b , E . c ) } g && this . skinIndices . push ( f [ y . a ] , f [ y . b ] , f [ y . c ] ) , v && this . skinWeights . push ( m [ y . a ] , m [ y . b ] , m [ y . c ] ) } return this . computeGroups ( t ) , this . verticesNeedUpdate = t . verticesNeedUpdate , this . normalsNeedUpdate = t . normalsNeedUpdate , this . colorsNeedUpdate = t . colorsNeedUpdate , this . uvsNeedUpdate = t . uvsNeedUpdate , this . groupsNeedUpdate = t . groupsNeedUpdate , this } , dispose : function ( ) { this . dispatchEvent ( { type : "dispose" } ) } } ) , Object . assign ( Pt . prototype , e . prototype , { isBufferGeometry : ! 0 , getIndex : function ( ) { return this . index } , setIndex : function ( t ) { this . index = t } , addAttribute : function ( t , e ) { return ( e && e . isBufferAttribute ) === ! 1 && ( e && e . isInterleavedBufferAttribute ) === ! 1 ? void this . addAttribute ( t , new mt ( arguments [ 1 ] , arguments [ 2 ] ) ) : "index" === t ? void this . setIndex ( e ) : ( this . attributes [ t ] = e , this ) } , 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 . applyToVector3Array ( e . array ) , e . needsUpdate = ! 0 ) ; var i = this . attributes . normal ; if ( void 0 !== i ) { var n = ( new it ) . getNormalMatrix ( t ) ; n . applyToVector3Array ( i . array ) , i . needsUpdate = ! 0 } return null !== this . boundingBox && this . computeBoundingBox ( ) , null !== this . boundingSphere && this . computeBoundingSphere ( ) , this } , rotateX : function ( ) { var t ; return function ( e ) { return void 0 === t && ( t = new l ) , t . makeRotationX ( e ) , this . applyMatrix ( t ) , this } } ( ) , rotateY : function ( ) { var t ; return function ( e ) { return void 0 === t && ( t = new l ) , t . makeRotationY ( e ) , this . applyMatrix ( t ) , this } } ( ) , rotateZ : function ( ) { var t ; return function ( e ) { return void 0 === t && ( t = new l ) , t . makeRotationZ ( e ) , this . applyMatrix ( t ) , this } } ( ) , translate : function ( ) { var t ; return function ( e , i , n ) { return void 0 === t && ( t = new l ) , t . makeTranslation ( e , i , n ) , this . applyMatrix ( t ) , this } } ( ) , scale : function ( ) { var t ; return function ( e , i , n ) { return void 0 === t && ( t = new l ) , t . makeScale ( e , i , n ) , this . applyMatrix ( t ) , this } } ( ) , lookAt : function ( ) { var t ; return function ( e ) { void 0 === t && ( t = new ht ) , 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 && t . isPoints || t && t . isLine ) { var i = new Mt ( 3 * e . vertices . length , 3 ) , n = new Mt ( 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 Mt ( 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 && t . isMesh && e && e . isGeometry && this . fromGeometry ( e ) ; return this } , updateFromObject : function ( t ) { var e = t . geometry ; if ( t && t . isMesh ) { var i = e . _ _directGeometry ; if ( e . elementsNeedUpdate === ! 0 && ( i = void 0 , e . elementsNeedUpdate = ! 1 ) , void 0 === i ) return this . fromGeometry ( e ) ; i . verticesNeedUpdate = e . verticesNeedUpdate , i . normalsNeedUpdate = e . normalsNeedUpdate , i . colorsNeedUpdate = e . colorsNeedUpdate , i . uvsNeedUpdate = e . uvsNeedUpdate , i . groupsNeedUpdate = e . groupsNeedUpdate , e . verticesNeedUpdate = ! 1 , e . normalsNeedUpdate = ! 1 , e . colorsNeedUpdate = ! 1 , e . uvsNeedUpdate = ! 1 , e . groupsNeedUpdate = ! 1 , e = i } var n ; return e . verticesNeedUpdate === ! 0 && ( n = this . attributes . position , void 0 !== n && ( n . copyVector3sArray ( e . vertices ) , n . needsUpdate = ! 0 ) , e . verticesNeedUpdate = ! 1 ) , e . normalsNeedUpdate === ! 0 && ( n = this . attributes . normal , void 0 !== n && ( n . copyVector3sArray ( e . normals ) , n . needsUpdate = ! 0 ) , e . normalsNeedUpdate = ! 1 ) , e . colorsNeedUpdate === ! 0 && ( n = this . attributes . color , void 0 !== n && ( n . copyColorsArray ( e . colors ) , n . needsUpdate = ! 0 ) , e . colorsNe
l = 0 ; l < 3 ; l ++ ) p = u [ l ] . x + ":" + u [ l ] . y , d = f [ p ] , void 0 !== d && ( u [ l ] = d ) ; return x . concat ( ) } , isClockWise : function ( e ) { return t . ShapeUtils . area ( e ) < 0 } , b2 : function ( ) { function t ( t , e ) { var i = 1 - t ; return i * i * e } function e ( t , e ) { return 2 * ( 1 - t ) * t * e } function i ( t , e ) { return t * t * e } return function ( n , r , a , o ) { return t ( n , r ) + e ( n , a ) + i ( n , o ) } } ( ) , b3 : function ( ) { function t ( t , e ) { var i = 1 - t ; return i * i * i * e } function e ( t , e ) { var i = 1 - t ; return 3 * i * i * t * e } function i ( t , e ) { var i = 1 - t ; return 3 * i * t * t * e } function n ( t , e ) { return t * t * t * e } return function ( r , a , o , s , c ) { return t ( r , a ) + e ( r , o ) + i ( r , s ) + n ( r , c ) } } ( ) } , Ge . prototype = Object . create ( Et . prototype ) , Ge . prototype . constructor = Ge , Ge . prototype . addShapeList = function ( t , e ) { for ( var i = t . length , n = 0 ; n < i ; n ++ ) { var r = t [ n ] ; this . addShape ( r , e ) } } , Ge . prototype . addShape = function ( e , n ) { function r ( t , e , i ) { return e . clone ( ) . multiplyScalar ( i ) . add ( t ) } function a ( t , e , n ) { var r , a , o = 1 , s = t . x - e . x , c = t . y - e . y , h = n . x - t . x , l = n . y - t . y , u = s * s + c * c , p = s * l - c * h ; if ( Math . abs ( p ) > Number . 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 _ = r * r + a * a ; if ( _ <= 2 ) return new i ( r , a ) ; o = Math . sqrt ( _ / 2 ) } else { var b = ! 1 ; s > Number . EPSILON ? h > Number . EPSILON && ( b = ! 0 ) : s < - Number . EPSILON ? h < - Number . EPSILON && ( b = ! 0 ) : Math . sign ( c ) === Math . sign ( l ) && ( b = ! 0 ) , b ? ( 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 ( ) { if ( w ) { var t = 0 , e = H * t ; for ( q = 0 ; q < X ; q ++ ) W = F [ q ] , u ( W [ 2 ] + e , W [ 1 ] + e , W [ 0 ] + e ) ; for ( t = S + 2 * b , e = H * t , q = 0 ; q < X ; q ++ ) W = F [ q ] , u ( W [ 0 ] + e , W [ 1 ] + e , W [ 2 ] + e ) } else { for ( q = 0 ; q < X ; q ++ ) W = F [ q ] , u ( W [ 2 ] , W [ 1 ] , W [ 0 ] ) ; for ( q = 0 ; q < X ; q ++ ) W = F [ q ] , u ( W [ 0 ] + H * S , W [ 1 ] + H * S , W [ 2 ] + H * S ) } } function s ( ) { var t = 0 ; for ( c ( z , t ) , t += z . length , P = 0 , C = D . length ; P < C ; P ++ ) L = D [ P ] , c ( L , t ) , t += L . length } function c ( t , e ) { var i , n ; for ( q = t . length ; -- q >= 0 ; ) { i = q , n = q - 1 , n < 0 && ( n = t . length - 1 ) ; var r = 0 , a = S + 2 * b ; for ( r = 0 ; r < a ; r ++ ) { var o = H * r , s = H * ( r + 1 ) , c = e + i + o , h = e + n + o , l = e + n + s , u = e + i + s ; p ( c , h , l , u , t , r , a , i , n ) } } } function l ( t , e , i ) { R . vertices . push ( new h ( t , e , i ) ) } function u ( t , e , i ) { t += I , e += I , i += I , R . faces . push ( new dt ( t , e , i , null , null , 0 ) ) ; var n = A . generateTopUV ( R , t , e , i ) ; R . faceVertexUvs [ 0 ] . push ( n ) } function p ( t , e , i , n , r , a , o , s , c ) { t += I , e += I , i += I , n += I , R . faces . push ( new dt ( t , e , n , null , null , 1 ) ) , R . faces . push ( new dt ( e , i , n , null , null , 1 ) ) ; var h = A . generateSideWallUV ( R , t , e , i , n ) ; R . faceVertexUvs [ 0 ] . push ( [ h [ 0 ] , h [ 1 ] , h [ 3 ] ] ) , R . faceVertexUvs [ 0 ] . push ( [ h [ 1 ] , h [ 2 ] , h [ 3 ] ] ) } var d , f , m , g , v , y = void 0 !== n . amount ? n . amount : 100 , x = void 0 !== n . bevelThickness ? n . bevelThickness : 6 , _ = void 0 !== n . bevelSize ? n . bevelSize : x - 2 , b = void 0 !== n . bevelSegments ? n . bevelSegments : 3 , w = void 0 === n . bevelEnabled || n . bevelEnabled , M = void 0 !== n . curveSegments ? n . curveSegments : 12 , S = void 0 !== n . steps ? n . steps : 1 , T = n . extrudePath , E = ! 1 , A = void 0 !== n . UVGenerator ? n . UVGenerator : Ge . WorldUVGenerator ; T && ( d = T . getSpacedPoints ( S ) , E = ! 0 , w = ! 1 , f = void 0 !== n . frames ? n . frames : new Ne . FrenetFrames ( T , S , ( ! 1 ) ) , m = new h , g = new h , v = new h ) , w || ( b = 0 , x = 0 , _ = 0 ) ; var L , P , C , R = this , I = this . vertices . length , O = e . extractPoints ( M ) , U = O . shape , D = O . holes , N = ! t . ShapeUtils . isClockWise ( U ) ; if ( N ) { for ( U = U . reverse ( ) , P = 0 , C = D . length ; P < C ; P ++ ) L = D [ P ] , t . ShapeUtils . isClockWise ( L ) && ( D [ P ] = L . reverse ( ) ) ; N = ! 1 } var F = t . ShapeUtils . triangulateShape ( U , D ) , z = U ; for ( P = 0 , C = D . length ; P < C ; P ++ ) L = D [ P ] , U = U . concat ( L ) ; for ( var B , k , G , j , V , W , H = U . length , X = F . length , Y = [ ] , q = 0 , Z = z . length , J = Z - 1 , K = q + 1 ; q < Z ; q ++ , J ++ , K ++ ) J === Z && ( J = 0 ) , K === Z && ( K = 0 ) , Y [ q ] = a ( z [ q ] , z [ J ] , z [ K ] ) ; var Q , $ = [ ] , tt = Y . concat ( ) ; for ( P = 0 , C = D . length ; P < C ; P ++ ) { for ( L = D [ P ] , Q = [ ] , q = 0 , Z = L . length , J = Z - 1 , K = q + 1 ; q < Z ; q ++ , J ++ , K ++ ) J === Z && ( J = 0 ) , K === Z && ( K = 0 ) , Q [ q ] = a ( L [ q ] , L [ J ] , L [ K ] ) ; $ . push ( Q ) , tt = tt . concat ( Q ) } for ( B = 0 ; B < b ; B ++ ) { for ( G = B / b , j = x * Math . cos ( G * Math . PI / 2 ) , k = _ * Math . sin ( G * Math . PI / 2 ) , q = 0 , Z = z . length ; q < Z ; q ++ ) V = r ( z [ q ] , Y [ q ] , k ) , l ( V . x , V . y , - j ) ; for ( P = 0 , C = D . length ; P < C ; P ++ ) for ( L = D [ P ] , Q = $ [ P ] , q = 0 , Z = L . length ; q < Z ; q ++ ) V = r ( L [ q ] , Q [ q ] , k ) , l ( V . x , V . y , - j ) } for ( k = _ , q = 0 ; q < H ; q ++ ) V = w ? r ( U [ q ] , tt [ q ] , k ) : U [ q ] , E ? ( g . copy ( f . normals [ 0 ] ) . multiplyScalar ( V . x ) , m . copy ( f . binormals [ 0 ] ) . multiplyScalar ( V . y ) , v . copy ( d [ 0 ] ) . add ( g ) . add ( m ) , l ( v . x , v . y , v . z ) ) : l ( V . x , V . y , 0 ) ; var et ; for ( et = 1 ; et <= S ; et ++ ) for ( q = 0 ; q < H ; q ++ ) V = w ? r ( U [ q ] , tt [ q ] , k ) : U [ q ] , E ? ( g . copy ( f . normals [ et ] ) . multiplyScalar ( V . x ) , m . copy ( f . binormals [ et ] ) . multiplyScalar ( V . y ) , v . copy ( d [ et ] ) . add ( g ) . add ( m ) , l ( v . x , v . y , v . z ) ) : l ( V . x , V . y , y / S * et ) ; for ( B = b - 1 ; B >=
void 0 !== t . skinning && ( r . skinning = t . skinning ) , void 0 !== t . morphTargets && ( r . morphTargets = t . morphTargets ) , void 0 !== t . size && ( r . size = t . size ) , void 0 !== t . sizeAttenuation && ( r . sizeAttenuation = t . sizeAttenuation ) , void 0 !== t . map && ( r . map = e ( t . map ) ) , void 0 !== t . alphaMap && ( r . alphaMap = e ( t . alphaMap ) , r . transparent = ! 0 ) , void 0 !== t . bumpMap && ( r . bumpMap = e ( t . bumpMap ) ) , void 0 !== t . bumpScale && ( r . bumpScale = t . bumpScale ) , void 0 !== t . normalMap && ( r . normalMap = e ( t . normalMap ) ) , void 0 !== t . normalScale ) { var a = t . normalScale ; Array . isArray ( a ) === ! 1 && ( a = [ a , a ] ) , r . normalScale = ( new i ) . fromArray ( a ) } if ( void 0 !== t . displacementMap && ( r . displacementMap = e ( t . displacementMap ) ) , void 0 !== t . displacementScale && ( r . displacementScale = t . displacementScale ) , void 0 !== t . displacementBias && ( r . displacementBias = t . displacementBias ) , void 0 !== t . roughnessMap && ( r . roughnessMap = e ( t . roughnessMap ) ) , void 0 !== t . metalnessMap && ( r . metalnessMap = e ( t . metalnessMap ) ) , void 0 !== t . emissiveMap && ( r . emissiveMap = e ( t . emissiveMap ) ) , void 0 !== t . emissiveIntensity && ( r . emissiveIntensity = t . emissiveIntensity ) , void 0 !== t . specularMap && ( r . specularMap = e ( t . specularMap ) ) , void 0 !== t . envMap && ( r . envMap = e ( t . envMap ) ) , void 0 !== t . reflectivity && ( r . reflectivity = t . reflectivity ) , void 0 !== t . lightMap && ( r . lightMap = e ( t . lightMap ) ) , void 0 !== t . lightMapIntensity && ( r . lightMapIntensity = t . lightMapIntensity ) , void 0 !== t . aoMap && ( r . aoMap = e ( t . aoMap ) ) , void 0 !== t . aoMapIntensity && ( r . aoMapIntensity = t . aoMapIntensity ) , void 0 !== t . materials ) for ( var o = 0 , s = t . materials . length ; o < s ; o ++ ) r . materials . push ( this . parse ( t . materials [ o ] ) ) ; return r } } ) , Object . assign ( Hi . prototype , { load : function ( t , e , i , n ) { var r = this , a = new mi ( r . manager ) ; a . load ( t , function ( t ) { e ( r . parse ( JSON . parse ( t ) ) ) } , i , n ) } , parse : function ( t ) { var e = new Pt , i = t . data . index , n = { Int8Array : Int8Array , Uint8Array : Uint8Array , Uint8ClampedArray : Uint8ClampedArray , Int16Array : Int16Array , Uint16Array : Uint16Array , Int32Array : Int32Array , Uint32Array : Uint32Array , Float32Array : Float32Array , Float64Array : Float64Array } ; if ( void 0 !== i ) { var r = new n [ i . type ] ( i . array ) ; e . setIndex ( new mt ( r , 1 ) ) } var a = t . data . attributes ; for ( var o in a ) { var s = a [ o ] , r = new n [ s . type ] ( s . array ) ; e . addAttribute ( o , new mt ( r , s . itemSize , s . normalized ) ) } var c = t . data . groups || t . data . drawcalls || t . data . offsets ; if ( void 0 !== c ) for ( var l = 0 , u = c . length ; l !== u ; ++ l ) { var p = c [ l ] ; e . addGroup ( p . start , p . count , p . materialIndex ) } var d = t . data . boundingSphere ; if ( void 0 !== d ) { var f = new h ; void 0 !== d . center && f . fromArray ( d . center ) , e . boundingSphere = new et ( f , d . radius ) } return e } } ) , Xi . prototype = { constructor : Xi , crossOrigin : void 0 , extractUrlBase : function ( t ) { var e = t . split ( "/" ) ; return 1 === e . length ? "./" : ( e . pop ( ) , e . join ( "/" ) + "/" ) } , initMaterials : function ( t , e , i ) { for ( var n = [ ] , r = 0 ; r < t . length ; ++ r ) n [ r ] = this . createMaterial ( t [ r ] , e , i ) ; return n } , createMaterial : function ( ) { var e , i , n ; return function ( r , a , o ) { function s ( e , n , r , s , h ) { var l , u = a + e , p = Xi . Handlers . get ( u ) ; null !== p ? l = p . load ( u ) : ( i . setCrossOrigin ( o ) , l = i . load ( u ) ) , void 0 !== n && ( l . repeat . fromArray ( n ) , 1 !== n [ 0 ] && ( l . wrapS = _a ) , 1 !== n [ 1 ] && ( l . wrapT = _a ) ) , void 0 !== r && l . offset . fromArray ( r ) , void 0 !== s && ( "repeat" === s [ 0 ] && ( l . wrapS = _a ) , "mirror" === s [ 0 ] && ( l . wrapS = wa ) , "repeat" === s [ 1 ] && ( l . wrapT = _a ) , "mirror" === s [ 1 ] && ( l . wrapT = wa ) ) , void 0 !== h && ( l . anisotropy = h ) ; var d = t . Math . generateUUID ( ) ; return c [ d ] = l , d } void 0 === e && ( e = new X ) , void 0 === i && ( i = new _i ) , void 0 === n && ( n = new Wi ) ; var c = { } , h = { uuid : t . Math . generateUUID ( ) , type : "MeshLambertMaterial" } ; for ( var l in r ) { var u = r [ l ] ; switch ( l ) { case "DbgColor" : case "DbgIndex" : case "opticalDensity" : case "illumination" : break ; case "DbgName" : h . name = u ; break ; case "blending" : h . blending = Ir [ u ] ; break ; case "colorAmbient" : case "mapAmbient" : break ; case "colorDiffuse" : h . color = e . fromArray ( u ) . getHex ( ) ; break ; case "colorSpecular" : h . specular = e . fromArray ( u ) . getHex ( ) ; break ; case "colorEmissive" : h . emissive = e . fromArray ( u ) . getHex ( ) ; break ; case "specularCoef" : h . shininess = u ; break ; case "shading" : "basic" === u . toLowerCase ( ) && ( h . type = "MeshBasicMaterial" ) , "phong" === u . toLowerCase ( ) && ( h . type = "MeshPhongMaterial" ) , "standard" === u . toLowerCase ( ) && ( h . type = "MeshStandardMaterial" ) ; break ; case "mapDiffuse" : h . map = s ( u , r . mapDiffuseRepeat , r . mapDiffuseOffset , r . mapDiffuseWrap , r . mapDiffuseAnisotropy ) ; break ; case "mapDiffuseRepeat" : case "mapDiffuseOffset" : case
} , getVolume : function ( ) { return this . gain . gain . value } , setVolume : function ( t ) { return this . gain . gain . value = t , this } } ) , fn . prototype = Object . assign ( Object . create ( dn . prototype ) , { constructor : fn , getOutput : function ( ) { return this . panner } , getRefDistance : function ( ) { return this . panner . refDistance } , setRefDistance : function ( t ) { this . panner . refDistance = t } , getRolloffFactor : function ( ) { return this . panner . rolloffFactor } , setRolloffFactor : function ( t ) { this . panner . rolloffFactor = t } , getDistanceModel : function ( ) { return this . panner . distanceModel } , setDistanceModel : function ( t ) { this . panner . distanceModel = t } , getMaxDistance : function ( ) { return this . panner . maxDistance } , setMaxDistance : function ( t ) { this . panner . maxDistance = t } , updateMatrixWorld : function ( ) { var t = new h ; return function ( e ) { ht . prototype . updateMatrixWorld . call ( this , e ) , t . setFromMatrixPosition ( this . matrixWorld ) , this . panner . setPosition ( t . x , t . y , t . z ) } } ( ) } ) , Object . assign ( mn . prototype , { getFrequencyData : function ( ) { return this . analyser . getByteFrequencyData ( this . data ) , this . data } , getAverageFrequency : function ( ) { for ( var t = 0 , e = this . getFrequencyData ( ) , i = 0 ; i < e . length ; i ++ ) t += e [ i ] ; return t / e . length } } ) , gn . prototype = { constructor : gn , accumulate : function ( t , e ) { var i = this . buffer , n = this . valueSize , r = t * n + n , a = this . cumulativeWeight ; if ( 0 === a ) { for ( var o = 0 ; o !== n ; ++ o ) i [ r + o ] = i [ o ] ; a = e } else { a += e ; var s = e / a ; this . _mixBufferRegion ( i , r , 0 , s , n ) } this . cumulativeWeight = a } , apply : function ( t ) { var e = this . valueSize , i = this . buffer , n = t * e + e , r = this . cumulativeWeight , a = this . binding ; if ( this . cumulativeWeight = 0 , r < 1 ) { var o = 3 * e ; this . _mixBufferRegion ( i , n , o , 1 - r , e ) } for ( var s = e , c = e + e ; s !== c ; ++ s ) if ( i [ s ] !== i [ s + e ] ) { a . setValue ( i , n ) ; break } } , saveOriginalState : function ( ) { var t = this . binding , e = this . buffer , i = this . valueSize , n = 3 * i ; t . getValue ( e , n ) ; for ( var r = i , a = n ; r !== a ; ++ r ) e [ r ] = e [ n + r % i ] ; this . cumulativeWeight = 0 } , restoreOriginalState : function ( ) { var t = 3 * this . valueSize ; this . binding . setValue ( this . buffer , t ) } , _select : function ( t , e , i , n , r ) { if ( n >= . 5 ) for ( var a = 0 ; a !== r ; ++ a ) t [ e + a ] = t [ i + a ] } , _slerp : function ( t , e , i , n , r ) { c . 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 } } } , vn . prototype = { constructor : vn , getValue : function ( t , e ) { this . bind ( ) , this . getValue ( t , e ) } , setValue : function ( t , e ) { this . bind ( ) , this . setValue ( t , e ) } , bind : function ( ) { var t = this . node , e = this . parsedPath , i = e . objectName , n = e . propertyName , r = e . propertyIndex ; if ( t || ( t = vn . findNode ( this . rootNode , e . nodeName ) || this . rootNode , this . node = t ) , this . getValue = this . _getValue _unavailable , this . setValue = this . _setValue _unavailable , t ) { if ( i ) { var a = e . objectIndex ; switch ( i ) { case "materials" : if ( ! t . material ) return ; if ( ! t . material . materials ) return ; t = t . material . materials ; break ; case "bones" : if ( ! t . skeleton ) return ; t = t . skeleton . bones ; for ( var o = 0 ; o < t . length ; o ++ ) if ( t [ o ] . name === a ) { a = o ; break } break ; default : if ( void 0 === t [ i ] ) return ; t = t [ i ] } if ( void 0 !== a ) { if ( void 0 === t [ a ] ) return ; t = t [ a ] } } var s = t [ n ] ; if ( void 0 !== s ) { var c = this . Versioning . None ; void 0 !== t . needsUpdate ? ( c = this . Versioning . NeedsUpdate , this . targetObject = t ) : void 0 !== t . matrixWorldNeedsUpdate && ( c = this . Versioning . MatrixWorldNeedsUpdate , this . targetObject = t ) ; var h = this . BindingType . Direct ; if ( void 0 !== r ) { if ( "morphTargetInfluences" === n ) { if ( ! t . geometry ) return ; if ( ! t . geometry . morphTargets ) return ; for ( var o = 0 ; o < this . node . geometry . morphTargets . length ; o ++ ) if ( t . geometry . morphTargets [ o ] . name === r ) { r = o ; break } } h = this . BindingType . ArrayElement , this . resolvedProperty = s , this . propertyIndex = r } else void 0 !== s . fromArray && void 0 !== s . toArray ? ( h = this . BindingType . HasFromToArray , this . resolvedProperty = s ) : void 0 !== s . length ? ( h = this . BindingType . EntireArray , this . resolvedProperty = s ) : this . propertyName = n ; this . getValue = this . GetterByBindingType [ h ] , this . setValue = this . SetterByBindingTypeAndVersioning [ h ] [ c ] } else { e . nodeName } } } , unbind : function ( ) { this . node = null , this . getValue = this . _getValue _unbound , this . setValue = this . _setValue _unbound } } , Object . assign ( vn . prototype , { _getValue _unavailable : function ( ) { } , _setValue _unavailable : function ( ) { } , _getValue _unbound : vn . prototype . getValue , _setValue _unbound : vn . prototype . setValue , BindingType : { Direct : 0 , EntireArray : 1 , ArrayElement : 2 , HasFromToArray : 3 } , Versioning : { None : 0 , NeedsUpdate : 1 , MatrixWorldNeedsUpdate
this . box . setFromObject ( this . object ) , this . box . size ( this . scale ) , this . box . getCenter ( this . position ) } , Hn . prototype = Object . create ( be . prototype ) , Hn . prototype . constructor = Hn , Hn . prototype . update = function ( ) { var t = new tt ; return function ( e ) { if ( e && e . isBox3 ? t . copy ( e ) : t . setFromObject ( e ) , ! t . isEmpty ( ) ) { var i = t . min , n = t . max , r = this . geometry . attributes . position , a = r . array ; a [ 0 ] = n . x , a [ 1 ] = n . y , a [ 2 ] = n . z , a [ 3 ] = i . x , a [ 4 ] = n . y , a [ 5 ] = n . z , a [ 6 ] = i . x , a [ 7 ] = i . y , a [ 8 ] = n . z , a [ 9 ] = n . x , a [ 10 ] = i . y , a [ 11 ] = n . z , a [ 12 ] = n . x , a [ 13 ] = n . y , a [ 14 ] = i . z , a [ 15 ] = i . x , a [ 16 ] = n . y , a [ 17 ] = i . z , a [ 18 ] = i . x , a [ 19 ] = i . y , a [ 20 ] = i . z , a [ 21 ] = n . x , a [ 22 ] = i . y , a [ 23 ] = i . z , r . needsUpdate = ! 0 , this . geometry . computeBoundingSphere ( ) } } } ( ) ; var Hc = new Pt ; Hc . addAttribute ( "position" , new Mt ( [ 0 , 0 , 0 , 0 , 1 , 0 ] , 3 ) ) ; var Xc = new Qe ( 0 , . 5 , 1 , 5 , 1 ) ; Xc . translate ( 0 , - . 5 , 0 ) , Xn . prototype = Object . create ( ht . prototype ) , Xn . prototype . constructor = Xn , Xn . prototype . setDirection = function ( ) { var t , e = new h ; return function ( i ) { i . y > . 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 ) ) } } ( ) , Xn . 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 ( ) } , Xn . prototype . setColor = function ( t ) { this . line . material . color . copy ( t ) , this . cone . material . color . copy ( t ) } , Yn . prototype = Object . create ( be . prototype ) , Yn . prototype . constructor = Yn , t . CatmullRomCurve3 = function ( ) { function t ( ) { } var e = new h , i = new t , n = new t , r = new t ; return t . prototype . init = function ( t , e , i , n ) { this . c0 = t , this . c1 = i , this . c2 = - 3 * t + 3 * e - 2 * i - n , this . c3 = 2 * t - 2 * e + i + n } , t . prototype . initNonuniformCatmullRom = function ( t , e , i , n , r , a , o ) { var s = ( e - t ) / r - ( i - t ) / ( r + a ) + ( i - e ) / a , c = ( i - e ) / a - ( n - e ) / ( a + o ) + ( n - i ) / o ; s *= a , c *= a , this . init ( e , i , s , c ) } , t . prototype . initCatmullRom = function ( t , e , i , n , r ) { this . init ( e , i , r * ( i - t ) , r * ( n - e ) ) } , t . prototype . calc = function ( t ) { var e = t * t , i = e * t ; return this . c0 + this . c1 * t + this . c2 * e + this . c3 * i } , Zi . create ( function ( t ) { this . points = t || [ ] , this . closed = ! 1 } , function ( t ) { var a , o , s , c , l = this . points ; c = l . length , a = ( c - ( this . closed ? 0 : 1 ) ) * t , o = Math . floor ( a ) , s = a - o , this . closed ? o += o > 0 ? 0 : ( Math . floor ( Math . abs ( o ) / l . length ) + 1 ) * l . length : 0 === s && o === c - 1 && ( o = c - 2 , s = 1 ) ; var u , p , d , f ; if ( this . closed || o > 0 ? u = l [ ( o - 1 ) % c ] : ( e . subVectors ( l [ 0 ] , l [ 1 ] ) . add ( l [ 0 ] ) , u = e ) , p = l [ o % c ] , d = l [ ( o + 1 ) % c ] , this . closed || o + 2 < c ? f = l [ ( o + 2 ) % c ] : ( e . subVectors ( l [ c - 1 ] , l [ c - 2 ] ) . add ( l [ c - 1 ] ) , f = e ) , void 0 === this . type || "centripetal" === this . type || "chordal" === this . type ) { var m = "chordal" === this . type ? . 5 : . 25 , g = Math . pow ( u . distanceToSquared ( p ) , m ) , v = Math . pow ( p . distanceToSquared ( d ) , m ) , y = Math . pow ( d . distanceToSquared ( f ) , m ) ; v < 1e-4 && ( v = 1 ) , g < 1e-4 && ( g = v ) , y < 1e-4 && ( y = v ) , i . initNonuniformCatmullRom ( u . x , p . x , d . x , f . x , g , v , y ) , n . initNonuniformCatmullRom ( u . y , p . y , d . y , f . y , g , v , y ) , r . initNonuniformCatmullRom ( u . z , p . z , d . z , f . z , g , v , y ) } else if ( "catmullrom" === this . type ) { var x = void 0 !== this . tension ? this . tension : . 5 ; i . initCatmullRom ( u . x , p . x , d . x , f . x , x ) , n . initCatmullRom ( u . y , p . y , d . y , f . y , x ) , r . initCatmullRom ( u . z , p . z , d . z , f . z , x ) } var _ = new h ( i . calc ( s ) , n . calc ( s ) , r . calc ( s ) ) ; return _ } ) } ( ) , qn . prototype = Object . create ( t . CatmullRomCurve3 . prototype ) ; var Yc = Zi . create ( function ( t ) { this . points = void 0 === t ? [ ] : t } , function ( e ) { var i = this . points , n = ( i . length - 1 ) * e , r = Math . floor ( n ) , a = n - r , o = i [ 0 == r ? r : r - 1 ] , s = i [ r ] , c = i [ r > i . length - 2 ? i . length - 1 : r + 1 ] , l = i [ r > i . length - 3 ? i . length - 1 : r + 2 ] , u = t . CurveUtils . interpolate ; return new h ( u ( o . x , s . x , c . x , l . x , a ) , u ( o . y , s . y , c . y , l . y , a ) , u ( o . z , s . z , c . z , l . z , a ) ) } ) ; t . CubicBezierCurve3 = Zi . create ( function ( t , e , i , n ) { this . v0 = t , this . v1 = e , this . v2 = i , this . v3 = n } , function ( e ) { var i = t . ShapeUtils . b3 ; return new h ( i ( e , this . v0 . x , this . v1 . x , this . v2 . x , this . v3 . x ) , i ( e , this . v0 . y , this . v1 . y , this . v2 . y , this . v3 . y ) , i ( e , this . v0 . z , this . v1 . z , this . v2 . z , this . v3 . z ) ) } ) , t . QuadraticBezierCurve3 = Zi . create ( function ( t , e , i ) { this . v0 = t , this . v1 = e , this . v2 = i } , function ( e ) { var i = t . ShapeUtils . b2 ; return new h ( i ( e , this . v0 . x , this . v1 . x , this . v2 . x ) , i ( e , this . v0 . y , this . v1 . y , this . v2 . y ) , i ( e , this . v0 . z , this . v1 . z , this . v2 . z ) ) } ) , t . LineCurve3 = Zi . create ( function ( t , e ) { this . v1 = t , this . v2 = e } , function ( t ) { if ( 1 === t ) return this . v2 . clone ( ) ; var e = new h ; return e . subVectors ( this . v2 , this . v1 )
_ . subVectors ( x , y ) , g . rotateLeft ( 2 * Math . PI * _ . x / e . clientWidth * v . rotateSpeed ) , g . rotateUp ( 2 * Math . PI * _ . y / e . clientHeight * v . rotateSpeed ) , y . copy ( x ) , v . update ( ) ; break ; case 2 : if ( v . enableZoom === ! 1 ) return ; if ( L !== A . TOUCH _DOLLY ) return ; var i = t . touches [ 0 ] . pageX - t . touches [ 1 ] . pageX , n = t . touches [ 0 ] . pageY - t . touches [ 1 ] . pageY , a = Math . sqrt ( i * i + n * n ) ; T . set ( 0 , a ) , E . subVectors ( T , S ) , E . y > 0 ? g . dollyOut ( o ( ) ) : E . y < 0 && g . dollyIn ( o ( ) ) , S . copy ( T ) , v . update ( ) ; break ; case 3 : if ( v . enablePan === ! 1 ) return ; if ( L !== A . TOUCH _PAN ) return ; w . set ( t . touches [ 0 ] . pageX , t . touches [ 0 ] . pageY ) , M . subVectors ( w , b ) , r ( M . x , M . y ) , b . copy ( w ) , v . update ( ) ; break ; default : L = A . NONE } } } function f ( ) { v . enabled !== ! 1 && ( v . dispatchEvent ( R ) , L = A . NONE ) } function m ( t ) { t . preventDefault ( ) } var g = new e ( i ) ; this . domElement = void 0 !== n ? n : document , Object . defineProperty ( this , "constraint" , { get : function ( ) { return g } } ) , this . getPolarAngle = function ( ) { return g . getPolarAngle ( ) } , this . getAzimuthalAngle = function ( ) { return g . getAzimuthalAngle ( ) } , this . enabled = ! 0 , this . center = this . target , this . enableZoom = ! 0 , this . zoomSpeed = 1 , this . enableRotate = ! 0 , this . rotateSpeed = 1 , this . enablePan = ! 0 , this . keyPanSpeed = 7 , this . autoRotate = ! 1 , this . autoRotateSpeed = 2 , this . enableKeys = ! 0 , this . keys = { LEFT : 37 , UP : 38 , RIGHT : 39 , BOTTOM : 40 } , this . mouseButtons = { ORBIT : t . MOUSE . LEFT , ZOOM : t . MOUSE . MIDDLE , PAN : t . MOUSE . RIGHT } ; var v = this , y = new t . Vector2 , x = new t . Vector2 , _ = new t . Vector2 , b = new t . Vector2 , w = new t . Vector2 , M = new t . Vector2 , S = new t . Vector2 , T = new t . Vector2 , E = new t . Vector2 , A = { NONE : - 1 , ROTATE : 0 , DOLLY : 1 , PAN : 2 , TOUCH _ROTATE : 3 , TOUCH _DOLLY : 4 , TOUCH _PAN : 5 } , L = A . NONE ; this . target0 = this . target . clone ( ) , this . position0 = this . object . position . clone ( ) , this . zoom0 = this . object . zoom ; var P = { type : "change" } , C = { type : "start" } , R = { type : "end" } ; this . update = function ( ) { this . autoRotate && L === A . NONE && g . rotateLeft ( a ( ) ) , g . update ( ) === ! 0 && this . dispatchEvent ( P ) } , this . reset = function ( ) { L = A . NONE , this . target . copy ( this . target0 ) , this . object . position . copy ( this . position0 ) , this . object . zoom = this . zoom0 , this . object . updateProjectionMatrix ( ) , this . dispatchEvent ( P ) , this . update ( ) } , this . dispose = function ( ) { this . domElement . removeEventListener ( "contextmenu" , m , ! 1 ) , this . domElement . removeEventListener ( "mousedown" , s , ! 1 ) , this . domElement . removeEventListener ( "mousewheel" , l , ! 1 ) , this . domElement . removeEventListener ( "MozMousePixelScroll" , l , ! 1 ) , this . domElement . removeEventListener ( "touchstart" , p , ! 1 ) , this . domElement . removeEventListener ( "touchend" , f , ! 1 ) , this . domElement . removeEventListener ( "touchmove" , d , ! 1 ) , document . removeEventListener ( "mousemove" , c , ! 1 ) , document . removeEventListener ( "mouseup" , h , ! 1 ) , window . removeEventListener ( "keydown" , u , ! 1 ) } , this . domElement . addEventListener ( "contextmenu" , m , ! 1 ) , this . domElement . addEventListener ( "mousedown" , s , ! 1 ) , this . domElement . addEventListener ( "mousewheel" , l , ! 1 ) , this . domElement . addEventListener ( "MozMousePixelScroll" , l , ! 1 ) , this . domElement . addEventListener ( "touchstart" , p , ! 1 ) , this . domElement . addEventListener ( "touchend" , f , ! 1 ) , this . domElement . addEventListener ( "touchmove" , d , ! 1 ) , window . addEventListener ( "keydown" , u , ! 1 ) , this . update ( ) } var n = t . MOUSE ; return n || ( n = { LEFT : 0 , MIDDLE : 1 , RIGHT : 2 } ) , i . prototype = Object . create ( t . EventDispatcher . prototype ) , i . prototype . constructor = i , Object . defineProperties ( i . prototype , { object : { get : function ( ) { return this . constraint . object } } , target : { get : function ( ) { return this . constraint . target } , set : function ( t ) { this . constraint . target . copy ( t ) } } , minDistance : { get : function ( ) { return this . constraint . minDistance } , set : function ( t ) { this . constraint . minDistance = t } } , maxDistance : { get : function ( ) { return this . constraint . maxDistance } , set : function ( t ) { this . constraint . maxDistance = t } } , minZoom : { get : function ( ) { return this . constraint . minZoom } , set : function ( t ) { this . constraint . minZoom = t } } , maxZoom : { get : function ( ) { return this . constraint . maxZoom } , set : function ( t ) { this . constraint . maxZoom = t } } , minPolarAngle : { get : function ( ) { return this . constraint . minPolarAngle } , set : function ( t ) { this . constraint . minPolarAngle = t } } , maxPolarAngle : { get : function ( ) { return this . constraint . maxPolarAngle } , set : function ( t ) { this . constraint . maxPolarAngle = t } } , minAzimuthAngle : { get : function ( ) { return this . constraint . minAzimuthAngle } , set : function ( t ) { this . constraint . minAzimuthAngle = t } } , maxAzimuthAngle : { g
} ) ; var B = D . add ( o [ "default" ] . hemiLight , "z" , - 1e3 , 1e3 ) . name ( "Position Z" ) ; B . onChange ( function ( t ) { i . controls . enableRotate = ! 1 , i . light . hemiLight . position . z = t } ) , B . onFinishChange ( function ( ) { i . controls . enableRotate = ! 0 } ) } ; e [ "default" ] = s } ] ) ;