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.8.0 to 1.8.1

14

dist/three-render-objects.common.js

@@ -312,8 +312,12 @@ 'use strict';

state.container.addEventListener('contextmenu', function (ev) {
if (!state.onRightClick) return true; // default contextmenu behavior
state.container.addEventListener('mouseup', function (ev) {
if (ev.button === 2 && state.onRightClick) {
if (state.ignoreOneClick) {
state.ignoreOneClick = false; // because of controls end event
ev.preventDefault();
state.onRightClick(state.hoverObj || null, ev);
return false;
return;
}
state.onRightClick(state.hoverObj || null, ev);
}
}, false); // Setup renderer, camera and controls

@@ -320,0 +324,0 @@

@@ -1,2 +0,2 @@

// Version 1.8.0 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,q=window.THREE||t,c=n=function(e,t){var i=this,r={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN: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 q.Vector3;var n=new q.Vector3,s=r.NONE,o=r.NONE,a=new q.Vector3,c=new q.Vector2,u=new q.Vector2,l=new q.Vector3,d=0,h=new q.Vector2,p=new q.Vector2,f=0,m=0,g=new q.Vector2,b=new q.Vector2;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var v={type:"change"},y={type:"start"},w={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 E,_,k,O,S,P,C,T,j,x,R,L,M=(E=new q.Vector2,function(e,t){return E.set((e-i.screen.left)/i.screen.width,(t-i.screen.top)/i.screen.height),E}),I=(_=new q.Vector2,function(e,t){return _.set((e-.5*i.screen.width-i.screen.left)/(.5*i.screen.width),(i.screen.height+2*(i.screen.top-t))/i.screen.width),_});function D(e,t){return Array.isArray(e)?-1!==e.indexOf(t):e===t}function V(e){!1!==i.enabled&&(window.removeEventListener("keydown",V),(o=s)===r.NONE&&(D(i.keys[r.ROTATE],e.keyCode)&&!i.noRotate?s=r.ROTATE:D(i.keys[r.ZOOM],e.keyCode)&&!i.noZoom?s=r.ZOOM:D(i.keys[r.PAN],e.keyCode)&&!i.noPan&&(s=r.PAN)))}function A(e){!1!==i.enabled&&(s=o,window.addEventListener("keydown",V,!1))}function F(e){!1!==i.enabled&&(e.preventDefault(),e.stopPropagation(),s===r.NONE&&(s=e.button),s!==r.ROTATE||i.noRotate?s!==r.ZOOM||i.noZoom?s!==r.PAN||i.noPan||(g.copy(M(e.pageX,e.pageY)),b.copy(g)):(h.copy(M(e.pageX,e.pageY)),p.copy(h)):(u.copy(I(e.pageX,e.pageY)),c.copy(u)),document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",U,!1),i.dispatchEvent(y))}function N(e){!1!==i.enabled&&(e.preventDefault(),e.stopPropagation(),s!==r.ROTATE||i.noRotate?s!==r.ZOOM||i.noZoom?s!==r.PAN||i.noPan||b.copy(M(e.pageX,e.pageY)):p.copy(M(e.pageX,e.pageY)):(c.copy(u),u.copy(I(e.pageX,e.pageY))))}function U(e){!1!==i.enabled&&(e.preventDefault(),e.stopPropagation(),s=r.NONE,document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",U),i.dispatchEvent(w))}function z(e){if(!1!==i.enabled){switch(e.preventDefault(),e.stopPropagation(),e.deltaMode){case 2:h.y-=.025*e.deltaY;break;case 1:h.y-=.01*e.deltaY;break;default:h.y-=25e-5*e.deltaY}i.dispatchEvent(y),i.dispatchEvent(w)}}function H(e){if(!1!==i.enabled){switch(e.touches.length){case 1:s=r.TOUCH_ROTATE,u.copy(I(e.touches[0].pageX,e.touches[0].pageY)),c.copy(u);break;default:s=r.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;m=f=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;g.copy(M(o,a)),b.copy(g)}i.dispatchEvent(y)}}function Y(e){if(!1!==i.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:c.copy(u),u.copy(I(e.touches[0].pageX,e.touches[0].pageY));break;default:var t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;m=Math.sqrt(t*t+n*n);var o=(e.touches[0].pageX+e.touches[1].pageX)/2,a=(e.touches[0].pageY+e.touches[1].pageY)/2;b.copy(M(o,a))}}function Z(e){if(!1!==i.enabled){switch(e.touches.length){case 0:s=r.NONE;break;case 1:s=r.TOUCH_ROTATE,u.copy(I(e.touches[0].pageX,e.touches[0].pageY)),c.copy(u)}i.dispatchEvent(w)}}function X(e){!1!==i.enabled&&e.preventDefault()}this.rotateCamera=(O=new q.Vector3,S=new q.Quaternion,P=new q.Vector3,C=new q.Vector3,T=new q.Vector3,j=new q.Vector3,function(){j.set(u.x-c.x,u.y-c.y,0),(k=j.length())?(a.copy(i.object.position).sub(i.target),P.copy(a).normalize(),C.copy(i.object.up).normalize(),T.crossVectors(C,P).normalize(),C.setLength(u.y-c.y),T.setLength(u.x-c.x),j.copy(C.add(T)),O.crossVectors(j,a).normalize(),k*=i.rotateSpeed,S.setFromAxisAngle(O,k),a.applyQuaternion(S),i.object.up.applyQuaternion(S),l.copy(O),d=k):!i.staticMoving&&d&&(d*=Math.sqrt(1-i.dynamicDampingFactor),a.copy(i.object.position).sub(i.target),S.setFromAxisAngle(l,d),a.applyQuaternion(S),i.object.up.applyQuaternion(S)),c.copy(u)}),this.zoomCamera=function(){var e;s===r.TOUCH_ZOOM_PAN?(e=f/m,f=m,a.multiplyScalar(e)):(1!==(e=1+(p.y-h.y)*i.zoomSpeed)&&0<e&&a.multiplyScalar(e),i.staticMoving?h.copy(p):h.y+=(p.y-h.y)*this.dynamicDampingFactor)},this.panCamera=(x=new q.Vector2,R=new q.Vector3,L=new q.Vector3,function(){x.copy(b).sub(g),x.lengthSq()&&(x.multiplyScalar(a.length()*i.panSpeed),L.copy(a).cross(i.object.up).setLength(x.x),L.add(R.copy(i.object.up).setLength(x.y)),i.object.position.add(L),i.target.add(L),i.staticMoving?g.copy(b):g.add(x.subVectors(b,g).multiplyScalar(i.dynamicDampingFactor)))}),this.checkDistances=function(){i.noZoom&&i.noPan||(a.lengthSq()>i.maxDistance*i.maxDistance&&(i.object.position.addVectors(i.target,a.setLength(i.maxDistance)),h.copy(p)),a.lengthSq()<i.minDistance*i.minDistance&&(i.object.position.addVectors(i.target,a.setLength(i.minDistance)),h.copy(p)))},this.update=function(){a.subVectors(i.object.position,i.target),i.noRotate||i.rotateCamera(),i.noZoom||i.zoomCamera(),i.noPan||i.panCamera(),i.object.position.addVectors(i.target,a),i.checkDistances(),i.object.lookAt(i.target),1e-6<n.distanceToSquared(i.object.position)&&(i.dispatchEvent(v),n.copy(i.object.position))},this.reset=function(){s=r.NONE,o=r.NONE,i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.up.copy(i.up0),a.subVectors(i.object.position,i.target),i.object.lookAt(i.target),i.dispatchEvent(v),n.copy(i.object.position)},this.dispose=function(){this.domElement.removeEventListener("contextmenu",X,!1),this.domElement.removeEventListener("mousedown",F,!1),this.domElement.removeEventListener("wheel",z,!1),this.domElement.removeEventListener("touchstart",H,!1),this.domElement.removeEventListener("touchend",Z,!1),this.domElement.removeEventListener("touchmove",Y,!1),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",V,!1),window.removeEventListener("keyup",A,!1)},this.domElement.addEventListener("contextmenu",X,!1),this.domElement.addEventListener("mousedown",F,!1),this.domElement.addEventListener("wheel",z,!1),this.domElement.addEventListener("touchstart",H,!1),this.domElement.addEventListener("touchend",Z,!1),this.domElement.addEventListener("touchmove",Y,!1),window.addEventListener("keydown",V,!1),window.addEventListener("keyup",A,!1),this.handleResize(),this.update()};n.prototype=Object.create(q.EventDispatcher.prototype);function o(){return(o=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 a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function r(e,t,n){return(r=function(){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}}()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var a=new(Function.bind.apply(e,o));return n&&i(a,n.prototype),a}).apply(null,arguments)}function s(e){var n="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||!function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return r(e,arguments,a(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),i(t,e)})(e)}var u={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'};var h=function(i){function e(e){var t;if("production"===process.env.NODE_ENV)t=i.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/master/src/internalHelpers/errors.md#"+e+" for more information.")||this;else{for(var n=arguments.length,o=new Array(1<n?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];t=i.call(this,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,a=t[0],i=[];for(o=1;o<t.length;o+=1)i.push(t[o]);return i.forEach(function(e){a=a.replace(/%[a-z]/,e)}),a}.apply(void 0,[u[e]].concat(o)))||this}return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(t)}return function(e,t){e.prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t}(e,i),e}(s(Error));function l(e){return Math.round(255*e)}function d(e,t,n){return l(e)+","+l(t)+","+l(n)}function p(e,t,n,o){if(void 0===o&&(o=d),0===t)return o(n,n,n);var a=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,r=i*(1-Math.abs(a%2-1)),s=0,c=0,u=0;0<=a&&a<1?(s=i,c=r):1<=a&&a<2?(s=r,c=i):2<=a&&a<3?(c=i,u=r):3<=a&&a<4?(c=r,u=i):4<=a&&a<5?(s=r,u=i):5<=a&&a<6&&(s=i,u=r);var l=n-i/2;return o(s+l,c+l,u+l)}var f={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 m=/^#[a-fA-F0-9]{6}$/,g=/^#[a-fA-F0-9]{8}$/,b=/^#[a-fA-F0-9]{3}$/,v=/^#[a-fA-F0-9]{4}$/,y=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,w=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,E=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*\)$/i,_=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3})%\s*,\s*(\d{1,3})%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function k(e){if("string"!=typeof e)throw new h(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return f[t]?"#"+f[t]:e}(e);if(t.match(m))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(g)){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(b))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(v)){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=y.exec(t);if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10)};var i=w.exec(t);if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])};var r=E.exec(t);if(r){var s="rgb("+p(parseInt(""+r[1],10),parseInt(""+r[2],10)/100,parseInt(""+r[3],10)/100)+")",c=y.exec(s);if(!c)throw new h(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var u=_.exec(t);if(u){var l="rgb("+p(parseInt(""+u[1],10),parseInt(""+u[2],10)/100,parseInt(""+u[3],10)/100)+")",d=y.exec(l);if(!d)throw new h(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 h(5)}var O=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 S(e){var t=e.toString(16);return 1===t.length?"0"+t:t}function P(e,t,n){if("number"==typeof e&&"number"==typeof t&&"number"==typeof n)return O("#"+S(e)+S(t)+S(n));if("object"==typeof e&&void 0===t&&void 0===n)return O("#"+S(e.red)+S(e.green)+S(e.blue));throw new h(6)}function C(e){return function t(n,o,a){return function(){var e=a.concat(Array.prototype.slice.call(arguments));return e.length>=o?n.apply(this,e):t(n,o,e)}}(e,e.length,[])}function T(e,t){if("transparent"===t)return t;var n=k(t);return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var a=k(e);return"rgba("+a.red+","+a.green+","+a.blue+","+t+")"}if("number"==typeof e&&"number"==typeof t&&"number"==typeof n&&"number"==typeof o)return 1<=o?P(e,t,n):"rgba("+e+","+t+","+n+","+o+")";if("object"==typeof e&&void 0===t&&void 0===n&&void 0===o)return 1<=e.alpha?P(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")";throw new h(7)}(o({},n,{alpha:function(e,t,n){return Math.max(e,Math.min(t,n))}(0,1,(100*("number"==typeof n.alpha?n.alpha:1)+100*parseFloat(e))/100)}))}function j(){this._tweens={},this._tweensAddedDuringUpdate={}}var x=C(T);j.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:L.now();0<n.length;){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 R,L=new j;L.Group=j,L._nextId=0,L.nextId=function(){return L._nextId++},"undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?L.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?L.now=self.performance.now.bind(self.performance):void 0!==Date.now?L.now=Date.now:L.now=function(){return(new Date).getTime()},L.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=L.Easing.Linear.None,this._interpolationFunction=L.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||L,this._id=L.nextId()},L.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?L.now()+parseFloat(e):e:L.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},end:function(){return this.update(1/0),this},pause:function(e){return this._isPaused||!this._isPlaying||(this._isPaused=!0,this._pauseStart=void 0===e?L.now():e,this._group.remove(this)),this},resume:function(e){return this._isPaused&&this._isPlaying&&(this._isPaused=!1,this._startTime+=(void 0===e?L.now():e)-this._pauseStart,this._pauseStart=0,this._group.add(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||1<n?1:n,o=this._easingFunction(n),this._valuesEnd)if(void 0!==this._valuesStart[t]){var a=this._valuesStart[t]||0,i=this._valuesEnd[t];i instanceof Array?this._object[t]=this._interpolationFunction(i,o):("string"==typeof i&&(i="+"===i.charAt(0)||"-"===i.charAt(0)?a+parseFloat(i):parseFloat(i)),"number"==typeof i&&(this._object[t]=a+(i-a)*o))}if(null!==this._onUpdateCallback&&this._onUpdateCallback(this._object,n),1!==n)return!0;if(0<this._repeat){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 r=this._valuesStartRepeat[t];this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=r}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}},L.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){return e*e*(2.70158*e-1.70158)},Out:function(e){return--e*e*(2.70158*e+1.70158)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((1+t)*e-t)*.5:.5*((e-=2)*e*((1+t)*e+t)+2)}},Bounce:{In:function(e){return 1-L.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*L.Easing.Bounce.In(2*e):.5*L.Easing.Bounce.Out(2*e-1)+.5}}},L.Interpolation={Linear:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),i=L.Interpolation.Utils.Linear;return t<0?i(e[0],e[1],o):1<t?i(e[n],e[n-1],n-o):i(e[a],e[n<a+1?n:a+1],o-a)},Bezier:function(e,t){for(var n=0,o=e.length-1,a=Math.pow,i=L.Interpolation.Utils.Bernstein,r=0;r<=o;r++)n+=a(1-t,o-r)*a(t,r)*e[r]*i(o,r);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),i=L.Interpolation.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(a=Math.floor(o=n*(1+t))),i(e[(a-1+n)%n],e[a],e[(a+1)%n],e[(a+2)%n],o-a)):t<0?e[0]-(i(e[0],e[0],e[1],e[1],-o)-e[0]):1<t?e[n]-(i(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):i(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=L.Interpolation.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(R=[1],function(e){var t=1;if(R[e])return R[e];for(var n=e;1<n;n--)t*=n;return R[e]=t}),CatmullRom:function(e,t,n,o,a){var i=.5*(n-e),r=.5*(o-t),s=a*a;return(2*t-2*n+i+r)*(a*s)+(-3*t+3*n-2*i-r)*s+i*a+t}}};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var M,I,D=(function(e,t){e.exports=function(n){function o(e){if(a[e])return a[e].exports;var t=a[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}var a={};return o.m=n,o.c=a,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,n){var o,a,i;a=[e,t],void 0!==(i="function"==typeof(o=function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(t){return t instanceof Function?t:"string"==typeof t?function(e){return e[t]}:function(e){return t}},e.exports=t.default})?o.apply(t,a):o)&&(e.exports=i)}])}(M={exports:{}},M.exports),M.exports),V=(I=D)&&I.__esModule&&Object.prototype.hasOwnProperty.call(I,"default")?I.default:I;D.accessorFn;function A(t,n,o){var a,i,r,s,c;function u(){var e=Date.now()-s;e<n&&0<=e?a=setTimeout(u,n-e):(a=null,o||(c=t.apply(r,i),r=i=null))}null==n&&(n=100);function e(){r=this,i=arguments,s=Date.now();var e=o&&!a;return a=a||setTimeout(u,n),e&&(c=t.apply(r,i),r=i=null),c}return e.clear=function(){a&&(clearTimeout(a),a=null)},e.flush=function(){a&&(c=t.apply(r,i),r=i=null,clearTimeout(a),a=null)},e}var F=A.debounce=A;function N(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,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(o=(r=s.next()).done)&&(n.push(r.value),!t||n.length!==t);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function U(e,t){var n=t.default,o=void 0===n?null:n,a=t.triggerUpdate,i=void 0===a||a,r=t.onChange,s=void 0===r?function(e,t){}:r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,U),this.name=e,this.defaultVal=o,this.triggerUpdate=i,this.onChange=s}var B,z=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,Vector2:e.Vector2,Vector3:e.Vector3,Color:e.Color,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical},H=(B=z,(Y.prototype=Object.create(B.EventDispatcher.prototype)).constructor=Y,Object.defineProperties(Y.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}}}),Y);function Y(e,t){var n,o,a,i,r;this.object=e,this.domElement=void 0!==t?t:document,this.enabled=!0,this.target=new B.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:B.MOUSE.LEFT,ZOOM:B.MOUSE.MIDDLE,PAN:B.MOUSE.RIGHT},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=function(){return f.phi},this.getAzimuthalAngle=function(){return f.theta},this.reset=function(){s.target.copy(s.target0),s.object.position.copy(s.position0),s.object.zoom=s.zoom0,s.object.updateProjectionMatrix(),s.dispatchEvent(c),s.update(),h=d.NONE},this.update=(n=new B.Vector3,o=(new B.Quaternion).setFromUnitVectors(e.up,new B.Vector3(0,1,0)),a=o.clone().inverse(),i=new B.Vector3,r=new B.Quaternion,function(){var e=s.object.position;return n.copy(e).sub(s.target),n.applyQuaternion(o),f.setFromVector3(n),s.autoRotate&&h===d.NONE&&j(2*Math.PI/60/60*s.autoRotateSpeed),f.theta+=m.theta,f.phi+=m.phi,f.theta=Math.max(s.minAzimuthAngle,Math.min(s.maxAzimuthAngle,f.theta)),f.phi=Math.max(s.minPolarAngle,Math.min(s.maxPolarAngle,f.phi)),f.makeSafe(),f.radius*=g,f.radius=Math.max(s.minDistance,Math.min(s.maxDistance,f.radius)),s.target.add(b),n.setFromSpherical(f),n.applyQuaternion(a),e.copy(s.target).add(n),s.object.lookAt(s.target),!0===s.enableDamping?(m.theta*=1-s.dampingFactor,m.phi*=1-s.dampingFactor):m.set(0,0,0),g=1,b.set(0,0,0),!(!(v||i.distanceToSquared(s.object.position)>p||8*(1-r.dot(s.object.quaternion))>p)||(s.dispatchEvent(c),i.copy(s.object.position),r.copy(s.object.quaternion),v=!1))}),this.dispose=function(){s.domElement.removeEventListener("contextmenu",Q,!1),s.domElement.removeEventListener("mousedown",N,!1),s.domElement.removeEventListener("wheel",H,!1),s.domElement.removeEventListener("touchstart",Z,!1),s.domElement.removeEventListener("touchend",q,!1),s.domElement.removeEventListener("touchmove",X,!1),document.removeEventListener("mousemove",U,!1),document.removeEventListener("mouseup",z,!1),window.removeEventListener("keydown",Y,!1)};var s=this,c={type:"change"},u={type:"start"},l={type:"end"},d={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_DOLLY:4,TOUCH_PAN:5},h=d.NONE,p=1e-6,f=new B.Spherical,m=new B.Spherical,g=1,b=new B.Vector3,v=!1,y=new B.Vector2,w=new B.Vector2,E=new B.Vector2,_=new B.Vector2,k=new B.Vector2,O=new B.Vector2,S=new B.Vector2,P=new B.Vector2,C=new B.Vector2;function T(){return Math.pow(.95,s.zoomSpeed)}function j(e){m.theta-=e}function x(e){m.phi-=e}var R,L,M,I=(R=new B.Vector3,function(e,t){R.setFromMatrixColumn(t,0),R.multiplyScalar(-e),b.add(R)}),D=(L=new B.Vector3,function(e,t){L.setFromMatrixColumn(t,1),L.multiplyScalar(e),b.add(L)}),V=(M=new B.Vector3,function(e,t){var n=s.domElement===document?s.domElement.body:s.domElement;if(s.object instanceof B.PerspectiveCamera){var o=s.object.position;M.copy(o).sub(s.target);var a=M.length();a*=Math.tan(s.object.fov/2*Math.PI/180),I(2*e*a/n.clientHeight,s.object.matrix),D(2*t*a/n.clientHeight,s.object.matrix)}else s.object instanceof B.OrthographicCamera?(I(e*(s.object.right-s.object.left)/s.object.zoom/n.clientWidth,s.object.matrix),D(t*(s.object.top-s.object.bottom)/s.object.zoom/n.clientHeight,s.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),s.enablePan=!1)});function A(e){s.object instanceof B.PerspectiveCamera?g/=e:s.object instanceof B.OrthographicCamera?(s.object.zoom=Math.max(s.minZoom,Math.min(s.maxZoom,s.object.zoom*e)),s.object.updateProjectionMatrix(),v=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),s.enableZoom=!1)}function F(e){s.object instanceof B.PerspectiveCamera?g*=e:s.object instanceof B.OrthographicCamera?(s.object.zoom=Math.max(s.minZoom,Math.min(s.maxZoom,s.object.zoom/e)),s.object.updateProjectionMatrix(),v=!0):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),s.enableZoom=!1)}function N(e){if(!1!==s.enabled){if(e.preventDefault(),e.button===s.mouseButtons.ORBIT){if(!1===s.enableRotate)return;!function(e){y.set(e.clientX,e.clientY)}(e),h=d.ROTATE}else if(e.button===s.mouseButtons.ZOOM){if(!1===s.enableZoom)return;!function(e){S.set(e.clientX,e.clientY)}(e),h=d.DOLLY}else if(e.button===s.mouseButtons.PAN){if(!1===s.enablePan)return;!function(e){_.set(e.clientX,e.clientY)}(e),h=d.PAN}h!==d.NONE&&(document.addEventListener("mousemove",U,!1),document.addEventListener("mouseup",z,!1),s.dispatchEvent(u))}}function U(e){if(!1!==s.enabled)if(e.preventDefault(),h===d.ROTATE){if(!1===s.enableRotate)return;!function(e){w.set(e.clientX,e.clientY),E.subVectors(w,y);var t=s.domElement===document?s.domElement.body:s.domElement;j(2*Math.PI*E.x/t.clientWidth*s.rotateSpeed),x(2*Math.PI*E.y/t.clientHeight*s.rotateSpeed),y.copy(w),s.update()}(e)}else if(h===d.DOLLY){if(!1===s.enableZoom)return;!function(e){P.set(e.clientX,e.clientY),C.subVectors(P,S),0<C.y?A(T()):C.y<0&&F(T()),S.copy(P),s.update()}(e)}else if(h===d.PAN){if(!1===s.enablePan)return;!function(e){k.set(e.clientX,e.clientY),O.subVectors(k,_),V(O.x,O.y),_.copy(k),s.update()}(e)}}function z(e){!1!==s.enabled&&(document.removeEventListener("mousemove",U,!1),document.removeEventListener("mouseup",z,!1),s.dispatchEvent(l),h=d.NONE)}function H(e){!1===s.enabled||!1===s.enableZoom||h!==d.NONE&&h!==d.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?F(T()):0<e.deltaY&&A(T()),s.update()}(e),s.dispatchEvent(u),s.dispatchEvent(l))}function Y(e){!1!==s.enabled&&!1!==s.enableKeys&&!1!==s.enablePan&&function(e){switch(e.keyCode){case s.keys.UP:V(0,s.keyPanSpeed),s.update();break;case s.keys.BOTTOM:V(0,-s.keyPanSpeed),s.update();break;case s.keys.LEFT:V(s.keyPanSpeed,0),s.update();break;case s.keys.RIGHT:V(-s.keyPanSpeed,0),s.update()}}(e)}function Z(e){if(!1!==s.enabled){switch(e.touches.length){case 1:if(!1===s.enableRotate)return;!function(e){y.set(e.touches[0].pageX,e.touches[0].pageY)}(e),h=d.TOUCH_ROTATE;break;case 2:if(!1===s.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);S.set(0,o)}(e),h=d.TOUCH_DOLLY;break;case 3:if(!1===s.enablePan)return;!function(e){_.set(e.touches[0].pageX,e.touches[0].pageY)}(e),h=d.TOUCH_PAN;break;default:h=d.NONE}h!==d.NONE&&s.dispatchEvent(u)}}function X(e){if(!1!==s.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:if(!1===s.enableRotate)return;if(h!==d.TOUCH_ROTATE)return;!function(e){w.set(e.touches[0].pageX,e.touches[0].pageY),E.subVectors(w,y);var t=s.domElement===document?s.domElement.body:s.domElement;j(2*Math.PI*E.x/t.clientWidth*s.rotateSpeed),x(2*Math.PI*E.y/t.clientHeight*s.rotateSpeed),y.copy(w),s.update()}(e);break;case 2:if(!1===s.enableZoom)return;if(h!==d.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);P.set(0,o),C.subVectors(P,S),0<C.y?F(T()):C.y<0&&A(T()),S.copy(P),s.update()}(e);break;case 3:if(!1===s.enablePan)return;if(h!==d.TOUCH_PAN)return;!function(e){k.set(e.touches[0].pageX,e.touches[0].pageY),O.subVectors(k,_),V(O.x,O.y),_.copy(k),s.update()}(e);break;default:h=d.NONE}}function q(e){!1!==s.enabled&&(s.dispatchEvent(l),h=d.NONE)}function Q(e){e.preventDefault()}s.domElement.addEventListener("contextmenu",Q,!1),s.domElement.addEventListener("mousedown",N,!1),s.domElement.addEventListener("wheel",H,!1),s.domElement.addEventListener("touchstart",Z,!1),s.domElement.addEventListener("touchend",q,!1),s.domElement.addEventListener("touchmove",X,!1),window.addEventListener("keydown",Y,!1),this.update()}var Z,X,Q,W,G,K,$,J,ee,te,ne,oe,ae,ie,re,se=((Z=z).FlyControls=function(e,t,n){this.object=e,n=n||{},this.domElement=void 0!==t?t:document,t&&this.domElement.setAttribute("tabindex",-1),this.movementSpeed=void 0===n.movementSpeed?1:n.movementSpeed,this.rollSpeed=void 0===n.rollSpeed?.005:n.rollSpeed,this.dragToLook=!0,this.autoForward=!1,this.tmpQuaternion=new Z.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 Z.Vector3(0,0,0),this.rotationVector=new Z.Vector3(0,0,0);var a=Date.now();function o(e,t){return function(){t.apply(e,arguments)}}this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)},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}-1<[38,40,37,39].indexOf(e.keyCode)&&e.preventDefault(),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||0<this.mouseStatus){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.mouseout=function(e){e.preventDefault(),e.stopPropagation(),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.updateRotationVector(),this.updateMovementVector()},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=Date.now(),n=(e=(t-a)/10)*this.movementSpeed,o=e*this.rollSpeed;this.object.translateX(this.moveVector.x*n),this.object.translateY(this.moveVector.y*n),this.object.translateZ(this.moveVector.z*n),this.tmpQuaternion.set(this.rotationVector.x*o,this.rotationVector.y*o,this.rotationVector.z*o,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),this.object.rotation.setFromQuaternion(this.object.quaternion,this.object.rotation.order),a=t},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.domElement.addEventListener("contextmenu",function(e){e.preventDefault()},!1),this.domElement.addEventListener("mousemove",o(this,this.mousemove),!1),this.domElement.addEventListener("mousedown",o(this,this.mousedown),!1),this.domElement.addEventListener("mouseup",o(this,this.mouseup),!1),this.domElement.addEventListener("mouseout",o(this,this.mouseout),!1),this.domElement.addEventListener("keydown",o(this,this.keydown),!1),this.domElement.addEventListener("keyup",o(this,this.keyup),!1),this.updateMovementVector(),this.updateRotationVector()},z.FlyControls);return X={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",onChange:function(e,t){if(t.renderer){var n=k(e).alpha;void 0===n&&(n=1),t.renderer.setClearColor(new z.Color(x(1,e)),n)}},triggerUpdate:!1},showNavInfo:{default:!0},objects:{default:[],onChange:function(e,t){(t.prevObjs||[]).forEach(function(e){return t.scene.remove(e)}),(t.prevObjs=e).forEach(function(e){return t.scene.add(e)})},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.renderer.render(e.scene,e.camera),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.controlsDragging){var n=new z.Raycaster;n.linePrecision=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&&V(e.tooltipContent)(t)||"",e.hoverObj=t)}L.update()}return this},cameraPosition:function(t,e,n,o){var a=t.camera;if(e&&t.initialised){var i=e,r=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},a.position),c=d();new L.Tween(s).to(i,o).easing(L.Easing.Quadratic.Out).onUpdate(u).start(),new L.Tween(c).to(r,o/3).easing(L.Easing.Quadratic.Out).onUpdate(l).start()}else u(i),l(r);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(e){t.controls.target=new z.Vector3(e.x,e.y,e.z)}function d(){return Object.assign(new z.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 z.Scene,camera:new z.PerspectiveCamera}},init:function(e,s,t){var n=t.controlType,o=void 0===n?"trackball":n,a=t.rendererConfig,i=void 0===a?{}:a;e.innerHTML="",e.appendChild(s.container=document.createElement("div")),s.container.style.position="relative",s.container.appendChild(s.navInfo=document.createElement("div")),s.navInfo.className="scene-nav-info",s.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"}[o]||"",s.navInfo.style.display=s.showNavInfo?null:"none",s.toolTipElem=document.createElement("div"),s.toolTipElem.classList.add("scene-tooltip"),s.container.appendChild(s.toolTipElem),s.mousePos=new z.Vector2,s.mousePos.x=-2,s.mousePos.y=-2,s.container.addEventListener("mousemove",function(e){if(s.enablePointerInteraction){var t=(o=s.container,a=o.getBoundingClientRect(),i=window.pageXOffset||document.documentElement.scrollLeft,r=window.pageYOffset||document.documentElement.scrollTop,{top:a.top+r,left:a.left+i}),n={x:e.pageX-t.left,y:e.pageY-t.top};s.mousePos.x=n.x/s.width*2-1,s.mousePos.y=-n.y/s.height*2+1,s.toolTipElem.style.top="".concat(n.y,"px"),s.toolTipElem.style.left="".concat(n.x,"px"),s.toolTipElem.style.transform="translate(-".concat(n.x/s.width*100,"%, 21px)")}var o,a,i,r},!1),s.container.addEventListener("click",function(e){s.ignoreOneClick?s.ignoreOneClick=!1:s.onClick(s.hoverObj||null,e)},!1),s.container.addEventListener("contextmenu",function(e){return!s.onRightClick||(e.preventDefault(),s.onRightClick(s.hoverObj||null,e),!1)},!1),s.renderer=new z.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},i)),s.renderer.setPixelRatio(window.devicePixelRatio);var r=k(s.backgroundColor).alpha;void 0===r&&(r=1),s.renderer.setClearColor(new z.Color(x(1,s.backgroundColor)),r),s.container.appendChild(s.renderer.domElement),s.controls=new{trackball:c,orbit:H,fly:se}[o](s.camera,s.renderer.domElement),"fly"===o&&(s.controls.movementSpeed=2.5),"trackball"!==o&&"orbit"!==o||(s.controls.minDistance=.1,s.controls.maxDistance=5e4,s.controls.addEventListener("start",function(){return s.controlsEngaged=!0}),s.controls.addEventListener("change",function(){s.controlsEngaged&&(s.controlsDragging=!0,s.ignoreOneClick=!0)}),s.controls.addEventListener("end",function(){s.controlsEngaged=!1,s.controlsDragging=!1})),s.renderer.setSize(s.width,s.height),s.camera.aspect=s.width/s.height,s.camera.updateProjectionMatrix(),s.camera.position.z=1e3,s.camera.far=5e4,window.scene=s.scene},update:function(e){e.width&&e.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()),e.navInfo.style.display=e.showNavInfo?null:"none"}},Q=X.stateInit,W=void 0===Q?function(){return{}}:Q,G=X.props,K=void 0===G?{}:G,$=X.methods,J=void 0===$?{}:$,ee=X.aliases,te=void 0===ee?{}:ee,ne=X.init,oe=void 0===ne?function(){}:ne,ae=X.update,ie=void 0===ae?function(){}:ae,re=Object.keys(K).map(function(e){return new U(e,K[e])}),function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},u=Object.assign({},W instanceof Function?W(t):W,{initialised:!1}),l={};function d(e){return n(e,t),h(),d}var n=function(e,t){oe.call(d,e,u,t),u.initialised=!0},h=F(function(){u.initialised&&(ie.call(d,u,l),l={})},1);return re.forEach(function(e){var t,o,n,a,i,r,s,c;d[e.name]=(o=(t=e).name,n=t.triggerUpdate,a=void 0!==n&&n,i=t.onChange,r=void 0===i?function(e,t){}:i,s=t.defaultVal,c=void 0===s?null:s,function(e){var t=u[o];if(!arguments.length)return t;var n=void 0===e?c:e;return u[o]=n,r.call(d,n,u,t),l.hasOwnProperty(o)||(l[o]=t),a&&h(),d})}),Object.keys(J).forEach(function(a){d[a]=function(){for(var e,t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return(e=J[a]).call.apply(e,[d,u].concat(n))}}),Object.entries(te).forEach(function(e){var t=N(e,2),n=t[0],o=t[1];return d[n]=d[o]}),d.resetProps=function(){return re.forEach(function(e){d[e.name](e.defaultVal)}),d},d.resetProps(),u._rerender=h,d}});
// Version 1.8.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={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN: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 i=new o.Vector3,r=a.NONE,s=a.NONE,c=new o.Vector3,u=new o.Vector2,l=new o.Vector2,d=new o.Vector3,h=0,p=new o.Vector2,f=new o.Vector2,m=0,g=0,b=new o.Vector2,v=new o.Vector2;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var y={type:"change"},w={type:"start"},E={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 _,k,O,S,C,P,T,j,x,R,L,M=(_=new o.Vector2,function(e,t){return _.set((e-n.screen.left)/n.screen.width,(t-n.screen.top)/n.screen.height),_}),I=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 D(e,t){return Array.isArray(e)?-1!==e.indexOf(t):e===t}function V(e){!1!==n.enabled&&(window.removeEventListener("keydown",V),s=r,r===a.NONE&&(D(n.keys[a.ROTATE],e.keyCode)&&!n.noRotate?r=a.ROTATE:D(n.keys[a.ZOOM],e.keyCode)&&!n.noZoom?r=a.ZOOM:D(n.keys[a.PAN],e.keyCode)&&!n.noPan&&(r=a.PAN)))}function A(e){!1!==n.enabled&&(r=s,window.addEventListener("keydown",V,!1))}function F(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),r===a.NONE&&(r=e.button),r!==a.ROTATE||n.noRotate?r!==a.ZOOM||n.noZoom?r!==a.PAN||n.noPan||(b.copy(M(e.pageX,e.pageY)),v.copy(b)):(p.copy(M(e.pageX,e.pageY)),f.copy(p)):(l.copy(I(e.pageX,e.pageY)),u.copy(l)),document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",U,!1),n.dispatchEvent(w))}function N(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),r!==a.ROTATE||n.noRotate?r!==a.ZOOM||n.noZoom?r!==a.PAN||n.noPan||v.copy(M(e.pageX,e.pageY)):f.copy(M(e.pageX,e.pageY)):(u.copy(l),l.copy(I(e.pageX,e.pageY))))}function U(e){!1!==n.enabled&&(e.preventDefault(),e.stopPropagation(),r=a.NONE,document.removeEventListener("mousemove",N),document.removeEventListener("mouseup",U),n.dispatchEvent(E))}function z(e){if(!1!==n.enabled){switch(e.preventDefault(),e.stopPropagation(),e.deltaMode){case 2:p.y-=.025*e.deltaY;break;case 1:p.y-=.01*e.deltaY;break;default:p.y-=25e-5*e.deltaY}n.dispatchEvent(w),n.dispatchEvent(E)}}function H(e){if(!1!==n.enabled){switch(e.touches.length){case 1:r=a.TOUCH_ROTATE,l.copy(I(e.touches[0].pageX,e.touches[0].pageY)),u.copy(l);break;default:r=a.TOUCH_ZOOM_PAN;var t=e.touches[0].pageX-e.touches[1].pageX,o=e.touches[0].pageY-e.touches[1].pageY;g=m=Math.sqrt(t*t+o*o);var i=(e.touches[0].pageX+e.touches[1].pageX)/2,s=(e.touches[0].pageY+e.touches[1].pageY)/2;b.copy(M(i,s)),v.copy(b)}n.dispatchEvent(w)}}function Y(e){if(!1!==n.enabled)switch(e.preventDefault(),e.stopPropagation(),e.touches.length){case 1:u.copy(l),l.copy(I(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;g=Math.sqrt(t*t+o*o);var a=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;v.copy(M(a,i))}}function Z(e){if(!1!==n.enabled){switch(e.touches.length){case 0:r=a.NONE;break;case 1:r=a.TOUCH_ROTATE,l.copy(I(e.touches[0].pageX,e.touches[0].pageY)),u.copy(l)}n.dispatchEvent(E)}}function X(e){!1!==n.enabled&&e.preventDefault()}this.rotateCamera=(O=new o.Vector3,S=new o.Quaternion,C=new o.Vector3,P=new o.Vector3,T=new o.Vector3,j=new o.Vector3,function(){j.set(l.x-u.x,l.y-u.y,0),(k=j.length())?(c.copy(n.object.position).sub(n.target),C.copy(c).normalize(),P.copy(n.object.up).normalize(),T.crossVectors(P,C).normalize(),P.setLength(l.y-u.y),T.setLength(l.x-u.x),j.copy(P.add(T)),O.crossVectors(j,c).normalize(),k*=n.rotateSpeed,S.setFromAxisAngle(O,k),c.applyQuaternion(S),n.object.up.applyQuaternion(S),d.copy(O),h=k):!n.staticMoving&&h&&(h*=Math.sqrt(1-n.dynamicDampingFactor),c.copy(n.object.position).sub(n.target),S.setFromAxisAngle(d,h),c.applyQuaternion(S),n.object.up.applyQuaternion(S)),u.copy(l)}),this.zoomCamera=function(){var e;r===a.TOUCH_ZOOM_PAN?(e=m/g,m=g,c.multiplyScalar(e)):(1!==(e=1+(f.y-p.y)*n.zoomSpeed)&&e>0&&c.multiplyScalar(e),n.staticMoving?p.copy(f):p.y+=(f.y-p.y)*this.dynamicDampingFactor)},this.panCamera=(x=new o.Vector2,R=new o.Vector3,L=new o.Vector3,function(){x.copy(v).sub(b),x.lengthSq()&&(x.multiplyScalar(c.length()*n.panSpeed),L.copy(c).cross(n.object.up).setLength(x.x),L.add(R.copy(n.object.up).setLength(x.y)),n.object.position.add(L),n.target.add(L),n.staticMoving?b.copy(v):b.add(x.subVectors(v,b).multiplyScalar(n.dynamicDampingFactor)))}),this.checkDistances=function(){n.noZoom&&n.noPan||(c.lengthSq()>n.maxDistance*n.maxDistance&&(n.object.position.addVectors(n.target,c.setLength(n.maxDistance)),p.copy(f)),c.lengthSq()<n.minDistance*n.minDistance&&(n.object.position.addVectors(n.target,c.setLength(n.minDistance)),p.copy(f)))},this.update=function(){c.subVectors(n.object.position,n.target),n.noRotate||n.rotateCamera(),n.noZoom||n.zoomCamera(),n.noPan||n.panCamera(),n.object.position.addVectors(n.target,c),n.checkDistances(),n.object.lookAt(n.target),i.distanceToSquared(n.object.position)>1e-6&&(n.dispatchEvent(y),i.copy(n.object.position))},this.reset=function(){r=a.NONE,s=a.NONE,n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.up.copy(n.up0),c.subVectors(n.object.position,n.target),n.object.lookAt(n.target),n.dispatchEvent(y),i.copy(n.object.position)},this.dispose=function(){this.domElement.removeEventListener("contextmenu",X,!1),this.domElement.removeEventListener("mousedown",F,!1),this.domElement.removeEventListener("wheel",z,!1),this.domElement.removeEventListener("touchstart",H,!1),this.domElement.removeEventListener("touchend",Z,!1),this.domElement.removeEventListener("touchmove",Y,!1),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",V,!1),window.removeEventListener("keyup",A,!1)},this.domElement.addEventListener("contextmenu",X,!1),this.domElement.addEventListener("mousedown",F,!1),this.domElement.addEventListener("wheel",z,!1),this.domElement.addEventListener("touchstart",H,!1),this.domElement.addEventListener("touchend",Z,!1),this.domElement.addEventListener("touchmove",Y,!1),window.addEventListener("keydown",V,!1),window.addEventListener("keyup",A,!1),this.handleResize(),this.update()};n.prototype=Object.create(o.EventDispatcher.prototype);function i(){return(i=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 r(e){return(r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function c(e,t,n){return(c=function(){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}}()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var a=new(Function.bind.apply(e,o));return n&&s(a,n.prototype),a}).apply(null,arguments)}function u(e){var t="function"==typeof Map?new Map:void 0;return(u=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 c(e,arguments,r(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),s(o,e)})(e)}var l={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 d(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o,a=t[0],i=[];for(o=1;o<t.length;o+=1)i.push(t[o]);return i.forEach((function(e){a=a.replace(/%[a-z]/,e)})),a}var h=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),i=1;i<o;i++)a[i-1]=arguments[i];n=e.call(this,d.apply(void 0,[l[t]].concat(a)))||this}return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(n)}return n=e,(t=o).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,o}(u(Error));function p(e){return Math.round(255*e)}function f(e,t,n){return p(e)+","+p(t)+","+p(n)}function m(e,t,n,o){if(void 0===o&&(o=f),0===t)return o(n,n,n);var a=(e%360+360)%360/60,i=(1-Math.abs(2*n-1))*t,r=i*(1-Math.abs(a%2-1)),s=0,c=0,u=0;a>=0&&a<1?(s=i,c=r):a>=1&&a<2?(s=r,c=i):a>=2&&a<3?(c=i,u=r):a>=3&&a<4?(c=r,u=i):a>=4&&a<5?(s=r,u=i):a>=5&&a<6&&(s=i,u=r);var l=n-i/2;return o(s+l,c+l,u+l)}var g={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 b=/^#[a-fA-F0-9]{6}$/,v=/^#[a-fA-F0-9]{8}$/,y=/^#[a-fA-F0-9]{3}$/,w=/^#[a-fA-F0-9]{4}$/,E=/^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,k=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,O=/^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 S(e){if("string"!=typeof e)throw new h(3);var t=function(e){if("string"!=typeof e)return e;var t=e.toLowerCase();return g[t]?"#"+g[t]:e}(e);if(t.match(b))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(v)){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(y))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(w)){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=E.exec(t);if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10)};var i=_.exec(t);if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10),alpha:parseFloat(""+i[4])};var r=k.exec(t);if(r){var s="rgb("+m(parseInt(""+r[1],10),parseInt(""+r[2],10)/100,parseInt(""+r[3],10)/100)+")",c=E.exec(s);if(!c)throw new h(4,t,s);return{red:parseInt(""+c[1],10),green:parseInt(""+c[2],10),blue:parseInt(""+c[3],10)}}var u=O.exec(t);if(u){var l="rgb("+m(parseInt(""+u[1],10),parseInt(""+u[2],10)/100,parseInt(""+u[3],10)/100)+")",d=E.exec(l);if(!d)throw new h(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 h(5)}var C=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 P(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 C("#"+P(e)+P(t)+P(n));if("object"==typeof e&&void 0===t&&void 0===n)return C("#"+P(e.red)+P(e.green)+P(e.blue));throw new h(6)}function j(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 x(e,t){if("transparent"===t)return t;var n,o,a,r=S(t),s="number"==typeof r.alpha?r.alpha:1;return function(e,t,n,o){if("string"==typeof e&&"number"==typeof t){var a=S(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 h(7)}(i({},r,{alpha:(n=0,o=1,a=(100*s+100*parseFloat(e))/100,Math.max(n,Math.min(o,a)))}))}var R=j(x);var L=function(){this._tweens={},this._tweensAddedDuringUpdate={}};L.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:I.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 M,I=new L;I.Group=L,I._nextId=0,I.nextId=function(){return I._nextId++},"undefined"==typeof self&&"undefined"!=typeof process&&process.hrtime?I.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?I.now=self.performance.now.bind(self.performance):void 0!==Date.now?I.now=Date.now:I.now=function(){return(new Date).getTime()},I.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=I.Easing.Linear.None,this._interpolationFunction=I.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||I,this._id=I.nextId()},I.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?I.now()+parseFloat(e):e:I.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:(this._isPaused=!0,this._pauseStart=void 0===e?I.now():e,this._group.remove(this),this)},resume:function(e){return this._isPaused&&this._isPlaying?(this._isPaused=!1,this._startTime+=(void 0===e?I.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,i=this._valuesEnd[t];i instanceof Array?this._object[t]=this._interpolationFunction(i,o):("string"==typeof i&&(i="+"===i.charAt(0)||"-"===i.charAt(0)?a+parseFloat(i):parseFloat(i)),"number"==typeof i&&(this._object[t]=a+(i-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 r=this._valuesStartRepeat[t];this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=r}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}},I.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-I.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*I.Easing.Bounce.In(2*e):.5*I.Easing.Bounce.Out(2*e-1)+.5}}},I.Interpolation={Linear:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),i=I.Interpolation.Utils.Linear;return t<0?i(e[0],e[1],o):t>1?i(e[n],e[n-1],n-o):i(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,i=I.Interpolation.Utils.Bernstein,r=0;r<=o;r++)n+=a(1-t,o-r)*a(t,r)*e[r]*i(o,r);return n},CatmullRom:function(e,t){var n=e.length-1,o=n*t,a=Math.floor(o),i=I.Interpolation.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(a=Math.floor(o=n*(1+t))),i(e[(a-1+n)%n],e[a],e[(a+1)%n],e[(a+2)%n],o-a)):t<0?e[0]-(i(e[0],e[0],e[1],e[1],-o)-e[0]):t>1?e[n]-(i(e[n],e[n],e[n-1],e[n-1],o-n)-e[n]):i(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=I.Interpolation.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:(M=[1],function(e){var t=1;if(M[e])return M[e];for(var n=e;n>1;n--)t*=n;return M[e]=t,t}),CatmullRom:function(e,t,n,o,a){var i=.5*(n-e),r=.5*(o-t),s=a*a;return(2*t-2*n+i+r)*(a*s)+(-3*t+3*n-2*i-r)*s+i*a+t}}},I.version="18.4.2";"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var D,V=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(e){function t(o){if(n[o])return n[o].exports;var a=n[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){var o,a,i;a=[e,t],void 0!==(i="function"==typeof(o=function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e instanceof Function?e:"string"==typeof e?function(t){return t[e]}:function(t){return e}},e.exports=t.default})?o.apply(t,a):o)&&(e.exports=i)}])})),A=(D=V)&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D;V.accessorFn;function F(e,t,n){var o,a,i,r,s;function c(){var u=Date.now()-r;u<t&&u>=0?o=setTimeout(c,t-u):(o=null,n||(s=e.apply(i,a),i=a=null))}null==t&&(t=100);var u=function(){i=this,a=arguments,r=Date.now();var u=n&&!o;return o||(o=setTimeout(c,t)),u&&(s=e.apply(i,a),i=a=null),s};return u.clear=function(){o&&(clearTimeout(o),o=null)},u.flush=function(){o&&(s=e.apply(i,a),i=a=null,clearTimeout(o),o=null)},u}F.debounce=F;var N=F;function U(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,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(o=(r=s.next()).done)&&(n.push(r.value),!t||n.length!==t);o=!0);}catch(e){a=!0,i=e}finally{try{o||null==s.return||s.return()}finally{if(a)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}var z=function e(t,n){var o=n.default,a=void 0===o?null:o,i=n.triggerUpdate,r=void 0===i||i,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=r,this.onChange=c};var H=window.THREE?window.THREE:{WebGLRenderer:e.WebGLRenderer,Scene:e.Scene,PerspectiveCamera:e.PerspectiveCamera,Raycaster:e.Raycaster,Vector2:e.Vector2,Vector3:e.Vector3,Color:e.Color,EventDispatcher:e.EventDispatcher,MOUSE:e.MOUSE,Quaternion:e.Quaternion,Spherical:e.Spherical},Y=function(e){function t(t,n){var o,a,i,r,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)),i=a.clone().inverse(),r=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&&x(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(i),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||r.distanceToSquared(c.object.position)>f||8*(1-s.dot(c.object.quaternion))>f)&&(c.dispatchEvent(u),r.copy(c.object.position),s.copy(c.object.quaternion),y=!1,!0)}),this.dispose=function(){c.domElement.removeEventListener("contextmenu",q,!1),c.domElement.removeEventListener("mousedown",F,!1),c.domElement.removeEventListener("wheel",z,!1),c.domElement.removeEventListener("touchstart",Y,!1),c.domElement.removeEventListener("touchend",X,!1),c.domElement.removeEventListener("touchmove",Z,!1),document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",U,!1),window.removeEventListener("keydown",H,!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,_=new e.Vector2,k=new e.Vector2,O=new e.Vector2,S=new e.Vector2,C=new e.Vector2,P=new e.Vector2,T=new e.Vector2;function j(){return Math.pow(.95,c.zoomSpeed)}function x(e){g.theta-=e}function R(e){g.phi-=e}var L,M=(L=new e.Vector3,function(e,t){L.setFromMatrixColumn(t,0),L.multiplyScalar(-e),v.add(L)}),I=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 i=c.object.position;t.copy(i).sub(c.target);var r=t.length();r*=Math.tan(c.object.fov/2*Math.PI/180),M(2*n*r/a.clientHeight,c.object.matrix),I(2*o*r/a.clientHeight,c.object.matrix)}else c.object instanceof e.OrthographicCamera?(M(n*(c.object.right-c.object.left)/c.object.zoom/a.clientWidth,c.object.matrix),I(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 A(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(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){C.set(e.clientX,e.clientY)}(e),p=h.DOLLY}else if(e.button===c.mouseButtons.PAN){if(!1===c.enablePan)return;!function(e){k.set(e.clientX,e.clientY)}(e),p=h.PAN}p!==h.NONE&&(document.addEventListener("mousemove",N,!1),document.addEventListener("mouseup",U,!1),c.dispatchEvent(l))}}function N(e){if(!1!==c.enabled)if(e.preventDefault(),p===h.ROTATE){if(!1===c.enableRotate)return;!function(e){E.set(e.clientX,e.clientY),_.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;x(2*Math.PI*_.x/t.clientWidth*c.rotateSpeed),R(2*Math.PI*_.y/t.clientHeight*c.rotateSpeed),w.copy(E),c.update()}(e)}else if(p===h.DOLLY){if(!1===c.enableZoom)return;!function(e){P.set(e.clientX,e.clientY),T.subVectors(P,C),T.y>0?V(j()):T.y<0&&A(j()),C.copy(P),c.update()}(e)}else if(p===h.PAN){if(!1===c.enablePan)return;!function(e){O.set(e.clientX,e.clientY),S.subVectors(O,k),D(S.x,S.y),k.copy(O),c.update()}(e)}}function U(e){!1!==c.enabled&&(document.removeEventListener("mousemove",N,!1),document.removeEventListener("mouseup",U,!1),c.dispatchEvent(d),p=h.NONE)}function z(e){!1===c.enabled||!1===c.enableZoom||p!==h.NONE&&p!==h.ROTATE||(e.preventDefault(),e.stopPropagation(),function(e){e.deltaY<0?A(j()):e.deltaY>0&&V(j()),c.update()}(e),c.dispatchEvent(l),c.dispatchEvent(d))}function H(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 Y(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);C.set(0,o)}(e),p=h.TOUCH_DOLLY;break;case 3:if(!1===c.enablePan)return;!function(e){k.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 Z(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),_.subVectors(E,w);var t=c.domElement===document?c.domElement.body:c.domElement;x(2*Math.PI*_.x/t.clientWidth*c.rotateSpeed),R(2*Math.PI*_.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);P.set(0,o),T.subVectors(P,C),T.y>0?A(j()):T.y<0&&V(j()),C.copy(P),c.update()}(e);break;case 3:if(!1===c.enablePan)return;if(p!==h.TOUCH_PAN)return;!function(e){O.set(e.touches[0].pageX,e.touches[0].pageY),S.subVectors(O,k),D(S.x,S.y),k.copy(O),c.update()}(e);break;default:p=h.NONE}}function X(e){!1!==c.enabled&&(c.dispatchEvent(d),p=h.NONE)}function q(e){e.preventDefault()}c.domElement.addEventListener("contextmenu",q,!1),c.domElement.addEventListener("mousedown",F,!1),c.domElement.addEventListener("wheel",z,!1),c.domElement.addEventListener("touchstart",Y,!1),c.domElement.addEventListener("touchend",X,!1),c.domElement.addEventListener("touchmove",Z,!1),window.addEventListener("keydown",H,!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}(H),Z=(function(e){e.FlyControls=function(t,n,o){this.object=t,o=o||{},this.domElement=void 0!==n?n:document,n&&this.domElement.setAttribute("tabindex",-1),this.movementSpeed=void 0===o.movementSpeed?1:o.movementSpeed,this.rollSpeed=void 0===o.rollSpeed?.005:o.rollSpeed,this.dragToLook=!0,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);var a=Date.now();function i(e,t){return function(){t.apply(e,arguments)}}this.handleEvent=function(e){"function"==typeof this[e.type]&&this[e.type](e)},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}[38,40,37,39].indexOf(e.keyCode)>-1&&e.preventDefault(),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.mouseout=function(e){e.preventDefault(),e.stopPropagation(),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.updateRotationVector(),this.updateMovementVector()},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=Date.now(),n=(e=(t-a)/10)*this.movementSpeed,o=e*this.rollSpeed;this.object.translateX(this.moveVector.x*n),this.object.translateY(this.moveVector.y*n),this.object.translateZ(this.moveVector.z*n),this.tmpQuaternion.set(this.rotationVector.x*o,this.rotationVector.y*o,this.rotationVector.z*o,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),this.object.rotation.setFromQuaternion(this.object.quaternion,this.object.rotation.order),a=t},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.domElement.addEventListener("contextmenu",(function(e){e.preventDefault()}),!1),this.domElement.addEventListener("mousemove",i(this,this.mousemove),!1),this.domElement.addEventListener("mousedown",i(this,this.mousedown),!1),this.domElement.addEventListener("mouseup",i(this,this.mouseup),!1),this.domElement.addEventListener("mouseout",i(this,this.mouseout),!1),this.domElement.addEventListener("keydown",i(this,this.keydown),!1),this.domElement.addEventListener("keyup",i(this,this.keyup),!1),this.updateMovementVector(),this.updateRotationVector()}}(H),H.FlyControls);return function(e){var t=e.stateInit,n=void 0===t?function(){return{}}:t,o=e.props,a=void 0===o?{}:o,i=e.methods,r=void 0===i?{}:i,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 z(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 i(t,e),s(),a}var i=function(e,n){l.call(a,e,t,n),t.initialised=!0},s=N((function(){t.initialised&&(h.call(a,t,o),o={})}),1);return p.forEach((function(e){a[e.name]=function(e){var n=e.name,i=e.triggerUpdate,r=void 0!==i&&i,c=e.onChange,u=void 0===c?function(e,t){}:c,l=e.defaultVal,d=void 0===l?null:l;return function(e){var i=t[n];if(!arguments.length)return i;var c=void 0===e?d:e;return t[n]=c,u.call(a,c,t,i),!o.hasOwnProperty(n)&&(o[n]=i),r&&s(),a}}(e)})),Object.keys(r).forEach((function(e){a[e]=function(){for(var n,o=arguments.length,i=new Array(o),s=0;s<o;s++)i[s]=arguments[s];return(n=r[e]).call.apply(n,[a,t].concat(i))}})),Object.entries(c).forEach((function(e){var t=U(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",onChange:function(e,t){if(t.renderer){var n=S(e).alpha;void 0===n&&(n=1),t.renderer.setClearColor(new H.Color(R(1,e)),n)}},triggerUpdate:!1},showNavInfo:{default:!0},objects:{default:[],onChange:function(e,t){(t.prevObjs||[]).forEach((function(e){return t.scene.remove(e)})),t.prevObjs=e,e.forEach((function(e){return t.scene.add(e)}))},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.renderer.render(e.scene,e.camera),e.enablePointerInteraction){var t=null;if(e.hoverDuringDrag||!e.controlsDragging){var n=new H.Raycaster;n.linePrecision=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)(t)||"",e.hoverObj=t)}I.update()}return this},cameraPosition:function(e,t,n,o){var a=e.camera;if(t&&e.initialised){var i=t,r=n||{x:0,y:0,z:0};if(o){var s=Object.assign({},a.position),c=d();new I.Tween(s).to(i,o).easing(I.Easing.Quadratic.Out).onUpdate(u).start(),new I.Tween(c).to(r,o/3).easing(I.Easing.Quadratic.Out).onUpdate(l).start()}else u(i),l(r);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 H.Vector3(t.x,t.y,t.z)}function d(){return Object.assign(new H.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 H.Scene,camera:new H.PerspectiveCamera}},init:function(e,t,n){var o=n.controlType,i=void 0===o?"trackball":o,r=n.rendererConfig,s=void 0===r?{}:r;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"}[i]||"",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 H.Vector2,t.mousePos.x=-2,t.mousePos.y=-2,t.container.addEventListener("mousemove",(function(e){if(t.enablePointerInteraction){var n=(a=t.container,i=a.getBoundingClientRect(),r=window.pageXOffset||document.documentElement.scrollLeft,s=window.pageYOffset||document.documentElement.scrollTop,{top:i.top+s,left:i.left+r}),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,i,r,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.renderer=new H.WebGLRenderer(Object.assign({antialias:!0,alpha:!0},s)),t.renderer.setPixelRatio(window.devicePixelRatio);var c=S(t.backgroundColor).alpha;void 0===c&&(c=1),t.renderer.setClearColor(new H.Color(R(1,t.backgroundColor)),c),t.container.appendChild(t.renderer.domElement),t.controls=new{trackball:a,orbit:Y,fly:Z}[i](t.camera,t.renderer.domElement),"fly"===i&&(t.controls.movementSpeed=2.5),"trackball"!==i&&"orbit"!==i||(t.controls.minDistance=.1,t.controls.maxDistance=5e4,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.camera.far=5e4,window.scene=t.scene},update:function(e){e.width&&e.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()),e.navInfo.style.display=e.showNavInfo?null:"none"}})}));

@@ -308,8 +308,12 @@ import { WebGLRenderer, Scene, PerspectiveCamera, Raycaster, Vector2, Vector3, Color, EventDispatcher, MOUSE, Quaternion, Spherical } from 'three';

state.container.addEventListener('contextmenu', function (ev) {
if (!state.onRightClick) return true; // default contextmenu behavior
state.container.addEventListener('mouseup', function (ev) {
if (ev.button === 2 && state.onRightClick) {
if (state.ignoreOneClick) {
state.ignoreOneClick = false; // because of controls end event
ev.preventDefault();
state.onRightClick(state.hoverObj || null, ev);
return false;
return;
}
state.onRightClick(state.hoverObj || null, ev);
}
}, false); // Setup renderer, camera and controls

@@ -316,0 +320,0 @@

{
"name": "three-render-objects",
"version": "1.8.0",
"version": "1.8.1",
"description": "Easy way to render ThreeJS objects with built-in interaction defaults",

@@ -35,3 +35,3 @@ "license": "MIT",

"dev": "rollup -c -w",
"minify": "uglifyjs dist/three-render-objects.js -o dist/three-render-objects.min.js -c -m --comments '/Version/'",
"minify": "terser dist/three-render-objects.js -o dist/three-render-objects.min.js -c -m --comments '/Version/'",
"build-module": "rollup -c rollup.config.module.js",

@@ -41,6 +41,6 @@ "prepare": "npm run build && npm run minify && npm run build-module"

"dependencies": {
"@tweenjs/tween.js": "^18.3.1",
"@tweenjs/tween.js": "^18.4.2",
"accessor-fn": "^1.2.2",
"kapsule": "^1.12.1",
"polished": "^3.4.1",
"polished": "^3.4.2",
"three-fly-controls": "^1.1.0",

@@ -54,10 +54,10 @@ "three-orbit-controls": "^82.1.0",

"devDependencies": {
"@babel/core": "^7.6.2",
"@babel/plugin-proposal-class-properties": "^7.5.5",
"@babel/core": "^7.7.2",
"@babel/plugin-proposal-class-properties": "^7.7.0",
"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
"@babel/preset-env": "^7.6.2",
"postcss-nested": "^4.1.2",
"@babel/preset-env": "^7.7.1",
"postcss-nested": "^4.2.1",
"postcss-simple-vars": "^5.0.2",
"rimraf": "^3.0.0",
"rollup": "^1.21.4",
"rollup": "^1.27.0",
"rollup-plugin-babel": "^4.3.3",

@@ -67,4 +67,4 @@ "rollup-plugin-commonjs": "^10.1.0",

"rollup-plugin-postcss": "^2.0.3",
"uglify-js": "^3.6.0"
"terser": "^4.4.0"
}
}

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