three-render-objects
Advanced tools
Comparing version 1.13.1 to 1.13.2
@@ -303,3 +303,3 @@ 'use strict'; | ||
state.container.addEventListener('click', function (ev) { | ||
state.container.addEventListener('mouseup', function (ev) { | ||
if (state.ignoreOneClick) { | ||
@@ -311,13 +311,9 @@ state.ignoreOneClick = false; // because of controls end event | ||
state.onClick(state.hoverObj || null, ev); // trigger background clicks with null | ||
}, false); // Handle right-click events | ||
if (ev.button === 0) { | ||
// left-click | ||
state.onClick(state.hoverObj || null, ev); // trigger background clicks with null | ||
} | ||
state.container.addEventListener('mouseup', function (ev) { | ||
if (ev.button === 2 && state.onRightClick) { | ||
if (state.ignoreOneClick) { | ||
state.ignoreOneClick = false; // because of controls end event | ||
return; | ||
} | ||
// right-click | ||
state.onRightClick(state.hoverObj || null, ev); | ||
@@ -324,0 +320,0 @@ } |
@@ -1,2 +0,2 @@ | ||
// Version 1.13.1 three-render-objects - https://github.com/vasturiano/three-render-objects | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("three")):"function"==typeof define&&define.amd?define(["three"],t):(e=e||self).ThreeRenderObjects=t(e.THREE)}(this,(function(e){"use strict";var t="default"in e?e.default:e;!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".scene-nav-info {\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n}\n\n.scene-tooltip {\n color: lavender;\n font-size: 15px;\n}\n\n.scene-nav-info, .scene-tooltip {\n position: absolute;\n font-family: sans-serif;\n pointer-events: none;\n}");var n,o=window.THREE||t,a=n=function(e,t){var n=this,a=-1,r=0,i=1,s=2,c=3,u=4;this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new o.Vector3;var l=new o.Vector3,d=a,h=a,p=new o.Vector3,f=new o.Vector2,m=new o.Vector2,g=new o.Vector3,b=0,v=new o.Vector2,y=new o.Vector2,w=0,E=0,k=new o.Vector2,S=new o.Vector2;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var _={type:"change"},C={type:"start"},P={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var O,j,x,T,L,R,I,M,D,V,F,A=(O=new o.Vector2,function(e,t){return O.set((e-n.screen.left)/n.screen.width,(t-n.screen.top)/n.screen.height),O}),z=function(){var e=new o.Vector2;return function(t,o){return e.set((t-.5*n.screen.width-n.screen.left)/(.5*n.screen.width),(n.screen.height+2*(n.screen.top-o))/n.screen.width),e}}();function U(e,t){return Array.isArray(e)?-1!==e.indexOf(t):e===t}function N(e){!1!==n.enabled&&(window.removeEventListener("keydown",N),h=d,d===a&&(U(n.keys[r],e.keyCode)&&!n.noRotate?d=r:U(n.keys[i],e.keyCode)&&!n.noZoom?d=i:U(n.keys[s],e.keyCode)&&!n.noPan&&(d=s)))}function Y(e){!1!==n.enabled&&(d=h,window.addEventListener("keydown",N,!1))}function H(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d===a&&(d=e.button),d!==r||n.noRotate?d!==i||n.noZoom?d!==s||n.noPan||(k.copy(A(e.pageX,e.pageY)),S.copy(k)):(v.copy(A(e.pageX,e.pageY)),y.copy(v)):(m.copy(z(e.pageX,e.pageY)),f.copy(m)),document.addEventListener("mousemove",X,!1),document.addEventListener("mouseup",q,!1),n.dispatchEvent(C))}function X(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d!==r||n.noRotate?d!==i||n.noZoom?d!==s||n.noPan||S.copy(A(e.pageX,e.pageY)):y.copy(A(e.pageX,e.pageY)):(f.copy(m),m.copy(z(e.pageX,e.pageY))))}function q(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d=a,document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",q),n.dispatchEvent(P))}function Z(e){if(!1!==n.enabled){switch(e.preventDefault(),e.stopPropagation(),e.deltaMode){case 2:v.y-=.025*e.deltaY;break;case 1:v.y-=.01*e.deltaY;break;default:v.y-=25e-5*e.deltaY}n.dispatchEvent(C),n.dispatchEvent(P)}}function B(e){if(!1!==n.enabled){switch(e.touches.length){case 1:d=c,m.copy(z(e.touches[0].pageX,e.touches[0].pageY)),f.copy(m);break;default:d=u;var t=e.touches[0].pageX-e.touches[1].pageX,o=e.touches[0].pageY-e.touches[1].pageY;E=w=Math.sqrt(t*t+o*o);var a=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;k.copy(A(a,r)),S.copy(k)}n.dispatchEvent(C)}}function Q(e){if(!1!==n.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:f.copy(m),m.copy(z(e.touches[0].pageX,e.touches[0].pageY));break;default:var t=e.touches[0].pageX-e.touches[1].pageX,o=e.touches[0].pageY-e.touches[1].pageY;E=Math.sqrt(t*t+o*o);var a=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;S.copy(A(a,r))}}function G(e){if(!1!==n.enabled){switch(e.touches.length){case 0:d=a;break;case 1:d=c,m.copy(z(e.touches[0].pageX,e.touches[0].pageY)),f.copy(m)}n.dispatchEvent(P)}}function W(e){!1!==n.enabled&&e.preventDefault()}this.rotateCamera=(x=new o.Vector3,T=new o.Quaternion,L=new o.Vector3,R=new o.Vector3,I=new o.Vector3,M=new o.Vector3,function(){M.set(m.x-f.x,m.y-f.y,0),(j=M.length())?(p.copy(n.object.position).sub(n.target),L.copy(p).normalize(),R.copy(n.object.up).normalize(),I.crossVectors(R,L).normalize(),R.setLength(m.y-f.y),I.setLength(m.x-f.x),M.copy(R.add(I)),x.crossVectors(M,p).normalize(),j*=n.rotateSpeed,T.setFromAxisAngle(x,j),p.applyQuaternion(T),n.object.up.applyQuaternion(T),g.copy(x),b=j):!n.staticMoving&&b&&(b*=Math.sqrt(1-n.dynamicDampingFactor),p.copy(n.object.position).sub(n.target),T.setFromAxisAngle(g,b),p.applyQuaternion(T),n.object.up.applyQuaternion(T)),f.copy(m)}),this.zoomCamera=function(){var e;d===u?(e=w/E,w=E,p.multiplyScalar(e)):(1!==(e=1+(y.y-v.y)*n.zoomSpeed)&&e>0&&p.multiplyScalar(e),n.staticMoving?v.copy(y):v.y+=(y.y-v.y)*this.dynamicDampingFactor)},this.panCamera=(D=new o.Vector2,V=new o.Vector3,F=new o.Vector3,function(){D.copy(S).sub(k),D.lengthSq()&&(D.multiplyScalar(p.length()*n.panSpeed),F.copy(p).cross(n.object.up).setLength(D.x),F.add(V.copy(n.object.up).setLength(D.y)),n.object.position.add(F),n.target.add(F),n.staticMoving?k.copy(S):k.add(D.subVectors(S,k).multiplyScalar(n.dynamicDampingFactor)))}),this.checkDistances=function(){n.noZoom&&n.noPan||(p.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,p.setLength(n.maxDistance)),v.copy(y)),p.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,p.setLength(n.minDistance)),v.copy(y)))},this.update=function(){p.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,p),n.checkDistances(),n.object.lookAt(n.target),l.distanceToSquared(n.object.position)>1e-6&&(n.dispatchEvent(_),l.copy(n.object.position))},this.reset=function(){d=a,h=a,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),p.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent(_),l.copy(n.object.position)},this.dispose=function(){this.domElement.removeEventListener("contextmenu",W,!1),this.domElement.removeEventListener("mousedown",H,!1),this.domElement.removeEventListener("wheel",Z,!1),this.domElement.removeEventListener("touchstart",B,!1),this.domElement.removeEventListener("touchend",G,!1),this.domElement.removeEventListener("touchmove",Q,!1),document.removeEventListener("mousemove",X,!1),document.removeEventListener("mouseup",q,!1),window.removeEventListener("keydown",N,!1),window.removeEventListener("keyup",Y,!1)},this.domElement.addEventListener("contextmenu",W,!1),this.domElement.addEventListener("mousedown",H,!1),this.domElement.addEventListener("wheel",Z,!1),this.domElement.addEventListener("touchstart",B,!1),this.domElement.addEventListener("touchend",G,!1),this.domElement.addEventListener("touchmove",Q,!1),window.addEventListener("keydown",N,!1),window.addEventListener("keyup",Y,!1),this.handleResize(),this.update()};n.prototype=Object.create(o.EventDispatcher.prototype);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e,t,n){return(l=u()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var a=new(Function.bind.apply(e,o));return n&&c(a,n.prototype),a}).apply(null,arguments)}function d(e){var t="function"==typeof Map?new Map:void 0;return(d=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return l(e,arguments,s(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),c(o,e)})(e)}var h={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n'};function p(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,a=t[0],r=[];for(o=1;o<t.length;o+=1)r.push(t[o]);return r.forEach((function(e){a=a.replace(/%[a-z]/,e)})),a}var f=function(e){var t,n;function o(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/master/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var o=arguments.length,a=new Array(o>1?o-1:0),r=1;r<o;r++)a[r-1]=arguments[r];n=e.call(this,p.apply(void 0,[h[t]].concat(a)))||this}return i(n)}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(d(Error));function m(e){return Math.round(255*e)}function g(e,t,n){return m(e)+","+m(t)+","+m(n)}function b(e,t,n,o){if(void 0===o&&(o=g),0===t)return o(n,n,n);var a=(e%360+360)%360/60,r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(a%2-1)),s=0,c=0,u=0;a>=0&&a<1?(s=r,c=i):a>=1&&a<2?(s=i,c=r):a>=2&&a<3?(c=r,u=i):a>=3&&a<4?(c=i,u=r):a>=4&&a<5?(s=i,u=r):a>=5&&a<6&&(s=r,u=i);var l=n-r/2;return o(s+l,c+l,u+l)}var v={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var y=/^#[a-fA-F0-9]{6}$/,w=/^#[a-fA-F0-9]{8}$/,E=/^#[a-fA-F0-9]{3}$/,k=/^#[a-fA-F0-9]{4}$/,S=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,_=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,C=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,P=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function O(e){if("string"!=typeof e)throw new f(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return v[t]?"#"+v[t]:e}(e);if(t.match(y))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(w)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(E))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(k)){var o=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:o}}var a=S.exec(t);if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10)};var r=_.exec(t);if(r)return{red:parseInt(""+r[1],10),green:parseInt(""+r[2],10),blue:parseInt(""+r[3],10),alpha:parseFloat(""+r[4])};var i=C.exec(t);if(i){var s="rgb("+b(parseInt(""+i[1],10),parseInt(""+i[2],10)/100,parseInt(""+i[3],10)/100)+")",c=S.exec(s);if(!c)throw new f(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var u=P.exec(t);if(u){var l="rgb("+b(parseInt(""+u[1],10),parseInt(""+u[2],10)/100,parseInt(""+u[3],10)/100)+")",d=S.exec(l);if(!d)throw new f(4,t,l);return{red:parseInt(""+d[1],10),green:parseInt(""+d[2],10),blue:parseInt(""+d[3],10),alpha:parseFloat(""+u[4])}}throw new f(5)}var j=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function x(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function T(e,t,n){if("number"==typeof e&&"number"==typeof t&&"number"==typeof n)return j("#"+x(e)+x(t)+x(n));if("object"==typeof e&&void 0===t&&void 0===n)return j("#"+x(e.red)+x(e.green)+x(e.blue));throw new f(6)}function L(e){return function e(t,n,o){return function(){var a=o.concat(Array.prototype.slice.call(arguments));return a.length>=n?t.apply(this,a):e(t,n,a)}}(e,e.length,[])}function R(e,t){if("transparent"===t)return t;var n,o,a,i=O(t),s="number"==typeof i.alpha?i.alpha:1;return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var a=O(e);return"rgba("+a.red+","+a.green+","+a.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof n&&"number"==typeof o)return o>=1?T(e,t,n):"rgba("+e+","+t+","+n+","+o+")";if("object"==typeof e&&void 0===t&&void 0===n&&void 0===o)return e.alpha>=1?T(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new f(7)}(r({},i,{alpha:(n=0,o=1,a=(100*s+100*parseFloat(e))/100,Math.max(n,Math.min(o,a)))}))}var I=L(R),M=function(){this._tweens={},this._tweensAddedDuringUpdate={}};M.prototype={getAll:function(){return Object.keys(this._tweens).map(function(e){return this._tweens[e]}.bind(this))},removeAll:function(){this._tweens={}},add:function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},remove:function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},update:function(e,t){var n=Object.keys(this._tweens);if(0===n.length)return!1;for(e=void 0!==e?e:V.now();n.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<n.length;o++){var a=this._tweens[n[o]];a&&!1===a.update(e)&&(a._isPlaying=!1,t||delete this._tweens[n[o]])}n=Object.keys(this._tweensAddedDuringUpdate)}return!0}};var D,V=new M;V.Group=M,V._nextId=0,V.nextId=function(){return V._nextId++},"undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?V.now=function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?V.now=self.performance.now.bind(self.performance):void 0!==Date.now?V.now=Date.now:V.now=function(){return(new Date).getTime()},V.Tween=function(e,t){this._isPaused=!1,this._pauseStart=null,this._object=e,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._repeatDelayTime=void 0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=V.Easing.Linear.None,this._interpolationFunction=V.Interpolation.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onRepeatCallback=null,this._onCompleteCallback=null,this._onStopCallback=null,this._group=t||V,this._id=V.nextId()},V.Tween.prototype={getId:function(){return this._id},isPlaying:function(){return this._isPlaying},isPaused:function(){return this._isPaused},to:function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},duration:function(e){return this._duration=e,this},start:function(e){for(var t in this._group.add(this),this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._startTime=void 0!==e?"string"==typeof e?V.now()+parseFloat(e):e:V.now(),this._startTime+=this._delayTime,this._valuesEnd){if(this._valuesEnd[t]instanceof Array){if(0===this._valuesEnd[t].length)continue;this._valuesEnd[t]=[this._object[t]].concat(this._valuesEnd[t])}void 0!==this._object[t]&&(void 0===this._valuesStart[t]&&(this._valuesStart[t]=this._object[t]),this._valuesStart[t]instanceof Array==!1&&(this._valuesStart[t]*=1),this._valuesStartRepeat[t]=this._valuesStart[t]||0)}return this},stop:function(){return this._isPlaying?(this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,null!==this._onStopCallback&&this._onStopCallback(this._object),this.stopChainedTweens(),this):this},end:function(){return this.update(1/0),this},pause:function(e){return this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=void 0===e?V.now():e,this._group.remove(this)),this},resume:function(e){return this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=(void 0===e?V.now():e)-this._pauseStart,this._pauseStart=0,this._group.add(this),this):this},stopChainedTweens:function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop()},group:function(e){return this._group=e,this},delay:function(e){return this._delayTime=e,this},repeat:function(e){return this._repeat=e,this},repeatDelay:function(e){return this._repeatDelayTime=e,this},yoyo:function(e){return this._yoyo=e,this},easing:function(e){return this._easingFunction=e,this},interpolation:function(e){return this._interpolationFunction=e,this},chain:function(){return this._chainedTweens=arguments,this},onStart:function(e){return this._onStartCallback=e,this},onUpdate:function(e){return this._onUpdateCallback=e,this},onRepeat:function(e){return this._onRepeatCallback=e,this},onComplete:function(e){return this._onCompleteCallback=e,this},onStop:function(e){return this._onStopCallback=e,this},update:function(e){var t,n,o;if(e<this._startTime)return!0;for(t in!1===this._onStartCallbackFired&&(null!==this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),n=(e-this._startTime)/this._duration,n=0===this._duration||n>1?1:n,o=this._easingFunction(n),this._valuesEnd)if(void 0!==this._valuesStart[t]){var a=this._valuesStart[t]||0,r=this._valuesEnd[t];r instanceof Array?this._object[t]=this._interpolationFunction(r,o):("string"==typeof r&&(r="+"===r.charAt(0)||"-"===r.charAt(0)?a+parseFloat(r):parseFloat(r)),"number"==typeof r&&(this._object[t]=a+(r-a)*o))}if(null!==this._onUpdateCallback&&this._onUpdateCallback(this._object,n),1===n){if(this._repeat>0){for(t in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat){if("string"==typeof this._valuesEnd[t]&&(this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(this._valuesEnd[t])),this._yoyo){var i=this._valuesStartRepeat[t];this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=i}this._valuesStart[t]=this._valuesStartRepeat[t]}return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,null!==this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}null!==this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var s=0,c=this._chainedTweens.length;s<c;s++)this._chainedTweens[s].start(this._startTime+this._duration);return!1}return!0}},V.Easing={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-V.Easing.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*V.Easing.Bounce.In(2*e):.5*V.Easing.Bounce.Out(2*e-1)+.5}}},V.Interpolation={Linear:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),r=V.Interpolation.Utils.Linear;return t<0?r(e[0],e[1],o):t>1?r(e[n],e[n-1],n-o):r(e[a],e[a+1>n?n:a+1],o-a)},Bezier:function(e,t){for(var n=0,o=e.length-1,a=Math.pow,r=V.Interpolation.Utils.Bernstein,i=0;i<=o;i++)n+=a(1-t,o-i)*a(t,i)*e[i]*r(o,i);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),r=V.Interpolation.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(a=Math.floor(o=n*(1+t))),r(e[(a-1+n)%n],e[a],e[(a+1)%n],e[(a+2)%n],o-a)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-o)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):r(e[a?a-1:0],e[a],e[n<a+1?n:a+1],e[n<a+2?n:a+2],o-a)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=V.Interpolation.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(D=[1],function(e){var t=1;if(D[e])return D[e];for(var n=e;n>1;n--)t*=n;return D[e]=t,t}),CatmullRom:function(e,t,n,o,a){var r=.5*(n-e),i=.5*(o-t),s=a*a;return(2*t-2*n+r+i)*(a*s)+(-3*t+3*n-2*r-i)*s+r*a+t}}},V.version="18.5.0";function F(e,t,n){var o,a,r,i,s;function c(){var u=Date.now()-i;u<t&&u>=0?o=setTimeout(c,t-u):(o=null,n||(s=e.apply(r,a),r=a=null))}null==t&&(t=100);var u=function(){r=this,a=arguments,i=Date.now();var u=n&&!o;return o||(o=setTimeout(c,t)),u&&(s=e.apply(r,a),r=a=null),s};return u.clear=function(){o&&(clearTimeout(o),o=null)},u.flush=function(){o&&(s=e.apply(r,a),r=a=null,clearTimeout(o),o=null)},u}F.debounce=F;var A=F;function z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],o=!0,a=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(o=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);o=!0);}catch(e){a=!0,r=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw r}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var U=function e(t,n){var o=n.default,a=void 0===o?null:o,r=n.triggerUpdate,i=void 0===r||r,s=n.onChange,c=void 0===s?function(e,t){}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.defaultVal=a,this.triggerUpdate=i,this.onChange=c};var N=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,TextureLoader:e.TextureLoader,Vector2:e.Vector2,Vector3:e.Vector3,Color:e.Color,Mesh:e.Mesh,SphereGeometry:e.SphereGeometry,MeshBasicMaterial:e.MeshBasicMaterial,BackSide:e.BackSide,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical,Clock:e.Clock},Y=function(e){function t(t,n){var o,a,r,i,s;this.object=t,this.domElement=void 0!==n?n:document,this.enabled=!0,this.target=new e.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,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:e.MOUSE.LEFT,ZOOM:e.MOUSE.MIDDLE,PAN:e.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return m.phi},this.getAzimuthalAngle=function(){return m.theta},this.reset=function(){c.target.copy(c.target0),c.object.position.copy(c.position0),c.object.zoom=c.zoom0,c.object.updateProjectionMatrix(),c.dispatchEvent(u),c.update(),p=h.NONE},this.update=(o=new e.Vector3,a=(new e.Quaternion).setFromUnitVectors(t.up,new e.Vector3(0,1,0)),r=a.clone().inverse(),i=new e.Vector3,s=new e.Quaternion,function(){var e=c.object.position;return o.copy(e).sub(c.target),o.applyQuaternion(a),m.setFromVector3(o),c.autoRotate&&p===h.NONE&&T(2*Math.PI/60/60*c.autoRotateSpeed),m.theta+=g.theta,m.phi+=g.phi,m.theta=Math.max(c.minAzimuthAngle,Math.min(c.maxAzimuthAngle,m.theta)),m.phi=Math.max(c.minPolarAngle,Math.min(c.maxPolarAngle,m.phi)),m.makeSafe(),m.radius*=b,m.radius=Math.max(c.minDistance,Math.min(c.maxDistance,m.radius)),c.target.add(v),o.setFromSpherical(m),o.applyQuaternion(r),e.copy(c.target).add(o),c.object.lookAt(c.target),!0===c.enableDamping?(g.theta*=1-c.dampingFactor,g.phi*=1-c.dampingFactor):g.set(0,0,0),b=1,v.set(0,0,0),!!(y||i.distanceToSquared(c.object.position)>f||8*(1-s.dot(c.object.quaternion))>f)&&(c.dispatchEvent(u),i.copy(c.object.position),s.copy(c.object.quaternion),y=!1,!0)}),this.dispose=function(){c.domElement.removeEventListener("contextmenu",Z,!1),c.domElement.removeEventListener("mousedown",A,!1),c.domElement.removeEventListener("wheel",N,!1),c.domElement.removeEventListener("touchstart",H,!1),c.domElement.removeEventListener("touchend",q,!1),c.domElement.removeEventListener("touchmove",X,!1),document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",Y,!1)};var c=this,u={type:"change"},l={type:"start"},d={type:"end"},h={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},p=h.NONE,f=1e-6,m=new e.Spherical,g=new e.Spherical,b=1,v=new e.Vector3,y=!1,w=new e.Vector2,E=new e.Vector2,k=new e.Vector2,S=new e.Vector2,_=new e.Vector2,C=new e.Vector2,P=new e.Vector2,O=new e.Vector2,j=new e.Vector2;function x(){return Math.pow(.95,c.zoomSpeed)}function T(e){g.theta-=e}function L(e){g.phi-=e}var R,I=(R=new e.Vector3,function(e,t){R.setFromMatrixColumn(t,0),R.multiplyScalar(-e),v.add(R)}),M=function(){var t=new e.Vector3;return function(e,n){t.setFromMatrixColumn(n,1),t.multiplyScalar(e),v.add(t)}}(),D=function(){var t=new e.Vector3;return function(n,o){var a=c.domElement===document?c.domElement.body:c.domElement;if(c.object instanceof e.PerspectiveCamera){var r=c.object.position;t.copy(r).sub(c.target);var i=t.length();i*=Math.tan(c.object.fov/2*Math.PI/180),I(2*n*i/a.clientHeight,c.object.matrix),M(2*o*i/a.clientHeight,c.object.matrix)}else c.object instanceof e.OrthographicCamera?(I(n*(c.object.right-c.object.left)/c.object.zoom/a.clientWidth,c.object.matrix),M(o*(c.object.top-c.object.bottom)/c.object.zoom/a.clientHeight,c.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),c.enablePan=!1)}}();function V(t){c.object instanceof e.PerspectiveCamera?b/=t:c.object instanceof e.OrthographicCamera?(c.object.zoom=Math.max(c.minZoom,Math.min(c.maxZoom,c.object.zoom*t)),c.object.updateProjectionMatrix(),y=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),c.enableZoom=!1)}function F(t){c.object instanceof e.PerspectiveCamera?b*=t:c.object instanceof e.OrthographicCamera?(c.object.zoom=Math.max(c.minZoom,Math.min(c.maxZoom,c.object.zoom/t)),c.object.updateProjectionMatrix(),y=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),c.enableZoom=!1)}function A(e){if(!1!==c.enabled){if(e.preventDefault(),e.button===c.mouseButtons.ORBIT){if(!1===c.enableRotate)return;!function(e){w.set(e.clientX,e.clientY)}(e),p=h.ROTATE}else if(e.button===c.mouseButtons.ZOOM){if(!1===c.enableZoom)return;!function(e){P.set(e.clientX,e.clientY)}(e),p=h.DOLLY}else if(e.button===c.mouseButtons.PAN){if(!1===c.enablePan)return;!function(e){S.set(e.clientX,e.clientY)}(e),p=h.PAN}p!==h.NONE&&(document.addEventListener("mousemove",z,!1),document.addEventListener("mouseup",U,!1),c.dispatchEvent(l))}}function z(e){if(!1!==c.enabled)if(e.preventDefault(),p===h.ROTATE){if(!1===c.enableRotate)return;!function(e){E.set(e.clientX,e.clientY),k.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;T(2*Math.PI*k.x/t.clientWidth*c.rotateSpeed),L(2*Math.PI*k.y/t.clientHeight*c.rotateSpeed),w.copy(E),c.update()}(e)}else if(p===h.DOLLY){if(!1===c.enableZoom)return;!function(e){O.set(e.clientX,e.clientY),j.subVectors(O,P),j.y>0?V(x()):j.y<0&&F(x()),P.copy(O),c.update()}(e)}else if(p===h.PAN){if(!1===c.enablePan)return;!function(e){_.set(e.clientX,e.clientY),C.subVectors(_,S),D(C.x,C.y),S.copy(_),c.update()}(e)}}function U(e){!1!==c.enabled&&(document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",U,!1),c.dispatchEvent(d),p=h.NONE)}function N(e){!1===c.enabled||!1===c.enableZoom||p!==h.NONE&&p!==h.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?F(x()):e.deltaY>0&&V(x()),c.update()}(e),c.dispatchEvent(l),c.dispatchEvent(d))}function Y(e){!1!==c.enabled&&!1!==c.enableKeys&&!1!==c.enablePan&&function(e){switch(e.keyCode){case c.keys.UP:D(0,c.keyPanSpeed),c.update();break;case c.keys.BOTTOM:D(0,-c.keyPanSpeed),c.update();break;case c.keys.LEFT:D(c.keyPanSpeed,0),c.update();break;case c.keys.RIGHT:D(-c.keyPanSpeed,0),c.update()}}(e)}function H(e){if(!1!==c.enabled){switch(e.touches.length){case 1:if(!1===c.enableRotate)return;!function(e){w.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_ROTATE;break;case 2:if(!1===c.enableZoom)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);P.set(0,o)}(e),p=h.TOUCH_DOLLY;break;case 3:if(!1===c.enablePan)return;!function(e){S.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_PAN;break;default:p=h.NONE}p!==h.NONE&&c.dispatchEvent(l)}}function X(e){if(!1!==c.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:if(!1===c.enableRotate)return;if(p!==h.TOUCH_ROTATE)return;!function(e){E.set(e.touches[0].pageX,e.touches[0].pageY),k.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;T(2*Math.PI*k.x/t.clientWidth*c.rotateSpeed),L(2*Math.PI*k.y/t.clientHeight*c.rotateSpeed),w.copy(E),c.update()}(e);break;case 2:if(!1===c.enableZoom)return;if(p!==h.TOUCH_DOLLY)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);O.set(0,o),j.subVectors(O,P),j.y>0?F(x()):j.y<0&&V(x()),P.copy(O),c.update()}(e);break;case 3:if(!1===c.enablePan)return;if(p!==h.TOUCH_PAN)return;!function(e){_.set(e.touches[0].pageX,e.touches[0].pageY),C.subVectors(_,S),D(C.x,C.y),S.copy(_),c.update()}(e);break;default:p=h.NONE}}function q(e){!1!==c.enabled&&(c.dispatchEvent(d),p=h.NONE)}function Z(e){e.preventDefault()}c.domElement.addEventListener("contextmenu",Z,!1),c.domElement.addEventListener("mousedown",A,!1),c.domElement.addEventListener("wheel",N,!1),c.domElement.addEventListener("touchstart",H,!1),c.domElement.addEventListener("touchend",q,!1),c.domElement.addEventListener("touchmove",X,!1),window.addEventListener("keydown",Y,!1),this.update()}return t.prototype=Object.create(e.EventDispatcher.prototype),t.prototype.constructor=t,Object.defineProperties(t.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(e){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!e}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(e){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!e}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(e){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!e}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(e){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!e}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(e){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!e}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(e){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=e}}}),t}(N),H=(function(e){e.FlyControls=function(t,n,o){function a(e,t){return function(){t.apply(e,arguments)}}function r(e){e.preventDefault()}this.object=t,this.domElement=void 0!==n?n:document,n&&this.domElement.setAttribute("tabindex",-1),this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1,this.tmpQuaternion=new e.Quaternion,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new e.Vector3(0,0,0),this.rotationVector=new e.Vector3(0,0,0),this.keydown=function(e){if(!e.altKey){switch(e.keyCode){case 16:this.movementSpeedMultiplier=.1;break;case 87:this.moveState.forward=1;break;case 83:this.moveState.back=1;break;case 65:this.moveState.left=1;break;case 68:this.moveState.right=1;break;case 82:this.moveState.up=1;break;case 70:this.moveState.down=1;break;case 38:this.moveState.pitchUp=1;break;case 40:this.moveState.pitchDown=1;break;case 37:this.moveState.yawLeft=1;break;case 39:this.moveState.yawRight=1;break;case 81:this.moveState.rollLeft=1;break;case 69:this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(e){switch(e.keyCode){case 16:this.movementSpeedMultiplier=1;break;case 87:this.moveState.forward=0;break;case 83:this.moveState.back=0;break;case 65:this.moveState.left=0;break;case 68:this.moveState.right=0;break;case 82:this.moveState.up=0;break;case 70:this.moveState.down=0;break;case 38:this.moveState.pitchUp=0;break;case 40:this.moveState.pitchDown=0;break;case 37:this.moveState.yawLeft=0;break;case 39:this.moveState.yawRight=0;break;case 81:this.moveState.rollLeft=0;break;case 69:this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(e){if(this.domElement!==document&&this.domElement.focus(),e.preventDefault(),e.stopPropagation(),this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(e){if(!this.dragToLook||this.mouseStatus>0){var t=this.getContainerDimensions(),n=t.size[0]/2,o=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-o)/o,this.updateRotationVector()}},this.mouseup=function(e){if(e.preventDefault(),e.stopPropagation(),this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(e){var t=e*this.movementSpeed,n=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*n,this.rotationVector.y*n,this.rotationVector.z*n,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),this.object.rotation.setFromQuaternion(this.object.quaternion,this.object.rotation.order)},this.updateMovementVector=function(){var e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener("contextmenu",r,!1),this.domElement.removeEventListener("mousedown",s,!1),this.domElement.removeEventListener("mousemove",i,!1),this.domElement.removeEventListener("mouseup",c,!1),window.removeEventListener("keydown",u,!1),window.removeEventListener("keyup",l,!1)};var i=a(this,this.mousemove),s=a(this,this.mousedown),c=a(this,this.mouseup),u=a(this,this.keydown),l=a(this,this.keyup);this.domElement.addEventListener("contextmenu",r,!1),this.domElement.addEventListener("mousemove",i,!1),this.domElement.addEventListener("mousedown",s,!1),this.domElement.addEventListener("mouseup",c,!1),window.addEventListener("keydown",u,!1),window.addEventListener("keyup",l,!1),this.updateMovementVector(),this.updateRotationVector()}}(N),N.FlyControls);return function(e){var t=e.stateInit,n=void 0===t?function(){return{}}:t,o=e.props,a=void 0===o?{}:o,r=e.methods,i=void 0===r?{}:r,s=e.aliases,c=void 0===s?{}:s,u=e.init,l=void 0===u?function(){}:u,d=e.update,h=void 0===d?function(){}:d,p=Object.keys(a).map((function(e){return new U(e,a[e])}));return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},n instanceof Function?n(e):n,{initialised:!1}),o={};function a(t){return r(t,e),s(),a}var r=function(e,n){l.call(a,e,t,n),t.initialised=!0},s=A((function(){t.initialised&&(h.call(a,t,o),o={})}),1);return p.forEach((function(e){a[e.name]=function(e){var n=e.name,r=e.triggerUpdate,i=void 0!==r&&r,c=e.onChange,u=void 0===c?function(e,t){}:c,l=e.defaultVal,d=void 0===l?null:l;return function(e){var r=t[n];if(!arguments.length)return r;var c=void 0===e?d:e;return t[n]=c,u.call(a,c,t,r),!o.hasOwnProperty(n)&&(o[n]=r),i&&s(),a}}(e)})),Object.keys(i).forEach((function(e){a[e]=function(){for(var n,o=arguments.length,r=new Array(o),s=0;s<o;s++)r[s]=arguments[s];return(n=i[e]).call.apply(n,[a,t].concat(r))}})),Object.entries(c).forEach((function(e){var t=z(e,2),n=t[0],o=t[1];return a[n]=a[o]})),a.resetProps=function(){return p.forEach((function(e){a[e.name](e.defaultVal)})),a},a.resetProps(),t._rerender=s,a}}({props:{width:{default:window.innerWidth,onChange:function(e,t,n){isNaN(e)&&(t.width=n)}},height:{default:window.innerHeight,onChange:function(e,t,n){isNaN(e)&&(t.height=n)}},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},postProcessingComposer:{triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null,t.toolTipElem&&(t.toolTipElem.innerHTML="")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(e){if(e.initialised){if(e.controls.update&&e.controls.update(e.clock.getDelta()),e.postProcessingComposer?e.postProcessingComposer.render():e.renderer.render(e.scene,e.camera),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.controlsDragging){var n=new N.Raycaster;n.params.Line.threshold=e.lineHoverPrecision,n.setFromCamera(e.mousePos,e.camera);var o=n.intersectObjects(e.objects,!0).map((function(e){return e.object})).sort(e.hoverOrderComparator);t=o.length?o[0]:null}t!==e.hoverObj&&(e.onHover(t,e.hoverObj),e.toolTipElem.innerHTML=t&&((a=e.tooltipContent)instanceof Function?a:"string"==typeof a?function(e){return e[a]}:function(e){return a})(t)||"",e.hoverObj=t)}V.update()}var a;return this},cameraPosition:function(e,t,n,o){var a=e.camera;if(t&&e.initialised){var r=t,i=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},a.position),c=d();new V.Tween(s).to(r,o).easing(V.Easing.Quadratic.Out).onUpdate(u).start(),new V.Tween(c).to(i,o/3).easing(V.Easing.Quadratic.Out).onUpdate(l).start()}else u(r),l(i);return this}return Object.assign({},a.position,{lookAt:d()});function u(e){var t=e.x,n=e.y,o=e.z;void 0!==t&&(a.position.x=t),void 0!==n&&(a.position.y=n),void 0!==o&&(a.position.z=o)}function l(t){e.controls.target=new N.Vector3(t.x,t.y,t.z)}function d(){return Object.assign(new N.Vector3(0,0,-1e3).applyQuaternion(a.quaternion).add(a.position))}},renderer:function(e){return e.renderer},scene:function(e){return e.scene},camera:function(e){return e.camera},controls:function(e){return e.controls},tbControls:function(e){return e.controls}},stateInit:function(){return{scene:new N.Scene,camera:new N.PerspectiveCamera,clock:new N.Clock}},init:function(e,t,n){var o=n.controlType,r=void 0===o?"trackball":o,i=n.rendererConfig,s=void 0===i?{}:i,c=n.waitForLoadComplete,u=void 0===c||c;e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.style.position="relative",t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="scene-nav-info",t.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[r]||"",t.navInfo.style.display=t.showNavInfo?null:"none",t.toolTipElem=document.createElement("div"),t.toolTipElem.classList.add("scene-tooltip"),t.container.appendChild(t.toolTipElem),t.mousePos=new N.Vector2,t.mousePos.x=-2,t.mousePos.y=-2,t.container.addEventListener("mousemove",(function(e){if(t.enablePointerInteraction){var n=(a=t.container,r=a.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:r.top+s,left:r.left+i}),o={x:e.pageX-n.left,y:e.pageY-n.top};t.mousePos.x=o.x/t.width*2-1,t.mousePos.y=-o.y/t.height*2+1,t.toolTipElem.style.top="".concat(o.y,"px"),t.toolTipElem.style.left="".concat(o.x,"px"),t.toolTipElem.style.transform="translate(-".concat(o.x/t.width*100,"%, 21px)")}var a,r,i,s}),!1),t.container.addEventListener("click",(function(e){t.ignoreOneClick?t.ignoreOneClick=!1:t.onClick(t.hoverObj||null,e)}),!1),t.container.addEventListener("mouseup",(function(e){if(2===e.button&&t.onRightClick){if(t.ignoreOneClick)return void(t.ignoreOneClick=!1);t.onRightClick(t.hoverObj||null,e)}}),!1),t.container.addEventListener("contextmenu",(function(e){t.onRightClick&&e.preventDefault()}),!1),t.renderer=new N.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},s)),t.renderer.setPixelRatio(window.devicePixelRatio),t.container.appendChild(t.renderer.domElement),t.controls=new{trackball:a,orbit:Y,fly:H}[r](t.camera,t.renderer.domElement),"fly"===r&&(t.controls.movementSpeed=300,t.controls.rollSpeed=Math.PI/6,t.controls.dragToLook=!0),"trackball"!==r&&"orbit"!==r||(t.controls.minDistance=.1,t.controls.maxDistance=t.skyRadius,t.controls.addEventListener("start",(function(){return t.controlsEngaged=!0})),t.controls.addEventListener("change",(function(){t.controlsEngaged&&(t.controlsDragging=!0,t.ignoreOneClick=!0)})),t.controls.addEventListener("end",(function(){t.controlsEngaged=!1,t.controlsDragging=!1}))),t.renderer.setSize(t.width,t.height),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix(),t.camera.position.z=1e3,t.scene.add(t.skysphere=new N.Mesh),t.skysphere.visible=!1,t.loadComplete=t.scene.visible=!u,window.scene=t.scene},update:function(e,t){if(e.width&&e.height&&(t.hasOwnProperty("width")||t.hasOwnProperty("height"))&&(e.container.style.width=e.width,e.container.style.height=e.height,e.renderer.setSize(e.width,e.height),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix()),t.hasOwnProperty("skyRadius")&&e.skyRadius&&(e.controls.hasOwnProperty("maxDistance")&&t.skyRadius&&(e.controls.maxDistance=e.skyRadius),e.camera.far=2.5*e.skyRadius,e.camera.updateProjectionMatrix(),e.skysphere.geometry=new N.SphereGeometry(e.skyRadius)),t.hasOwnProperty("backgroundColor")){var n=O(e.backgroundColor).alpha;void 0===n&&(n=1),e.renderer.setClearColor(new N.Color(I(1,e.backgroundColor)),n)}function o(){e.loadComplete=e.scene.visible=!0}t.hasOwnProperty("backgroundImageUrl")&&(e.backgroundImageUrl?(new N.TextureLoader).load(e.backgroundImageUrl,(function(t){e.skysphere.material=new N.MeshBasicMaterial({map:t,side:N.BackSide}),e.skysphere.visible=!0,e.onBackgroundImageLoaded&&setTimeout(e.onBackgroundImageLoaded),!e.loadComplete&&o()})):(e.skysphere.visible=!1,e.skysphere.material.map=null,!e.loadComplete&&o())),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none"),t.hasOwnProperty("objects")&&((t.objects||[]).forEach((function(t){return e.scene.remove(t)})),e.objects.forEach((function(t){return e.scene.add(t)})))}})})); | ||
// Version 1.13.2 three-render-objects - https://github.com/vasturiano/three-render-objects | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("three")):"function"==typeof define&&define.amd?define(["three"],t):(e=e||self).ThreeRenderObjects=t(e.THREE)}(this,(function(e){"use strict";var t="default"in e?e.default:e;!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}(".scene-nav-info {\n bottom: 5px;\n width: 100%;\n text-align: center;\n color: slategrey;\n opacity: 0.7;\n font-size: 10px;\n}\n\n.scene-tooltip {\n color: lavender;\n font-size: 15px;\n}\n\n.scene-nav-info, .scene-tooltip {\n position: absolute;\n font-family: sans-serif;\n pointer-events: none;\n}");var n,o=window.THREE||t,a=n=function(e,t){var n=this,a=-1,r=0,i=1,s=2,c=3,u=4;this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new o.Vector3;var l=new o.Vector3,d=a,h=a,p=new o.Vector3,f=new o.Vector2,m=new o.Vector2,g=new o.Vector3,b=0,v=new o.Vector2,y=new o.Vector2,w=0,E=0,k=new o.Vector2,S=new o.Vector2;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var _={type:"change"},C={type:"start"},P={type:"end"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height}},this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)};var O,j,x,T,L,R,I,M,D,V,F,A=(O=new o.Vector2,function(e,t){return O.set((e-n.screen.left)/n.screen.width,(t-n.screen.top)/n.screen.height),O}),z=function(){var e=new o.Vector2;return function(t,o){return e.set((t-.5*n.screen.width-n.screen.left)/(.5*n.screen.width),(n.screen.height+2*(n.screen.top-o))/n.screen.width),e}}();function U(e,t){return Array.isArray(e)?-1!==e.indexOf(t):e===t}function N(e){!1!==n.enabled&&(window.removeEventListener("keydown",N),h=d,d===a&&(U(n.keys[r],e.keyCode)&&!n.noRotate?d=r:U(n.keys[i],e.keyCode)&&!n.noZoom?d=i:U(n.keys[s],e.keyCode)&&!n.noPan&&(d=s)))}function Y(e){!1!==n.enabled&&(d=h,window.addEventListener("keydown",N,!1))}function H(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d===a&&(d=e.button),d!==r||n.noRotate?d!==i||n.noZoom?d!==s||n.noPan||(k.copy(A(e.pageX,e.pageY)),S.copy(k)):(v.copy(A(e.pageX,e.pageY)),y.copy(v)):(m.copy(z(e.pageX,e.pageY)),f.copy(m)),document.addEventListener("mousemove",X,!1),document.addEventListener("mouseup",q,!1),n.dispatchEvent(C))}function X(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d!==r||n.noRotate?d!==i||n.noZoom?d!==s||n.noPan||S.copy(A(e.pageX,e.pageY)):y.copy(A(e.pageX,e.pageY)):(f.copy(m),m.copy(z(e.pageX,e.pageY))))}function q(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),d=a,document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",q),n.dispatchEvent(P))}function Z(e){if(!1!==n.enabled){switch(e.preventDefault(),e.stopPropagation(),e.deltaMode){case 2:v.y-=.025*e.deltaY;break;case 1:v.y-=.01*e.deltaY;break;default:v.y-=25e-5*e.deltaY}n.dispatchEvent(C),n.dispatchEvent(P)}}function B(e){if(!1!==n.enabled){switch(e.touches.length){case 1:d=c,m.copy(z(e.touches[0].pageX,e.touches[0].pageY)),f.copy(m);break;default:d=u;var t=e.touches[0].pageX-e.touches[1].pageX,o=e.touches[0].pageY-e.touches[1].pageY;E=w=Math.sqrt(t*t+o*o);var a=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;k.copy(A(a,r)),S.copy(k)}n.dispatchEvent(C)}}function Q(e){if(!1!==n.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:f.copy(m),m.copy(z(e.touches[0].pageX,e.touches[0].pageY));break;default:var t=e.touches[0].pageX-e.touches[1].pageX,o=e.touches[0].pageY-e.touches[1].pageY;E=Math.sqrt(t*t+o*o);var a=(e.touches[0].pageX+e.touches[1].pageX)/2,r=(e.touches[0].pageY+e.touches[1].pageY)/2;S.copy(A(a,r))}}function G(e){if(!1!==n.enabled){switch(e.touches.length){case 0:d=a;break;case 1:d=c,m.copy(z(e.touches[0].pageX,e.touches[0].pageY)),f.copy(m)}n.dispatchEvent(P)}}function W(e){!1!==n.enabled&&e.preventDefault()}this.rotateCamera=(x=new o.Vector3,T=new o.Quaternion,L=new o.Vector3,R=new o.Vector3,I=new o.Vector3,M=new o.Vector3,function(){M.set(m.x-f.x,m.y-f.y,0),(j=M.length())?(p.copy(n.object.position).sub(n.target),L.copy(p).normalize(),R.copy(n.object.up).normalize(),I.crossVectors(R,L).normalize(),R.setLength(m.y-f.y),I.setLength(m.x-f.x),M.copy(R.add(I)),x.crossVectors(M,p).normalize(),j*=n.rotateSpeed,T.setFromAxisAngle(x,j),p.applyQuaternion(T),n.object.up.applyQuaternion(T),g.copy(x),b=j):!n.staticMoving&&b&&(b*=Math.sqrt(1-n.dynamicDampingFactor),p.copy(n.object.position).sub(n.target),T.setFromAxisAngle(g,b),p.applyQuaternion(T),n.object.up.applyQuaternion(T)),f.copy(m)}),this.zoomCamera=function(){var e;d===u?(e=w/E,w=E,p.multiplyScalar(e)):(1!==(e=1+(y.y-v.y)*n.zoomSpeed)&&e>0&&p.multiplyScalar(e),n.staticMoving?v.copy(y):v.y+=(y.y-v.y)*this.dynamicDampingFactor)},this.panCamera=(D=new o.Vector2,V=new o.Vector3,F=new o.Vector3,function(){D.copy(S).sub(k),D.lengthSq()&&(D.multiplyScalar(p.length()*n.panSpeed),F.copy(p).cross(n.object.up).setLength(D.x),F.add(V.copy(n.object.up).setLength(D.y)),n.object.position.add(F),n.target.add(F),n.staticMoving?k.copy(S):k.add(D.subVectors(S,k).multiplyScalar(n.dynamicDampingFactor)))}),this.checkDistances=function(){n.noZoom&&n.noPan||(p.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,p.setLength(n.maxDistance)),v.copy(y)),p.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,p.setLength(n.minDistance)),v.copy(y)))},this.update=function(){p.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,p),n.checkDistances(),n.object.lookAt(n.target),l.distanceToSquared(n.object.position)>1e-6&&(n.dispatchEvent(_),l.copy(n.object.position))},this.reset=function(){d=a,h=a,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),p.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent(_),l.copy(n.object.position)},this.dispose=function(){this.domElement.removeEventListener("contextmenu",W,!1),this.domElement.removeEventListener("mousedown",H,!1),this.domElement.removeEventListener("wheel",Z,!1),this.domElement.removeEventListener("touchstart",B,!1),this.domElement.removeEventListener("touchend",G,!1),this.domElement.removeEventListener("touchmove",Q,!1),document.removeEventListener("mousemove",X,!1),document.removeEventListener("mouseup",q,!1),window.removeEventListener("keydown",N,!1),window.removeEventListener("keyup",Y,!1)},this.domElement.addEventListener("contextmenu",W,!1),this.domElement.addEventListener("mousedown",H,!1),this.domElement.addEventListener("wheel",Z,!1),this.domElement.addEventListener("touchstart",B,!1),this.domElement.addEventListener("touchend",G,!1),this.domElement.addEventListener("touchmove",Q,!1),window.addEventListener("keydown",N,!1),window.addEventListener("keyup",Y,!1),this.handleResize(),this.update()};n.prototype=Object.create(o.EventDispatcher.prototype);function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e){return(s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e,t,n){return(l=u()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var a=new(Function.bind.apply(e,o));return n&&c(a,n.prototype),a}).apply(null,arguments)}function d(e){var t="function"==typeof Map?new Map:void 0;return(d=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return l(e,arguments,s(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),c(o,e)})(e)}var h={1:"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\n\n",2:"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\n\n",3:"Passed an incorrect argument to a color function, please pass a string representation of a color.\n\n",4:"Couldn't generate valid rgb string from %s, it returned %s.\n\n",5:"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\n\n",6:"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\n\n",7:"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\n\n",8:"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\n\n",9:"Please provide a number of steps to the modularScale helper.\n\n",10:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",11:'Invalid value passed as base to modularScale, expected number or em string but got "%s"\n\n',12:'Expected a string ending in "px" or a number passed as the first argument to %s(), got "%s" instead.\n\n',13:'Expected a string ending in "px" or a number passed as the second argument to %s(), got "%s" instead.\n\n',14:'Passed invalid pixel value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',15:'Passed invalid base value ("%s") to %s(), please pass a value like "12px" or 12.\n\n',16:"You must provide a template to this method.\n\n",17:"You passed an unsupported selector state to this method.\n\n",18:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",19:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",20:"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",21:"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\n\n",22:"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\n\n",23:"fontFace expects a name of a font-family.\n\n",24:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",25:"fontFace expects localFonts to be an array.\n\n",26:"fontFace expects fileFormats to be an array.\n\n",27:"radialGradient requries at least 2 color-stops to properly render.\n\n",28:"Please supply a filename to retinaImage() as the first argument.\n\n",29:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",30:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",31:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\n\n",32:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\n\n",33:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\n\n",34:"borderRadius expects a radius value as a string or number as the second argument.\n\n",35:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',36:"Property must be a string value.\n\n",37:"Syntax Error at %s.\n\n",38:"Formula contains a function that needs parentheses at %s.\n\n",39:"Formula is missing closing parenthesis at %s.\n\n",40:"Formula has too many closing parentheses at %s.\n\n",41:"All values in a formula must have the same unit or be unitless.\n\n",42:"Please provide a number of steps to the modularScale helper.\n\n",43:"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\n\n",44:"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\n\n",45:"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\n\n",46:"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\n\n",47:"minScreen and maxScreen must be provided as stringified numbers with the same units.\n\n",48:"fromSize and toSize must be provided as stringified numbers with the same units.\n\n",49:"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\n\n",50:"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\n\n",51:"Expects the first argument object to have the properties prop, fromSize, and toSize.\n\n",52:"fontFace expects either the path to the font file(s) or a name of a local copy.\n\n",53:"fontFace expects localFonts to be an array.\n\n",54:"fontFace expects fileFormats to be an array.\n\n",55:"fontFace expects a name of a font-family.\n\n",56:"linearGradient requries at least 2 color-stops to properly render.\n\n",57:"radialGradient requries at least 2 color-stops to properly render.\n\n",58:"Please supply a filename to retinaImage() as the first argument.\n\n",59:"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\n\n",60:"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\n\n",61:"Property must be a string value.\n\n",62:"borderRadius expects a radius value as a string or number as the second argument.\n\n",63:'borderRadius expects one of "top", "bottom", "left" or "right" as the first argument.\n\n',64:"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\n\n",65:"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\n\n",66:"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\n\n",67:"You must provide a template to this method.\n\n",68:"You passed an unsupported selector state to this method.\n\n",69:'Expected a string ending in "px" or a number passed as the first argument to %s(), got %s instead.\n\n',70:'Expected a string ending in "px" or a number passed as the second argument to %s(), got %s instead.\n\n',71:'Passed invalid pixel value %s to %s(), please pass a value like "12px" or 12.\n\n',72:'Passed invalid base value %s to %s(), please pass a value like "12px" or 12.\n'};function p(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,a=t[0],r=[];for(o=1;o<t.length;o+=1)r.push(t[o]);return r.forEach((function(e){a=a.replace(/%[a-z]/,e)})),a}var f=function(e){var t,n;function o(t){var n;if("production"===process.env.NODE_ENV)n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/master/src/internalHelpers/errors.md#"+t+" for more information.")||this;else{for(var o=arguments.length,a=new Array(o>1?o-1:0),r=1;r<o;r++)a[r-1]=arguments[r];n=e.call(this,p.apply(void 0,[h[t]].concat(a)))||this}return i(n)}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(d(Error));function m(e){return Math.round(255*e)}function g(e,t,n){return m(e)+","+m(t)+","+m(n)}function b(e,t,n,o){if(void 0===o&&(o=g),0===t)return o(n,n,n);var a=(e%360+360)%360/60,r=(1-Math.abs(2*n-1))*t,i=r*(1-Math.abs(a%2-1)),s=0,c=0,u=0;a>=0&&a<1?(s=r,c=i):a>=1&&a<2?(s=i,c=r):a>=2&&a<3?(c=r,u=i):a>=3&&a<4?(c=i,u=r):a>=4&&a<5?(s=i,u=r):a>=5&&a<6&&(s=r,u=i);var l=n-r/2;return o(s+l,c+l,u+l)}var v={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};var y=/^#[a-fA-F0-9]{6}$/,w=/^#[a-fA-F0-9]{8}$/,E=/^#[a-fA-F0-9]{3}$/,k=/^#[a-fA-F0-9]{4}$/,S=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,_=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,C=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,P=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function O(e){if("string"!=typeof e)throw new f(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return v[t]?"#"+v[t]:e}(e);if(t.match(y))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(w)){var n=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:n}}if(t.match(E))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(k)){var o=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:o}}var a=S.exec(t);if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10)};var r=_.exec(t);if(r)return{red:parseInt(""+r[1],10),green:parseInt(""+r[2],10),blue:parseInt(""+r[3],10),alpha:parseFloat(""+r[4])};var i=C.exec(t);if(i){var s="rgb("+b(parseInt(""+i[1],10),parseInt(""+i[2],10)/100,parseInt(""+i[3],10)/100)+")",c=S.exec(s);if(!c)throw new f(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var u=P.exec(t);if(u){var l="rgb("+b(parseInt(""+u[1],10),parseInt(""+u[2],10)/100,parseInt(""+u[3],10)/100)+")",d=S.exec(l);if(!d)throw new f(4,t,l);return{red:parseInt(""+d[1],10),green:parseInt(""+d[2],10),blue:parseInt(""+d[3],10),alpha:parseFloat(""+u[4])}}throw new f(5)}var j=function(e){return 7===e.length&&e[1]===e[2]&&e[3]===e[4]&&e[5]===e[6]?"#"+e[1]+e[3]+e[5]:e};function x(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function T(e,t,n){if("number"==typeof e&&"number"==typeof t&&"number"==typeof n)return j("#"+x(e)+x(t)+x(n));if("object"==typeof e&&void 0===t&&void 0===n)return j("#"+x(e.red)+x(e.green)+x(e.blue));throw new f(6)}function L(e){return function e(t,n,o){return function(){var a=o.concat(Array.prototype.slice.call(arguments));return a.length>=n?t.apply(this,a):e(t,n,a)}}(e,e.length,[])}function R(e,t){if("transparent"===t)return t;var n,o,a,i=O(t),s="number"==typeof i.alpha?i.alpha:1;return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var a=O(e);return"rgba("+a.red+","+a.green+","+a.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof n&&"number"==typeof o)return o>=1?T(e,t,n):"rgba("+e+","+t+","+n+","+o+")";if("object"==typeof e&&void 0===t&&void 0===n&&void 0===o)return e.alpha>=1?T(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new f(7)}(r({},i,{alpha:(n=0,o=1,a=(100*s+100*parseFloat(e))/100,Math.max(n,Math.min(o,a)))}))}var I=L(R),M=function(){this._tweens={},this._tweensAddedDuringUpdate={}};M.prototype={getAll:function(){return Object.keys(this._tweens).map(function(e){return this._tweens[e]}.bind(this))},removeAll:function(){this._tweens={}},add:function(e){this._tweens[e.getId()]=e,this._tweensAddedDuringUpdate[e.getId()]=e},remove:function(e){delete this._tweens[e.getId()],delete this._tweensAddedDuringUpdate[e.getId()]},update:function(e,t){var n=Object.keys(this._tweens);if(0===n.length)return!1;for(e=void 0!==e?e:V.now();n.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<n.length;o++){var a=this._tweens[n[o]];a&&!1===a.update(e)&&(a._isPlaying=!1,t||delete this._tweens[n[o]])}n=Object.keys(this._tweensAddedDuringUpdate)}return!0}};var D,V=new M;V.Group=M,V._nextId=0,V.nextId=function(){return V._nextId++},"undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?V.now=function(){var e=process.hrtime();return 1e3*e[0]+e[1]/1e6}:"undefined"!=typeof self&&void 0!==self.performance&&void 0!==self.performance.now?V.now=self.performance.now.bind(self.performance):void 0!==Date.now?V.now=Date.now:V.now=function(){return(new Date).getTime()},V.Tween=function(e,t){this._isPaused=!1,this._pauseStart=null,this._object=e,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._repeatDelayTime=void 0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=V.Easing.Linear.None,this._interpolationFunction=V.Interpolation.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onRepeatCallback=null,this._onCompleteCallback=null,this._onStopCallback=null,this._group=t||V,this._id=V.nextId()},V.Tween.prototype={getId:function(){return this._id},isPlaying:function(){return this._isPlaying},isPaused:function(){return this._isPaused},to:function(e,t){return this._valuesEnd=Object.create(e),void 0!==t&&(this._duration=t),this},duration:function(e){return this._duration=e,this},start:function(e){for(var t in this._group.add(this),this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._startTime=void 0!==e?"string"==typeof e?V.now()+parseFloat(e):e:V.now(),this._startTime+=this._delayTime,this._valuesEnd){if(this._valuesEnd[t]instanceof Array){if(0===this._valuesEnd[t].length)continue;this._valuesEnd[t]=[this._object[t]].concat(this._valuesEnd[t])}void 0!==this._object[t]&&(void 0===this._valuesStart[t]&&(this._valuesStart[t]=this._object[t]),this._valuesStart[t]instanceof Array==!1&&(this._valuesStart[t]*=1),this._valuesStartRepeat[t]=this._valuesStart[t]||0)}return this},stop:function(){return this._isPlaying?(this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,null!==this._onStopCallback&&this._onStopCallback(this._object),this.stopChainedTweens(),this):this},end:function(){return this.update(1/0),this},pause:function(e){return this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=void 0===e?V.now():e,this._group.remove(this)),this},resume:function(e){return this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=(void 0===e?V.now():e)-this._pauseStart,this._pauseStart=0,this._group.add(this),this):this},stopChainedTweens:function(){for(var e=0,t=this._chainedTweens.length;e<t;e++)this._chainedTweens[e].stop()},group:function(e){return this._group=e,this},delay:function(e){return this._delayTime=e,this},repeat:function(e){return this._repeat=e,this},repeatDelay:function(e){return this._repeatDelayTime=e,this},yoyo:function(e){return this._yoyo=e,this},easing:function(e){return this._easingFunction=e,this},interpolation:function(e){return this._interpolationFunction=e,this},chain:function(){return this._chainedTweens=arguments,this},onStart:function(e){return this._onStartCallback=e,this},onUpdate:function(e){return this._onUpdateCallback=e,this},onRepeat:function(e){return this._onRepeatCallback=e,this},onComplete:function(e){return this._onCompleteCallback=e,this},onStop:function(e){return this._onStopCallback=e,this},update:function(e){var t,n,o;if(e<this._startTime)return!0;for(t in!1===this._onStartCallbackFired&&(null!==this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),n=(e-this._startTime)/this._duration,n=0===this._duration||n>1?1:n,o=this._easingFunction(n),this._valuesEnd)if(void 0!==this._valuesStart[t]){var a=this._valuesStart[t]||0,r=this._valuesEnd[t];r instanceof Array?this._object[t]=this._interpolationFunction(r,o):("string"==typeof r&&(r="+"===r.charAt(0)||"-"===r.charAt(0)?a+parseFloat(r):parseFloat(r)),"number"==typeof r&&(this._object[t]=a+(r-a)*o))}if(null!==this._onUpdateCallback&&this._onUpdateCallback(this._object,n),1===n){if(this._repeat>0){for(t in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat){if("string"==typeof this._valuesEnd[t]&&(this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(this._valuesEnd[t])),this._yoyo){var i=this._valuesStartRepeat[t];this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=i}this._valuesStart[t]=this._valuesStartRepeat[t]}return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=e+this._repeatDelayTime:this._startTime=e+this._delayTime,null!==this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}null!==this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var s=0,c=this._chainedTweens.length;s<c;s++)this._chainedTweens[s].start(this._startTime+this._duration);return!1}return!0}},V.Easing={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){return 0===e?0:1===e?1:-Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)},Out:function(e){return 0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin(5*(e-.1)*Math.PI)+1},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?-.5*Math.pow(2,10*(e-1))*Math.sin(5*(e-1.1)*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin(5*(e-1.1)*Math.PI)+1}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(e){return 1-V.Easing.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?.5*V.Easing.Bounce.In(2*e):.5*V.Easing.Bounce.Out(2*e-1)+.5}}},V.Interpolation={Linear:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),r=V.Interpolation.Utils.Linear;return t<0?r(e[0],e[1],o):t>1?r(e[n],e[n-1],n-o):r(e[a],e[a+1>n?n:a+1],o-a)},Bezier:function(e,t){for(var n=0,o=e.length-1,a=Math.pow,r=V.Interpolation.Utils.Bernstein,i=0;i<=o;i++)n+=a(1-t,o-i)*a(t,i)*e[i]*r(o,i);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),r=V.Interpolation.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(a=Math.floor(o=n*(1+t))),r(e[(a-1+n)%n],e[a],e[(a+1)%n],e[(a+2)%n],o-a)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-o)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):r(e[a?a-1:0],e[a],e[n<a+1?n:a+1],e[n<a+2?n:a+2],o-a)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=V.Interpolation.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(D=[1],function(e){var t=1;if(D[e])return D[e];for(var n=e;n>1;n--)t*=n;return D[e]=t,t}),CatmullRom:function(e,t,n,o,a){var r=.5*(n-e),i=.5*(o-t),s=a*a;return(2*t-2*n+r+i)*(a*s)+(-3*t+3*n-2*r-i)*s+r*a+t}}},V.version="18.5.0";function F(e,t,n){var o,a,r,i,s;function c(){var u=Date.now()-i;u<t&&u>=0?o=setTimeout(c,t-u):(o=null,n||(s=e.apply(r,a),r=a=null))}null==t&&(t=100);var u=function(){r=this,a=arguments,i=Date.now();var u=n&&!o;return o||(o=setTimeout(c,t)),u&&(s=e.apply(r,a),r=a=null),s};return u.clear=function(){o&&(clearTimeout(o),o=null)},u.flush=function(){o&&(s=e.apply(r,a),r=a=null,clearTimeout(o),o=null)},u}F.debounce=F;var A=F;function z(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e))&&"[object Arguments]"!==Object.prototype.toString.call(e))return;var n=[],o=!0,a=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(o=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);o=!0);}catch(e){a=!0,r=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw r}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var U=function e(t,n){var o=n.default,a=void 0===o?null:o,r=n.triggerUpdate,i=void 0===r||r,s=n.onChange,c=void 0===s?function(e,t){}:s;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.name=t,this.defaultVal=a,this.triggerUpdate=i,this.onChange=c};var N=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,TextureLoader:e.TextureLoader,Vector2:e.Vector2,Vector3:e.Vector3,Color:e.Color,Mesh:e.Mesh,SphereGeometry:e.SphereGeometry,MeshBasicMaterial:e.MeshBasicMaterial,BackSide:e.BackSide,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical,Clock:e.Clock},Y=function(e){function t(t,n){var o,a,r,i,s;this.object=t,this.domElement=void 0!==n?n:document,this.enabled=!0,this.target=new e.Vector3,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.25,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:e.MOUSE.LEFT,ZOOM:e.MOUSE.MIDDLE,PAN:e.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return m.phi},this.getAzimuthalAngle=function(){return m.theta},this.reset=function(){c.target.copy(c.target0),c.object.position.copy(c.position0),c.object.zoom=c.zoom0,c.object.updateProjectionMatrix(),c.dispatchEvent(u),c.update(),p=h.NONE},this.update=(o=new e.Vector3,a=(new e.Quaternion).setFromUnitVectors(t.up,new e.Vector3(0,1,0)),r=a.clone().inverse(),i=new e.Vector3,s=new e.Quaternion,function(){var e=c.object.position;return o.copy(e).sub(c.target),o.applyQuaternion(a),m.setFromVector3(o),c.autoRotate&&p===h.NONE&&T(2*Math.PI/60/60*c.autoRotateSpeed),m.theta+=g.theta,m.phi+=g.phi,m.theta=Math.max(c.minAzimuthAngle,Math.min(c.maxAzimuthAngle,m.theta)),m.phi=Math.max(c.minPolarAngle,Math.min(c.maxPolarAngle,m.phi)),m.makeSafe(),m.radius*=b,m.radius=Math.max(c.minDistance,Math.min(c.maxDistance,m.radius)),c.target.add(v),o.setFromSpherical(m),o.applyQuaternion(r),e.copy(c.target).add(o),c.object.lookAt(c.target),!0===c.enableDamping?(g.theta*=1-c.dampingFactor,g.phi*=1-c.dampingFactor):g.set(0,0,0),b=1,v.set(0,0,0),!!(y||i.distanceToSquared(c.object.position)>f||8*(1-s.dot(c.object.quaternion))>f)&&(c.dispatchEvent(u),i.copy(c.object.position),s.copy(c.object.quaternion),y=!1,!0)}),this.dispose=function(){c.domElement.removeEventListener("contextmenu",Z,!1),c.domElement.removeEventListener("mousedown",A,!1),c.domElement.removeEventListener("wheel",N,!1),c.domElement.removeEventListener("touchstart",H,!1),c.domElement.removeEventListener("touchend",q,!1),c.domElement.removeEventListener("touchmove",X,!1),document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",Y,!1)};var c=this,u={type:"change"},l={type:"start"},d={type:"end"},h={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},p=h.NONE,f=1e-6,m=new e.Spherical,g=new e.Spherical,b=1,v=new e.Vector3,y=!1,w=new e.Vector2,E=new e.Vector2,k=new e.Vector2,S=new e.Vector2,_=new e.Vector2,C=new e.Vector2,P=new e.Vector2,O=new e.Vector2,j=new e.Vector2;function x(){return Math.pow(.95,c.zoomSpeed)}function T(e){g.theta-=e}function L(e){g.phi-=e}var R,I=(R=new e.Vector3,function(e,t){R.setFromMatrixColumn(t,0),R.multiplyScalar(-e),v.add(R)}),M=function(){var t=new e.Vector3;return function(e,n){t.setFromMatrixColumn(n,1),t.multiplyScalar(e),v.add(t)}}(),D=function(){var t=new e.Vector3;return function(n,o){var a=c.domElement===document?c.domElement.body:c.domElement;if(c.object instanceof e.PerspectiveCamera){var r=c.object.position;t.copy(r).sub(c.target);var i=t.length();i*=Math.tan(c.object.fov/2*Math.PI/180),I(2*n*i/a.clientHeight,c.object.matrix),M(2*o*i/a.clientHeight,c.object.matrix)}else c.object instanceof e.OrthographicCamera?(I(n*(c.object.right-c.object.left)/c.object.zoom/a.clientWidth,c.object.matrix),M(o*(c.object.top-c.object.bottom)/c.object.zoom/a.clientHeight,c.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),c.enablePan=!1)}}();function V(t){c.object instanceof e.PerspectiveCamera?b/=t:c.object instanceof e.OrthographicCamera?(c.object.zoom=Math.max(c.minZoom,Math.min(c.maxZoom,c.object.zoom*t)),c.object.updateProjectionMatrix(),y=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),c.enableZoom=!1)}function F(t){c.object instanceof e.PerspectiveCamera?b*=t:c.object instanceof e.OrthographicCamera?(c.object.zoom=Math.max(c.minZoom,Math.min(c.maxZoom,c.object.zoom/t)),c.object.updateProjectionMatrix(),y=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),c.enableZoom=!1)}function A(e){if(!1!==c.enabled){if(e.preventDefault(),e.button===c.mouseButtons.ORBIT){if(!1===c.enableRotate)return;!function(e){w.set(e.clientX,e.clientY)}(e),p=h.ROTATE}else if(e.button===c.mouseButtons.ZOOM){if(!1===c.enableZoom)return;!function(e){P.set(e.clientX,e.clientY)}(e),p=h.DOLLY}else if(e.button===c.mouseButtons.PAN){if(!1===c.enablePan)return;!function(e){S.set(e.clientX,e.clientY)}(e),p=h.PAN}p!==h.NONE&&(document.addEventListener("mousemove",z,!1),document.addEventListener("mouseup",U,!1),c.dispatchEvent(l))}}function z(e){if(!1!==c.enabled)if(e.preventDefault(),p===h.ROTATE){if(!1===c.enableRotate)return;!function(e){E.set(e.clientX,e.clientY),k.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;T(2*Math.PI*k.x/t.clientWidth*c.rotateSpeed),L(2*Math.PI*k.y/t.clientHeight*c.rotateSpeed),w.copy(E),c.update()}(e)}else if(p===h.DOLLY){if(!1===c.enableZoom)return;!function(e){O.set(e.clientX,e.clientY),j.subVectors(O,P),j.y>0?V(x()):j.y<0&&F(x()),P.copy(O),c.update()}(e)}else if(p===h.PAN){if(!1===c.enablePan)return;!function(e){_.set(e.clientX,e.clientY),C.subVectors(_,S),D(C.x,C.y),S.copy(_),c.update()}(e)}}function U(e){!1!==c.enabled&&(document.removeEventListener("mousemove",z,!1),document.removeEventListener("mouseup",U,!1),c.dispatchEvent(d),p=h.NONE)}function N(e){!1===c.enabled||!1===c.enableZoom||p!==h.NONE&&p!==h.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?F(x()):e.deltaY>0&&V(x()),c.update()}(e),c.dispatchEvent(l),c.dispatchEvent(d))}function Y(e){!1!==c.enabled&&!1!==c.enableKeys&&!1!==c.enablePan&&function(e){switch(e.keyCode){case c.keys.UP:D(0,c.keyPanSpeed),c.update();break;case c.keys.BOTTOM:D(0,-c.keyPanSpeed),c.update();break;case c.keys.LEFT:D(c.keyPanSpeed,0),c.update();break;case c.keys.RIGHT:D(-c.keyPanSpeed,0),c.update()}}(e)}function H(e){if(!1!==c.enabled){switch(e.touches.length){case 1:if(!1===c.enableRotate)return;!function(e){w.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_ROTATE;break;case 2:if(!1===c.enableZoom)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);P.set(0,o)}(e),p=h.TOUCH_DOLLY;break;case 3:if(!1===c.enablePan)return;!function(e){S.set(e.touches[0].pageX,e.touches[0].pageY)}(e),p=h.TOUCH_PAN;break;default:p=h.NONE}p!==h.NONE&&c.dispatchEvent(l)}}function X(e){if(!1!==c.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:if(!1===c.enableRotate)return;if(p!==h.TOUCH_ROTATE)return;!function(e){E.set(e.touches[0].pageX,e.touches[0].pageY),k.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;T(2*Math.PI*k.x/t.clientWidth*c.rotateSpeed),L(2*Math.PI*k.y/t.clientHeight*c.rotateSpeed),w.copy(E),c.update()}(e);break;case 2:if(!1===c.enableZoom)return;if(p!==h.TOUCH_DOLLY)return;!function(e){var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,o=Math.sqrt(t*t+n*n);O.set(0,o),j.subVectors(O,P),j.y>0?F(x()):j.y<0&&V(x()),P.copy(O),c.update()}(e);break;case 3:if(!1===c.enablePan)return;if(p!==h.TOUCH_PAN)return;!function(e){_.set(e.touches[0].pageX,e.touches[0].pageY),C.subVectors(_,S),D(C.x,C.y),S.copy(_),c.update()}(e);break;default:p=h.NONE}}function q(e){!1!==c.enabled&&(c.dispatchEvent(d),p=h.NONE)}function Z(e){e.preventDefault()}c.domElement.addEventListener("contextmenu",Z,!1),c.domElement.addEventListener("mousedown",A,!1),c.domElement.addEventListener("wheel",N,!1),c.domElement.addEventListener("touchstart",H,!1),c.domElement.addEventListener("touchend",q,!1),c.domElement.addEventListener("touchmove",X,!1),window.addEventListener("keydown",Y,!1),this.update()}return t.prototype=Object.create(e.EventDispatcher.prototype),t.prototype.constructor=t,Object.defineProperties(t.prototype,{center:{get:function(){return console.warn("THREE.OrbitControls: .center has been renamed to .target"),this.target}},noZoom:{get:function(){return console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),!this.enableZoom},set:function(e){console.warn("THREE.OrbitControls: .noZoom has been deprecated. Use .enableZoom instead."),this.enableZoom=!e}},noRotate:{get:function(){return console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),!this.enableRotate},set:function(e){console.warn("THREE.OrbitControls: .noRotate has been deprecated. Use .enableRotate instead."),this.enableRotate=!e}},noPan:{get:function(){return console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),!this.enablePan},set:function(e){console.warn("THREE.OrbitControls: .noPan has been deprecated. Use .enablePan instead."),this.enablePan=!e}},noKeys:{get:function(){return console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),!this.enableKeys},set:function(e){console.warn("THREE.OrbitControls: .noKeys has been deprecated. Use .enableKeys instead."),this.enableKeys=!e}},staticMoving:{get:function(){return console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),!this.enableDamping},set:function(e){console.warn("THREE.OrbitControls: .staticMoving has been deprecated. Use .enableDamping instead."),this.enableDamping=!e}},dynamicDampingFactor:{get:function(){return console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor},set:function(e){console.warn("THREE.OrbitControls: .dynamicDampingFactor has been renamed. Use .dampingFactor instead."),this.dampingFactor=e}}}),t}(N),H=(function(e){e.FlyControls=function(t,n,o){function a(e,t){return function(){t.apply(e,arguments)}}function r(e){e.preventDefault()}this.object=t,this.domElement=void 0!==n?n:document,n&&this.domElement.setAttribute("tabindex",-1),this.movementSpeed=1,this.rollSpeed=.005,this.dragToLook=!1,this.autoForward=!1,this.tmpQuaternion=new e.Quaternion,this.mouseStatus=0,this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0},this.moveVector=new e.Vector3(0,0,0),this.rotationVector=new e.Vector3(0,0,0),this.keydown=function(e){if(!e.altKey){switch(e.keyCode){case 16:this.movementSpeedMultiplier=.1;break;case 87:this.moveState.forward=1;break;case 83:this.moveState.back=1;break;case 65:this.moveState.left=1;break;case 68:this.moveState.right=1;break;case 82:this.moveState.up=1;break;case 70:this.moveState.down=1;break;case 38:this.moveState.pitchUp=1;break;case 40:this.moveState.pitchDown=1;break;case 37:this.moveState.yawLeft=1;break;case 39:this.moveState.yawRight=1;break;case 81:this.moveState.rollLeft=1;break;case 69:this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}},this.keyup=function(e){switch(e.keyCode){case 16:this.movementSpeedMultiplier=1;break;case 87:this.moveState.forward=0;break;case 83:this.moveState.back=0;break;case 65:this.moveState.left=0;break;case 68:this.moveState.right=0;break;case 82:this.moveState.up=0;break;case 70:this.moveState.down=0;break;case 38:this.moveState.pitchUp=0;break;case 40:this.moveState.pitchDown=0;break;case 37:this.moveState.yawLeft=0;break;case 39:this.moveState.yawRight=0;break;case 81:this.moveState.rollLeft=0;break;case 69:this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()},this.mousedown=function(e){if(this.domElement!==document&&this.domElement.focus(),e.preventDefault(),e.stopPropagation(),this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}},this.mousemove=function(e){if(!this.dragToLook||this.mouseStatus>0){var t=this.getContainerDimensions(),n=t.size[0]/2,o=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-o)/o,this.updateRotationVector()}},this.mouseup=function(e){if(e.preventDefault(),e.stopPropagation(),this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()},this.update=function(e){var t=e*this.movementSpeed,n=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*n,this.rotationVector.y*n,this.rotationVector.z*n,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),this.object.rotation.setFromQuaternion(this.object.quaternion,this.object.rotation.order)},this.updateMovementVector=function(){var e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back},this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft},this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0,0]}},this.dispose=function(){this.domElement.removeEventListener("contextmenu",r,!1),this.domElement.removeEventListener("mousedown",s,!1),this.domElement.removeEventListener("mousemove",i,!1),this.domElement.removeEventListener("mouseup",c,!1),window.removeEventListener("keydown",u,!1),window.removeEventListener("keyup",l,!1)};var i=a(this,this.mousemove),s=a(this,this.mousedown),c=a(this,this.mouseup),u=a(this,this.keydown),l=a(this,this.keyup);this.domElement.addEventListener("contextmenu",r,!1),this.domElement.addEventListener("mousemove",i,!1),this.domElement.addEventListener("mousedown",s,!1),this.domElement.addEventListener("mouseup",c,!1),window.addEventListener("keydown",u,!1),window.addEventListener("keyup",l,!1),this.updateMovementVector(),this.updateRotationVector()}}(N),N.FlyControls);return function(e){var t=e.stateInit,n=void 0===t?function(){return{}}:t,o=e.props,a=void 0===o?{}:o,r=e.methods,i=void 0===r?{}:r,s=e.aliases,c=void 0===s?{}:s,u=e.init,l=void 0===u?function(){}:u,d=e.update,h=void 0===d?function(){}:d,p=Object.keys(a).map((function(e){return new U(e,a[e])}));return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},n instanceof Function?n(e):n,{initialised:!1}),o={};function a(t){return r(t,e),s(),a}var r=function(e,n){l.call(a,e,t,n),t.initialised=!0},s=A((function(){t.initialised&&(h.call(a,t,o),o={})}),1);return p.forEach((function(e){a[e.name]=function(e){var n=e.name,r=e.triggerUpdate,i=void 0!==r&&r,c=e.onChange,u=void 0===c?function(e,t){}:c,l=e.defaultVal,d=void 0===l?null:l;return function(e){var r=t[n];if(!arguments.length)return r;var c=void 0===e?d:e;return t[n]=c,u.call(a,c,t,r),!o.hasOwnProperty(n)&&(o[n]=r),i&&s(),a}}(e)})),Object.keys(i).forEach((function(e){a[e]=function(){for(var n,o=arguments.length,r=new Array(o),s=0;s<o;s++)r[s]=arguments[s];return(n=i[e]).call.apply(n,[a,t].concat(r))}})),Object.entries(c).forEach((function(e){var t=z(e,2),n=t[0],o=t[1];return a[n]=a[o]})),a.resetProps=function(){return p.forEach((function(e){a[e.name](e.defaultVal)})),a},a.resetProps(),t._rerender=s,a}}({props:{width:{default:window.innerWidth,onChange:function(e,t,n){isNaN(e)&&(t.width=n)}},height:{default:window.innerHeight,onChange:function(e,t,n){isNaN(e)&&(t.height=n)}},backgroundColor:{default:"#000011"},backgroundImageUrl:{},onBackgroundImageLoaded:{},showNavInfo:{default:!0},skyRadius:{default:5e4},objects:{default:[]},postProcessingComposer:{triggerUpdate:!1},enablePointerInteraction:{default:!0,onChange:function(e,t){t.hoverObj=null,t.toolTipElem&&(t.toolTipElem.innerHTML="")},triggerUpdate:!1},lineHoverPrecision:{default:1,triggerUpdate:!1},hoverOrderComparator:{default:function(){return-1},triggerUpdate:!1},tooltipContent:{triggerUpdate:!1},hoverDuringDrag:{default:!1,triggerUpdate:!1},onHover:{default:function(){},triggerUpdate:!1},onClick:{default:function(){},triggerUpdate:!1},onRightClick:{triggerUpdate:!1}},methods:{tick:function(e){if(e.initialised){if(e.controls.update&&e.controls.update(e.clock.getDelta()),e.postProcessingComposer?e.postProcessingComposer.render():e.renderer.render(e.scene,e.camera),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.controlsDragging){var n=new N.Raycaster;n.params.Line.threshold=e.lineHoverPrecision,n.setFromCamera(e.mousePos,e.camera);var o=n.intersectObjects(e.objects,!0).map((function(e){return e.object})).sort(e.hoverOrderComparator);t=o.length?o[0]:null}t!==e.hoverObj&&(e.onHover(t,e.hoverObj),e.toolTipElem.innerHTML=t&&((a=e.tooltipContent)instanceof Function?a:"string"==typeof a?function(e){return e[a]}:function(e){return a})(t)||"",e.hoverObj=t)}V.update()}var a;return this},cameraPosition:function(e,t,n,o){var a=e.camera;if(t&&e.initialised){var r=t,i=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},a.position),c=d();new V.Tween(s).to(r,o).easing(V.Easing.Quadratic.Out).onUpdate(u).start(),new V.Tween(c).to(i,o/3).easing(V.Easing.Quadratic.Out).onUpdate(l).start()}else u(r),l(i);return this}return Object.assign({},a.position,{lookAt:d()});function u(e){var t=e.x,n=e.y,o=e.z;void 0!==t&&(a.position.x=t),void 0!==n&&(a.position.y=n),void 0!==o&&(a.position.z=o)}function l(t){e.controls.target=new N.Vector3(t.x,t.y,t.z)}function d(){return Object.assign(new N.Vector3(0,0,-1e3).applyQuaternion(a.quaternion).add(a.position))}},renderer:function(e){return e.renderer},scene:function(e){return e.scene},camera:function(e){return e.camera},controls:function(e){return e.controls},tbControls:function(e){return e.controls}},stateInit:function(){return{scene:new N.Scene,camera:new N.PerspectiveCamera,clock:new N.Clock}},init:function(e,t,n){var o=n.controlType,r=void 0===o?"trackball":o,i=n.rendererConfig,s=void 0===i?{}:i,c=n.waitForLoadComplete,u=void 0===c||c;e.innerHTML="",e.appendChild(t.container=document.createElement("div")),t.container.style.position="relative",t.container.appendChild(t.navInfo=document.createElement("div")),t.navInfo.className="scene-nav-info",t.navInfo.textContent={orbit:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",trackball:"Left-click: rotate, Mouse-wheel/middle-click: zoom, Right-click: pan",fly:"WASD: move, R|F: up | down, Q|E: roll, up|down: pitch, left|right: yaw"}[r]||"",t.navInfo.style.display=t.showNavInfo?null:"none",t.toolTipElem=document.createElement("div"),t.toolTipElem.classList.add("scene-tooltip"),t.container.appendChild(t.toolTipElem),t.mousePos=new N.Vector2,t.mousePos.x=-2,t.mousePos.y=-2,t.container.addEventListener("mousemove",(function(e){if(t.enablePointerInteraction){var n=(a=t.container,r=a.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:r.top+s,left:r.left+i}),o={x:e.pageX-n.left,y:e.pageY-n.top};t.mousePos.x=o.x/t.width*2-1,t.mousePos.y=-o.y/t.height*2+1,t.toolTipElem.style.top="".concat(o.y,"px"),t.toolTipElem.style.left="".concat(o.x,"px"),t.toolTipElem.style.transform="translate(-".concat(o.x/t.width*100,"%, 21px)")}var a,r,i,s}),!1),t.container.addEventListener("mouseup",(function(e){t.ignoreOneClick?t.ignoreOneClick=!1:(0===e.button&&t.onClick(t.hoverObj||null,e),2===e.button&&t.onRightClick&&t.onRightClick(t.hoverObj||null,e))}),!1),t.container.addEventListener("contextmenu",(function(e){t.onRightClick&&e.preventDefault()}),!1),t.renderer=new N.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},s)),t.renderer.setPixelRatio(window.devicePixelRatio),t.container.appendChild(t.renderer.domElement),t.controls=new{trackball:a,orbit:Y,fly:H}[r](t.camera,t.renderer.domElement),"fly"===r&&(t.controls.movementSpeed=300,t.controls.rollSpeed=Math.PI/6,t.controls.dragToLook=!0),"trackball"!==r&&"orbit"!==r||(t.controls.minDistance=.1,t.controls.maxDistance=t.skyRadius,t.controls.addEventListener("start",(function(){return t.controlsEngaged=!0})),t.controls.addEventListener("change",(function(){t.controlsEngaged&&(t.controlsDragging=!0,t.ignoreOneClick=!0)})),t.controls.addEventListener("end",(function(){t.controlsEngaged=!1,t.controlsDragging=!1}))),t.renderer.setSize(t.width,t.height),t.camera.aspect=t.width/t.height,t.camera.updateProjectionMatrix(),t.camera.position.z=1e3,t.scene.add(t.skysphere=new N.Mesh),t.skysphere.visible=!1,t.loadComplete=t.scene.visible=!u,window.scene=t.scene},update:function(e,t){if(e.width&&e.height&&(t.hasOwnProperty("width")||t.hasOwnProperty("height"))&&(e.container.style.width=e.width,e.container.style.height=e.height,e.renderer.setSize(e.width,e.height),e.camera.aspect=e.width/e.height,e.camera.updateProjectionMatrix()),t.hasOwnProperty("skyRadius")&&e.skyRadius&&(e.controls.hasOwnProperty("maxDistance")&&t.skyRadius&&(e.controls.maxDistance=e.skyRadius),e.camera.far=2.5*e.skyRadius,e.camera.updateProjectionMatrix(),e.skysphere.geometry=new N.SphereGeometry(e.skyRadius)),t.hasOwnProperty("backgroundColor")){var n=O(e.backgroundColor).alpha;void 0===n&&(n=1),e.renderer.setClearColor(new N.Color(I(1,e.backgroundColor)),n)}function o(){e.loadComplete=e.scene.visible=!0}t.hasOwnProperty("backgroundImageUrl")&&(e.backgroundImageUrl?(new N.TextureLoader).load(e.backgroundImageUrl,(function(t){e.skysphere.material=new N.MeshBasicMaterial({map:t,side:N.BackSide}),e.skysphere.visible=!0,e.onBackgroundImageLoaded&&setTimeout(e.onBackgroundImageLoaded),!e.loadComplete&&o()})):(e.skysphere.visible=!1,e.skysphere.material.map=null,!e.loadComplete&&o())),t.hasOwnProperty("showNavInfo")&&(e.navInfo.style.display=e.showNavInfo?null:"none"),t.hasOwnProperty("objects")&&((t.objects||[]).forEach((function(t){return e.scene.remove(t)})),e.objects.forEach((function(t){return e.scene.add(t)})))}})})); |
@@ -299,3 +299,3 @@ import { WebGLRenderer, Scene, PerspectiveCamera, Raycaster, TextureLoader, Vector2, Vector3, Color, Mesh, SphereGeometry, MeshBasicMaterial, BackSide, EventDispatcher, MOUSE, Quaternion, Spherical, Clock } from 'three'; | ||
state.container.addEventListener('click', function (ev) { | ||
state.container.addEventListener('mouseup', function (ev) { | ||
if (state.ignoreOneClick) { | ||
@@ -307,13 +307,9 @@ state.ignoreOneClick = false; // because of controls end event | ||
state.onClick(state.hoverObj || null, ev); // trigger background clicks with null | ||
}, false); // Handle right-click events | ||
if (ev.button === 0) { | ||
// left-click | ||
state.onClick(state.hoverObj || null, ev); // trigger background clicks with null | ||
} | ||
state.container.addEventListener('mouseup', function (ev) { | ||
if (ev.button === 2 && state.onRightClick) { | ||
if (state.ignoreOneClick) { | ||
state.ignoreOneClick = false; // because of controls end event | ||
return; | ||
} | ||
// right-click | ||
state.onRightClick(state.hoverObj || null, ev); | ||
@@ -320,0 +316,0 @@ } |
{ | ||
"name": "three-render-objects", | ||
"version": "1.13.1", | ||
"version": "1.13.2", | ||
"description": "Easy way to render ThreeJS objects with built-in interaction defaults", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
559846
4066