Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

three-render-objects

Package Overview
Dependencies
Maintainers
1
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

three-render-objects - npm Package Compare versions

Comparing version 1.13.1 to 1.13.2

16

dist/three-render-objects.common.js

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc