UNPKG

@polygonjs/plugin-mapbox

Version:

Mapbox plugin for the 3D engine https://polygonjs.com

1 lines 1.41 MB
import*as t from"three";var e={9242:(t,e,r)=>{const i=r(2575);t.exports=t=>i[t.toLowerCase()]},8039:(t,e,r)=>{const i=r(1979),n=r(8934),s=r(8206),o=r(4345),a=r(1516);t.exports=(t,...e)=>{if(!Array.isArray(t))throw new Error("color must be an array");if(t.length<3)throw new Error("color must contain R, G and B values");if(3===t.length&&(t=[t[0],t[1],t[2],1]),0===(e=i(e)).length)throw new Error("wrong number of arguments");const r=e.map((e=>n.isA(e)?((t,e)=>{const r=n.clone(e);return r.color=t,r})(t,e):s.isA(e)?((t,e)=>{const r=s.clone(e);return r.color=t,r})(t,e):o.isA(e)?((t,e)=>{const r=o.clone(e);return r.color=t,r})(t,e):a.isA(e)?((t,e)=>{const r=a.clone(e);return r.color=t,r})(t,e):(e.color=t,e)));return 1===r.length?r[0]:r}},2575:t=>{t.exports={black:[0,0,0],silver:[192/255,192/255,192/255],gray:[128/255,128/255,128/255],white:[1,1,1],maroon:[128/255,0,0],red:[1,0,0],purple:[128/255,0,128/255],fuchsia:[1,0,1],green:[0,128/255,0],lime:[0,1,0],olive:[128/255,128/255,0],yellow:[1,1,0],navy:[0,0,128/255],blue:[0,0,1],teal:[0,128/255,128/255],aqua:[0,1,1],aliceblue:[240/255,248/255,1],antiquewhite:[250/255,235/255,215/255],aquamarine:[127/255,1,212/255],azure:[240/255,1,1],beige:[245/255,245/255,220/255],bisque:[1,228/255,196/255],blanchedalmond:[1,235/255,205/255],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,1,0],chocolate:[210/255,105/255,30/255],coral:[1,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[1,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0,1,1],darkblue:[0,0,139/255],darkcyan:[0,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0,100/255,0],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[1,140/255,0],darkorchid:[.6,50/255,.8],darkred:[139/255,0,0],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0,206/255,209/255],darkviolet:[148/255,0,211/255],deeppink:[1,20/255,147/255],deepskyblue:[0,191/255,1],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,1],firebrick:[178/255,34/255,34/255],floralwhite:[1,250/255,240/255],forestgreen:[34/255,139/255,34/255],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,1],gold:[1,215/255,0],goldenrod:[218/255,165/255,32/255],greenyellow:[173/255,1,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,1,240/255],hotpink:[1,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0,130/255],ivory:[1,1,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[1,240/255,245/255],lawngreen:[124/255,252/255,0],lemonchiffon:[1,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,1,1],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[1,182/255,193/255],lightsalmon:[1,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,.6],lightslategrey:[119/255,136/255,.6],lightsteelblue:[176/255,196/255,222/255],lightyellow:[1,1,224/255],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[1,0,1],mediumaquamarine:[.4,205/255,170/255],mediumblue:[0,0,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0,250/255,154/255],mediumturquoise:[72/255,209/255,.8],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,1,250/255],mistyrose:[1,228/255,225/255],moccasin:[1,228/255,181/255],navajowhite:[1,222/255,173/255],oldlace:[253/255,245/255,230/255],olivedrab:[107/255,142/255,35/255],orange:[1,165/255,0],orangered:[1,69/255,0],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[1,239/255,213/255],peachpuff:[1,218/255,185/255],peru:[205/255,133/255,63/255],pink:[1,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[1,245/255,238/255],sienna:[160/255,82/255,45/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[1,250/255,250/255],springgreen:[0,1,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],thistle:[216/255,191/255,216/255],tomato:[1,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],whitesmoke:[245/255,245/255,245/255],yellowgreen:[154/255,205/255,50/255]}},2995:t=>{t.exports=t=>{if((t=t.replace("#","")).length<6)throw new Error("the given notation must contain 3 or more hex values");const e=parseInt(t.substring(0,2),16)/255,r=parseInt(t.substring(2,4),16)/255,i=parseInt(t.substring(4,6),16)/255;return t.length>=8?[e,r,i,parseInt(t.substring(6,8),16)/255]:[e,r,i]}},6371:(t,e,r)=>{const i=r(1979),n=r(2915);t.exports=(...t)=>{if((t=i(t)).length<3)throw new Error("values must contain H, S and L values");const e=t[0],r=t[1],s=t[2];let o=s,a=s,l=s;if(0!==r){const t=s<.5?s*(1+r):s+r-s*r,i=2*s-t;o=n(i,t,e+1/3),a=n(i,t,e),l=n(i,t,e-1/3)}return t.length>3?[o,a,l,t[3]]:[o,a,l]}},2699:(t,e,r)=>{const i=r(1979);t.exports=(...t)=>{if((t=i(t)).length<3)throw new Error("values must contain H, S and V values");const e=t[0],r=t[1],n=t[2];let s=0,o=0,a=0;const l=Math.floor(6*e),c=6*e-l,h=n*(1-r),u=n*(1-c*r),d=n*(1-(1-c)*r);switch(l%6){case 0:s=n,o=d,a=h;break;case 1:s=u,o=n,a=h;break;case 2:s=h,o=n,a=d;break;case 3:s=h,o=u,a=n;break;case 4:s=d,o=h,a=n;break;case 5:s=n,o=h,a=u}return t.length>3?[s,o,a,t[3]]:[s,o,a]}},2915:t=>{t.exports=(t,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t)},1457:(t,e,r)=>{t.exports={colorize:r(8039),colorNameToRgb:r(9242),cssColors:r(2575),hexToRgb:r(2995),hslToRgb:r(6371),hsvToRgb:r(2699),hueToColorComponent:r(2915),rgbToHex:r(5831),rgbToHsl:r(9142),rgbToHsv:r(8615)}},5831:(t,e,r)=>{const i=r(1979);t.exports=(...t)=>{if((t=i(t)).length<3)throw new Error("values must contain R, G and B values");const e=255*t[0],r=255*t[1],n=255*t[2];let s=`#${Number(16777216+65536*e+256*r+n).toString(16).substring(1,7)}`;return t.length>3&&(s+=Number(255*t[3]).toString(16)),s}},9142:(t,e,r)=>{const i=r(1979);t.exports=(...t)=>{if((t=i(t)).length<3)throw new Error("values must contain R, G and B values");const e=t[0],r=t[1],n=t[2],s=Math.max(e,r,n),o=Math.min(e,r,n);let a,l;const c=(s+o)/2;if(s===o)a=l=0;else{const t=s-o;switch(l=c>.5?t/(2-s-o):t/(s+o),s){case e:a=(r-n)/t+(r<n?6:0);break;case r:a=(n-e)/t+2;break;case n:a=(e-r)/t+4}a/=6}return t.length>3?[a,l,c,t[3]]:[a,l,c]}},8615:(t,e,r)=>{const i=r(1979);t.exports=(...t)=>{if((t=i(t)).length<3)throw new Error("values must contain R, G and B values");const e=t[0],r=t[1],n=t[2],s=Math.max(e,r,n),o=Math.min(e,r,n);let a;const l=s,c=s-o,h=0===s?0:c/s;if(s===o)a=0;else{switch(s){case e:a=(r-n)/c+(r<n?6:0);break;case r:a=(n-e)/c+2;break;case n:a=(e-r)/c+4}a/=6}return t.length>3?[a,h,l,t[3]]:[a,h,l]}},9590:t=>{const e=function(t){const e=[];for(let i=0;i<=t;i++)e.push(r(t)/(r(i)*r(t-i)));return e},r=function(t){let e=1;for(let r=2;r<=t;r++)e*=r;return e};t.exports=t=>{if(!Array.isArray(t))throw new Error("Bezier points must be a valid array/");if(t.length<2)throw new Error("Bezier points must contain at least 2 values.");const r=function(t){let e=null;return t.forEach((t=>{let r="";if(Number.isFinite(t))r="float_single";else{if(!Array.isArray(t))throw new Error("Bezier points must all be numbers or arrays of number.");t.forEach((t=>{if(!Number.isFinite(t))throw new Error("Bezier point values must all be numbers.")})),r="float_"+t.length}if(null==e)e=r;else if(e!==r)throw new Error("Bezier points must be either all numbers or all arrays of numbers of the same size.")})),e}(t);return{points:t,pointType:r,dimensions:"float_single"===r?0:t[0].length,permutations:e(t.length-1),tangentPermutations:e(t.length-2)}}},5235:(t,e,r)=>{t.exports={create:r(9590),valueAt:r(7501),tangentAt:r(8542)}},8542:t=>{const e=function(t,e,r){const i=e.length-1;let n=0;for(let s=0;s<i;s++){const o=i*(e[s+1]-e[s]);n+=t.tangentPermutations[s]*Math.pow(1-r,i-1-s)*Math.pow(r,s)*o}return n};t.exports=(t,r)=>{if(t<0||t>1)throw new Error("Bezier tangentAt() input must be between 0 and 1");if("float_single"===r.pointType)return e(r,r.points,t);{const i=[];for(let n=0;n<r.dimensions;n++){const s=[];for(let t=0;t<r.points.length;t++)s.push(r.points[t][n]);i.push(e(r,s,t))}return i}}},7501:t=>{const e=function(t,e,r){const i=e.length-1;let n=0;for(let s=0;s<=i;s++)n+=t.permutations[s]*Math.pow(1-r,i-s)*Math.pow(r,s)*e[s];return n};t.exports=(t,r)=>{if(t<0||t>1)throw new Error("Bezier valueAt() input must be between 0 and 1");if("float_single"===r.pointType)return e(r,r.points,t);{const i=[];for(let n=0;n<r.dimensions;n++){const s=[];for(let t=0;t<r.points.length;t++)s.push(r.points[t][n]);i.push(e(r,s,t))}return i}}},164:(t,e,r)=>{t.exports={bezier:r(5235)}},580:(t,e,r)=>{const i=r(6028),n=r(4138);t.exports=t=>(i.isIdentity(t.transforms)||(t.sides=t.sides.map((e=>[n.transform(n.create(),e[0],t.transforms),n.transform(n.create(),e[1],t.transforms)])),t.transforms=i.create()),t)},9584:t=>{t.exports=t=>Object.assign({},t)},5771:(t,e,r)=>{const i=r(6028);t.exports=t=>(void 0===t&&(t=[]),{sides:t,transforms:i.create()})},1683:(t,e,r)=>{const i=r(6028),n=r(4138),s=r(5771);t.exports=t=>{if(0!==t[0])throw new Error("invalid compact binary data");const e=s();e.transforms=i.clone(t.slice(1,17));for(let r=21;r<t.length;r+=4){const i=n.fromValues(t[r+0],t[r+1]),s=n.fromValues(t[r+2],t[r+3]);e.sides.push([i,s])}return t[17]>=0&&(e.color=[t[17],t[18],t[19],t[20]]),e}},4017:(t,e,r)=>{const i=r(4138),n=r(5771);t.exports=t=>{if(!Array.isArray(t))throw new Error("the given points must be an array");let e=t.length;if(e<3)throw new Error("the given points must define a closed geometry with three or more points");i.equals(t[0],t[e-1])&&--e;const r=[];let s=t[e-1];for(let n=0;n<e;n++){const e=t[n];r.push([i.clone(s),i.clone(e)]),s=e}return n(r)}},8934:(t,e,r)=>{t.exports={clone:r(9584),create:r(5771),fromPoints:r(4017),fromCompactBinary:r(1683),isA:r(8176),reverse:r(6506),toOutlines:r(5494),toPoints:r(2863),toSides:r(7999),toString:r(5519),toCompactBinary:r(8423),transform:r(9843),validate:r(4164)}},8176:t=>{t.exports=t=>!!(t&&"object"==typeof t&&"sides"in t&&"transforms"in t&&Array.isArray(t.sides)&&"length"in t.transforms)},6506:(t,e,r)=>{const i=r(5771),n=r(7999);t.exports=t=>{const e=n(t).map((t=>[t[1],t[0]]));return e.reverse(),i(e)}},8423:t=>{t.exports=t=>{const e=t.sides,r=t.transforms;let i=[-1,-1,-1,-1];t.color&&(i=t.color);const n=new Float32Array(21+4*e.length);n[0]=0,n[1]=r[0],n[2]=r[1],n[3]=r[2],n[4]=r[3],n[5]=r[4],n[6]=r[5],n[7]=r[6],n[8]=r[7],n[9]=r[8],n[10]=r[9],n[11]=r[10],n[12]=r[11],n[13]=r[12],n[14]=r[13],n[15]=r[14],n[16]=r[15],n[17]=i[0],n[18]=i[1],n[19]=i[2],n[20]=i[3];for(let t=0;t<e.length;t++){const r=4*t+21,i=e[t][0],s=e[t][1];n[r+0]=i[0],n[r+1]=i[1],n[r+2]=s[0],n[r+3]=s[1]}return n}},5494:(t,e,r)=>{const i=r(4138),n=r(7999),s=(t,e)=>{if(1===e.length)return e.pop();const r=i.create(),n=i.angleDegrees(i.subtract(r,t[1],t[0]));let s,o;e.forEach(((t,e)=>{let a=i.angleDegrees(i.subtract(r,t[1],t[0]))-n;a<-180&&(a+=360),a>=180&&(a-=360),(void 0===o||a>s)&&(o=e,s=a)}));const a=e[o];return e.splice(o,1),a};t.exports=t=>{const e=(t=>{const e=new Map,r=(t=>{const e=new Map,r=t=>{const r=t.toString();return e.has(r)?e.get(r):(e.set(r,t),t)};return t.map((t=>t.map(r)))})(t);return r.forEach((t=>{e.has(t[0])?e.get(t[0]).push(t):e.set(t[0],[t])})),e})(n(t)),r=[];for(;;){let t;for(const[r,i]of e){if(t=i.shift(),t)break;e.delete(r)}if(void 0===t)break;const i=[],n=t[0];for(;;){i.push(t[0]);const r=t[1];if(r===n)break;const o=e.get(r);if(!o)throw new Error(`geometry is not closed at vertex ${r}`);const a=s(t,o);0===o.length&&e.delete(r),t=a}i.length>0&&i.push(i.shift()),r.push(i)}return e.clear(),r}},2863:(t,e,r)=>{const i=r(7999);t.exports=t=>{const e=i(t).map((t=>t[0]));return e.length>0&&e.push(e.shift()),e}},7999:(t,e,r)=>{const i=r(580);t.exports=t=>i(t).sides},5519:(t,e,r)=>{const i=r(4138),n=r(7999);t.exports=t=>{const e=n(t);let r="geom2 ("+e.length+" sides):\n[\n";return e.forEach((t=>{r+=" ["+i.toString(t[0])+", "+i.toString(t[1])+"]\n"})),r+="]\n",r}},9843:(t,e,r)=>{const i=r(6028);t.exports=(t,e)=>{const r=i.multiply(i.create(),t,e.transforms);return Object.assign({},e,{transforms:r})}},4164:(t,e,r)=>{const i=r(4138),n=r(8176),s=r(5494);t.exports=t=>{if(!n(t))throw new Error("invalid geom2 structure");if(s(t),t.sides.forEach((t=>{if(i.equals(t[0],t[1]))throw new Error(`geom2 self-edge ${t[0]}`)})),!t.transforms.every(Number.isFinite))throw new Error(`geom2 invalid transforms ${t.transforms}`)}},8865:(t,e,r)=>{const i=r(6028),n=r(1516);t.exports=t=>(i.isIdentity(t.transforms)||(t.polygons=t.polygons.map((e=>n.transform(t.transforms,e))),t.transforms=i.create()),t)},7565:t=>{t.exports=t=>Object.assign({},t)},6997:(t,e,r)=>{const i=r(6028);t.exports=t=>(void 0===t&&(t=[]),{polygons:t,transforms:i.create()})},922:(t,e,r)=>{const i=r(4171),n=r(6028),s=r(1516),o=r(6997);t.exports=t=>{if(1!==t[0])throw new Error("invalid compact binary data");const e=o();e.transforms=n.clone(t.slice(1,17));const r=t[21];let a=22,l=t.length-3*r;for(;l<t.length;){const r=t[a];a++;const n=[];for(let e=0;e<r;e++)n.push(i.fromValues(t[l],t[l+1],t[l+2])),l+=3;e.polygons.push(s.create(n))}return t[17]>=0&&(e.color=[t[17],t[18],t[19],t[20]]),e}},412:(t,e,r)=>{const i=r(1516),n=r(6997);t.exports=t=>{if(!Array.isArray(t))throw new Error("the given points must be an array");const e=t.map(((t,e)=>i.create(t)));return n(e)}},8206:(t,e,r)=>{t.exports={clone:r(7565),create:r(6997),fromPoints:r(412),fromCompactBinary:r(922),invert:r(5208),isA:r(5165),toPoints:r(6986),toPolygons:r(8356),toString:r(8390),toCompactBinary:r(1622),transform:r(8634),validate:r(9739)}},5208:(t,e,r)=>{const i=r(1516),n=r(6997),s=r(8356);t.exports=t=>{const e=s(t).map((t=>i.invert(t)));return n(e)}},5165:t=>{t.exports=t=>!!(t&&"object"==typeof t&&"polygons"in t&&"transforms"in t&&Array.isArray(t.polygons)&&"length"in t.transforms)},1622:(t,e,r)=>{const i=r(1516);t.exports=t=>{const e=t.polygons,r=t.transforms,n=e.length,s=e.reduce(((t,e)=>t+e.vertices.length),0);let o=[-1,-1,-1,-1];t.color&&(o=t.color);const a=new Float32Array(22+n+3*s);a[0]=1,a[1]=r[0],a[2]=r[1],a[3]=r[2],a[4]=r[3],a[5]=r[4],a[6]=r[5],a[7]=r[6],a[8]=r[7],a[9]=r[8],a[10]=r[9],a[11]=r[10],a[12]=r[11],a[13]=r[12],a[14]=r[13],a[15]=r[14],a[16]=r[15],a[17]=o[0],a[18]=o[1],a[19]=o[2],a[20]=o[3],a[21]=s;let l=22,c=l+n;return e.forEach((t=>{const e=i.toPoints(t);a[l]=e.length,l++;for(let t=0;t<e.length;t++){const r=e[t];a[c+0]=r[0],a[c+1]=r[1],a[c+2]=r[2],c+=3}})),a}},6986:(t,e,r)=>{const i=r(1516),n=r(8356);t.exports=t=>n(t).map((t=>i.toPoints(t)))},8356:(t,e,r)=>{const i=r(8865);t.exports=t=>i(t).polygons},8390:(t,e,r)=>{const i=r(1516),n=r(8356);t.exports=t=>{const e=n(t);let r="geom3 ("+e.length+" polygons):\n";return e.forEach((t=>{r+=" "+i.toString(t)+"\n"})),r}},8634:(t,e,r)=>{const i=r(6028);t.exports=(t,e)=>{const r=i.multiply(i.create(),t,e.transforms);return Object.assign({},e,{transforms:r})}},9739:(t,e,r)=>{const i=r(1516),n=r(5165);t.exports=t=>{if(!n(t))throw new Error("invalid geom3 structure");if(t.polygons.forEach(i.validate),(t=>{const e=new Map;t.polygons.forEach((({vertices:t})=>{t.forEach(((r,i)=>{const n=`${r}/${t[(i+1)%t.length]}`,s=e.has(n)?e.get(n):0;e.set(n,s+1)}))}));const r=[];if(e.forEach(((t,i)=>{const n=i.split("/").reverse().join("/");t!==e.get(n)&&r.push(i.replace("/"," -> "))})),r.length>0)throw new Error(`non-manifold edges ${r.length}\n${r.join("\n")}`)})(t),!t.transforms.every(Number.isFinite))throw new Error(`geom3 invalid transforms ${t.transforms}`)}},4484:(t,e,r)=>{t.exports={geom2:r(8934),geom3:r(8206),path2:r(4345),poly2:r(2577),poly3:r(1516)}},6027:(t,e,r)=>{const i=r(4138),n=r(2454),s=r(9844);t.exports=(t,e)=>{let{endpoint:r,radius:o,xaxisrotation:a,clockwise:l,large:c,segments:h}=Object.assign({},{radius:[0,0],xaxisrotation:0,clockwise:!1,large:!1,segments:16},t);if(!Array.isArray(r))throw new Error("endpoint must be an array of X and Y values");if(r.length<2)throw new Error("endpoint must contain X and Y values");if(r=i.clone(r),!Array.isArray(o))throw new Error("radius must be an array of X and Y values");if(o.length<2)throw new Error("radius must contain X and Y values");if(h<4)throw new Error("segments must be four or more");const u=1e5;if(e.isClosed)throw new Error("the given path cannot be closed");const d=s(e);if(d.length<1)throw new Error("the given path must contain one or more points (as the starting point for the arc)");let p=o[0],m=o[1];const f=d[d.length-1];p=Math.round(p*u)/u,m=Math.round(m*u)/u,r=i.fromValues(Math.round(r[0]*u)/u,Math.round(r[1]*u)/u);const _=!l;let g=[];if(0===p||0===m)g.push(r);else{p=Math.abs(p),m=Math.abs(m);const e=a,n=Math.cos(e),s=Math.sin(e),o=i.subtract(i.create(),f,r);i.scale(o,o,.5);const l=Math.round((n*o[0]+s*o[1])*u)/u,d=Math.round((-s*o[0]+n*o[1])*u)/u,y=i.fromValues(l,d),x=y[0]*y[0]/(p*p)+y[1]*y[1]/(m*m);if(x>1){const t=Math.sqrt(x);p*=t,m*=t,p=Math.round(p*u)/u,m=Math.round(m*u)/u}let v=Math.sqrt((p*p*m*m-p*p*y[1]*y[1]-m*m*y[0]*y[0])/(p*p*y[1]*y[1]+m*m*y[0]*y[0]));_===c&&(v=-v);const b=i.fromValues(p*y[1]/m,-m*y[0]/p);i.scale(b,b,v);let w=i.fromValues(n*b[0]-s*b[1],s*b[0]+n*b[1]);w=i.add(w,w,i.scale(i.create(),i.add(i.create(),f,r),.5));const E=i.fromValues((y[0]-b[0])/p,(y[1]-b[1])/m),T=i.fromValues((-y[0]-b[0])/p,(-y[1]-b[1])/m),C=i.angleRadians(E);let A=i.angleRadians(T)-C;A%=2*Math.PI,!_&&A>0?A-=2*Math.PI:_&&A<0&&(A+=2*Math.PI);let S=Math.ceil(Math.abs(A)/(2*Math.PI)*h)+1;S<1&&(S=1);for(let t=1;t<S;t++){const e=C+t/S*A,r=Math.cos(e),o=Math.sin(e),a=i.fromValues(n*p*r-s*m*o,s*p*r+n*m*o);i.add(a,a,w),g.push(a)}S&&g.push(t.endpoint)}return g=d.concat(g),n({},g)}},8312:(t,e,r)=>{const i=r(4138),n=r(4138),s=r(4013),o=r(9844);t.exports=(t,e)=>{let{controlPoints:r,segments:a}=Object.assign({},{segments:16},t);if(!Array.isArray(r))throw new Error("controlPoints must be an array of one or more points");if(r.length<1)throw new Error("controlPoints must be an array of one or more points");if(a<4)throw new Error("segments must be four or more");if(e.isClosed)throw new Error("the given geometry cannot be closed");const l=o(e);if(l.length<1)throw new Error("the given path must contain one or more points (as the starting point for the bezier curve)");if(r=r.slice(),null===r[0]){if(r.length<2)throw new Error("a null control point must be passed with one more control points");let t=l[l.length-2];if("lastBezierControlPoint"in e&&(t=e.lastBezierControlPoint),!Array.isArray(t))throw new Error("the given path must contain TWO or more points if given a null control point");const n=i.scale(i.create(),l[l.length-1],2);i.subtract(n,n,t),r[0]=n}r.unshift(l[l.length-1]);const c=r.length-1,h=[];let u=1;for(let t=0;t<=c;++t)t>0&&(u*=t),h.push(u);const d=[];for(let t=0;t<=c;++t){const e=h[c]/(h[t]*h[c-t]);d.push(e)}const p=i.create(),m=i.create(),f=n.create(),_=t=>{let e=1,n=Math.pow(1-t,c);const s=1!==t?1/(1-t):1,o=i.create();for(let a=0;a<=c;++a){a===c&&(n=1);const l=d[a]*e*n,h=i.scale(p,r[a],l);i.add(o,o,h),e*=t,n*=s}return o},g=[],y=[],x=c+1;for(let t=0;t<x;++t){const e=t/(x-1),r=_(e);g.push(r),y.push(e)}let v=1;const b=2*Math.PI/a,w=Math.sin(b);for(;v<g.length-1;){const t=i.subtract(p,g[v],g[v-1]);i.normalize(t,t);const e=i.subtract(m,g[v+1],g[v]);i.normalize(e,e);const r=i.cross(f,t,e);if(Math.abs(r[2])>w){const t=y[v-1],e=y[v+1],r=t+1*(e-t)/3,i=t+2*(e-t)/3,n=_(r),s=_(i);g.splice(v,1,n,s),y.splice(v,1,r,i),v--,v<1&&(v=1)}else++v}g.shift();const E=s(g,e);return E.lastBezierControlPoint=r[r.length-2],E}},4013:(t,e,r)=>{const i=r(2454),n=r(9844);t.exports=(t,e)=>{if(e.isClosed)throw new Error("cannot append points to a closed path");let r=n(e);return r=r.concat(t),i({},r)}},1856:(t,e,r)=>{const i=r(6028),n=r(4138);t.exports=t=>(i.isIdentity(t.transforms)||(t.points=t.points.map((e=>n.transform(n.create(),e,t.transforms))),t.transforms=i.create()),t)},8547:t=>{t.exports=t=>Object.assign({},t)},9789:(t,e,r)=>{const{EPS:i}=r(7022),n=r(4138),s=r(8547);t.exports=t=>{if(t.isClosed)return t;const e=s(t);if(e.isClosed=!0,e.points.length>1){const t=e.points,r=t[0];let s=t[t.length-1];for(;n.distance(r,s)<i*i&&(t.pop(),1!==t.length);)s=t[t.length-1]}return e}},4574:(t,e,r)=>{const i=r(2454),n=r(9844),{equals:s}=r(4138);t.exports=(...t)=>{let e=!1;for(const r of t){if(e)throw new Error("Cannot concatenate to a closed path");e=r.isClosed}let r=[];return t.forEach((t=>{const e=n(t);r.length>0&&e.length>0&&s(e[0],r[r.length-1])&&e.shift(),r=r.concat(e)})),i({closed:e},r)}},1492:(t,e,r)=>{const i=r(6028);t.exports=t=>(void 0===t&&(t=[]),{points:t,isClosed:!1,transforms:i.create()})},4534:(t,e,r)=>{const i=r(4138),n=r(9844);t.exports=(t,e)=>{if(t.isClosed!==e.isClosed)return!1;if(t.points.length!==e.points.length)return!1;const r=n(t),s=n(e),o=r.length;let a=0;do{let e=!1;for(let t=0;t<o;t++)if(!i.equals(r[t],s[(t+a)%o])){e=!0;break}if(!1===e)return!0;if(!t.isClosed)return!1}while(++a<o);return!1}},6738:(t,e,r)=>{const i=r(6028),n=r(4138),s=r(1492);t.exports=t=>{if(2!==t[0])throw new Error("invalid compact binary data");const e=s();e.transforms=i.clone(t.slice(1,17)),e.isClosed=!!t[17];for(let r=22;r<t.length;r+=2){const i=n.fromValues(t[r],t[r+1]);e.points.push(i)}return t[18]>=0&&(e.color=[t[18],t[19],t[20],t[21]]),e}},2454:(t,e,r)=>{const{EPS:i}=r(7022),n=r(4138),s=r(9789),o=r(1492);t.exports=(t,e)=>{let{closed:r}=Object.assign({},{closed:!1},t),a=o();if(a.points=e.map((t=>n.clone(t))),a.points.length>1){const t=a.points[0],e=a.points[a.points.length-1];n.distance(t,e)<i*i&&(r=!0)}return!0===r&&(a=s(a)),a}},4345:(t,e,r)=>{t.exports={appendArc:r(6027),appendBezier:r(8312),appendPoints:r(4013),clone:r(8547),close:r(9789),concat:r(4574),create:r(1492),equals:r(4534),fromPoints:r(2454),fromCompactBinary:r(6738),isA:r(6736),reverse:r(3993),toPoints:r(9844),toString:r(9054),toCompactBinary:r(9529),transform:r(3514),validate:r(7316)}},6736:t=>{t.exports=t=>!!(t&&"object"==typeof t&&"points"in t&&"transforms"in t&&"isClosed"in t&&Array.isArray(t.points)&&"length"in t.transforms)},3993:(t,e,r)=>{const i=r(8547);t.exports=t=>{const e=i(t);return e.points=t.points.slice().reverse(),e}},9529:t=>{t.exports=t=>{const e=t.points,r=t.transforms;let i=[-1,-1,-1,-1];t.color&&(i=t.color);const n=new Float32Array(22+2*e.length);n[0]=2,n[1]=r[0],n[2]=r[1],n[3]=r[2],n[4]=r[3],n[5]=r[4],n[6]=r[5],n[7]=r[6],n[8]=r[7],n[9]=r[8],n[10]=r[9],n[11]=r[10],n[12]=r[11],n[13]=r[12],n[14]=r[13],n[15]=r[14],n[16]=r[15],n[17]=t.isClosed?1:0,n[18]=i[0],n[19]=i[1],n[20]=i[2],n[21]=i[3];for(let t=0;t<e.length;t++){const r=2*t+22,i=e[t];n[r]=i[0],n[r+1]=i[1]}return n}},9844:(t,e,r)=>{const i=r(1856);t.exports=t=>i(t).points},9054:(t,e,r)=>{const i=r(4138),n=r(9844);t.exports=t=>{const e=n(t);let r="path ("+e.length+" points, "+t.isClosed+"):\n[\n";return e.forEach((t=>{r+=" "+i.toString(t)+",\n"})),r+="]\n",r}},3514:(t,e,r)=>{const i=r(6028);t.exports=(t,e)=>{const r=i.multiply(i.create(),t,e.transforms);return Object.assign({},e,{transforms:r})}},7316:(t,e,r)=>{const i=r(4138),n=r(6736);t.exports=t=>{if(!n(t))throw new Error("invalid path2 structure");if(t.points.length>1)for(let e=0;e<t.points.length;e++)if(i.equals(t.points[e],t.points[(e+1)%t.points.length]))throw new Error(`path2 duplicate points ${t.points[e]}`);if(t.points.forEach((t=>{if(!t.every(Number.isFinite))throw new Error(`path2 invalid point ${t}`)})),!t.transforms.every(Number.isFinite))throw new Error(`path2 invalid transforms ${t.transforms}`)}},7950:(t,e,r)=>{const i=r(69),n=r(7166);t.exports=(t,e)=>{if(0===t.length)return 0;const r=e.vertices;return r.length<3?0:(i(e)<0&&(e=n(e)),t.reduce(((t,e)=>t+((t,e)=>{const r=e.length,i=t[0],n=t[1];let s=e[r-1],o=e[0],a=s[1]>n,l=0,c=0;for(let t=r+1;--t;){const t=o[1]>n;if(a!==t){const t=s[0]>i,e=o[0]>i;(t&&e||o[0]-(o[1]-n)*(s[0]-o[0])/(s[1]-o[1])>=i)&&(l=!l)}a=t,s=o,o=e[++c]}return l})(e,r)),0)===t.length?1:0)}},9573:t=>{t.exports=t=>((void 0===t||t.length<3)&&(t=[]),{vertices:t})},7166:(t,e,r)=>{const i=r(9573);t.exports=t=>{const e=t.vertices.slice().reverse();return i(e)}},2577:(t,e,r)=>{t.exports={arePointsInside:r(7950),create:r(9573),flip:r(7166),measureArea:r(69)}},69:(t,e,r)=>{const i=r(1091);t.exports=t=>i(t.vertices)},8147:(t,e,r)=>{const i=r(5648),n=r(4171);t.exports=(...t)=>{let e,r;return 1===t.length?(e=i(),r=t[0]):(e=t[0],r=t[1]),e.vertices=r.vertices.map((t=>n.clone(t))),e}},5648:t=>{t.exports=t=>((void 0===t||t.length<3)&&(t=[]),{vertices:t})},2630:(t,e,r)=>{const i=r(4171),n=r(5648);t.exports=t=>{const e=t.map((t=>i.clone(t)));return n(e)}},6590:(t,e,r)=>{const i=r(5648);t.exports=(t,e)=>{const r=i(t);return r.plane=e,r}},1516:(t,e,r)=>{t.exports={clone:r(8147),create:r(5648),fromPoints:r(2630),fromPointsAndPlane:r(6590),invert:r(5307),isA:r(6908),isConvex:r(7657),measureArea:r(8841),measureBoundingBox:r(8469),measureBoundingSphere:r(1714),measureSignedVolume:r(6294),plane:r(7841),toPoints:r(1766),toString:r(6878),transform:r(9032),validate:r(4800)}},5307:(t,e,r)=>{const i=r(8646),n=r(5648);t.exports=t=>{const e=t.vertices.slice().reverse(),r=n(e);return t.plane&&(r.plane=i.flip(i.create(),t.plane)),r}},6908:t=>{t.exports=t=>!!(t&&"object"==typeof t&&"vertices"in t&&Array.isArray(t.vertices))},7657:(t,e,r)=>{const i=r(8646),n=r(4171),s=(t,e,r,i)=>{const s=n.cross(n.create(),n.subtract(n.create(),e,t),n.subtract(n.create(),r,e));return n.dot(s,i)>=0};t.exports=t=>(t=>{const e=t.length;if(e>2){const r=i.fromPoints(i.create(),...t);let n=t[e-2],o=t[e-1];for(let i=0;i<e;i++){const e=t[i];if(!s(n,o,e,r))return!1;n=o,o=e}}return!0})(t.vertices)},8841:(t,e,r)=>{const i=r(7841);t.exports=t=>{const e=t.vertices.length;if(e<3)return 0;const r=t.vertices,n=i(t),s=Math.abs(n[0]),o=Math.abs(n[1]),a=Math.abs(n[2]);if(s+o+a===0)return 0;let l=3;s>o&&s>a?l=1:o>a&&(l=2);let c=0,h=0,u=1,d=2;switch(l){case 1:for(u=1;u<e;u++)h=u-1,d=(u+1)%e,c+=r[u][1]*(r[d][2]-r[h][2]);c+=r[0][1]*(r[1][2]-r[e-1][2]),c/=2*n[0];break;case 2:for(u=1;u<e;u++)h=u-1,d=(u+1)%e,c+=r[u][2]*(r[d][0]-r[h][0]);c+=r[0][2]*(r[1][0]-r[e-1][0]),c/=2*n[1];break;default:for(u=1;u<e;u++)h=u-1,d=(u+1)%e,c+=r[u][0]*(r[d][1]-r[h][1]);c+=r[0][0]*(r[1][1]-r[e-1][1]),c/=2*n[2]}return c}},8469:(t,e,r)=>{const i=r(4171);t.exports=t=>{const e=t.vertices,r=e.length,n=0===r?i.create():i.clone(e[0]),s=i.clone(n);for(let t=1;t<r;t++)i.min(n,n,e[t]),i.max(s,s,e[t]);return[n,s]}},1714:(t,e,r)=>{const i=r(4171),n=r(8469);t.exports=t=>{const e=n(t),r=e[0];return i.add(r,e[0],e[1]),i.scale(r,r,.5),[r,i.distance(r,e[1])]}},6294:(t,e,r)=>{const i=r(4171);t.exports=t=>{let e=0;const r=t.vertices,n=i.create();for(let t=0;t<r.length-2;t++)i.cross(n,r[t+1],r[t+2]),e+=i.dot(r[0],n);return e/=6,e}},7841:(t,e,r)=>{const i=r(8646);t.exports=t=>(t.plane||(t.plane=i.fromPoints(i.create(),...t.vertices)),t.plane)},1766:t=>{t.exports=t=>t.vertices},6878:(t,e,r)=>{const i=r(4171);t.exports=t=>{let e="poly3: vertices: [";return t.vertices.forEach((t=>{e+=`${i.toString(t)}, `})),e+="]",e}},9032:(t,e,r)=>{const i=r(6028),n=r(4171),s=r(5648);t.exports=(t,e)=>{const r=e.vertices.map((e=>n.transform(n.create(),e,t)));return i.isMirroring(t)&&r.reverse(),s(r)}},4800:(t,e,r)=>{const i=r(7055),{NEPS:n}=r(7022),s=r(4171),o=r(6908),a=r(7657),l=r(8841),c=r(7841);t.exports=t=>{if(!o(t))throw new Error("invalid poly3 structure");if(t.vertices.length<3)throw new Error(`poly3 not enough vertices ${t.vertices.length}`);if(l(t)<=0)throw new Error("poly3 area must be greater than zero");for(let e=0;e<t.vertices.length;e++)if(s.equals(t.vertices[e],t.vertices[(e+1)%t.vertices.length]))throw new Error(`poly3 duplicate vertex ${t.vertices[e]}`);if(!a(t))throw new Error("poly3 must be convex");if(t.vertices.forEach((t=>{if(!t.every(Number.isFinite))throw new Error(`poly3 invalid vertex ${t}`)})),t.vertices.length>3){const e=c(t);t.vertices.forEach((t=>{const r=Math.abs(i(e,t));if(r>n)throw new Error(`poly3 must be coplanar: vertex ${t} distance ${r}`)}))}}},3766:(t,e,r)=>{t.exports={colors:r(1457),curves:r(164),geometries:r(4484),maths:r(6118),measurements:r(5589),primitives:r(2080),text:r(651),utils:r(7377),booleans:r(5913),expansions:r(8900),extrusions:r(2268),hulls:r(3534),modifiers:r(9341),transforms:r(2240)}},5384:(t,e,r)=>{const i=r(6028),n=r(4138),s=r(4171),o=function(t,e){arguments.length<2&&(e=s.orthogonal(s.create(),t)),this.v=s.normalize(s.create(),s.cross(s.create(),t,e)),this.u=s.cross(s.create(),this.v,t),this.plane=t,this.planeorigin=s.scale(s.create(),t,t[3])};o.GetCartesian=function(t,e){const r=t+"/"+e;let i,n;if("X/Y"===r)i=[0,0,1],n=[1,0,0];else if("Y/-X"===r)i=[0,0,1],n=[0,1,0];else if("-X/-Y"===r)i=[0,0,1],n=[-1,0,0];else if("-Y/X"===r)i=[0,0,1],n=[0,-1,0];else if("-X/Y"===r)i=[0,0,-1],n=[-1,0,0];else if("-Y/-X"===r)i=[0,0,-1],n=[0,-1,0];else if("X/-Y"===r)i=[0,0,-1],n=[1,0,0];else if("Y/X"===r)i=[0,0,-1],n=[0,1,0];else if("X/Z"===r)i=[0,-1,0],n=[1,0,0];else if("Z/-X"===r)i=[0,-1,0],n=[0,0,1];else if("-X/-Z"===r)i=[0,-1,0],n=[-1,0,0];else if("-Z/X"===r)i=[0,-1,0],n=[0,0,-1];else if("-X/Z"===r)i=[0,1,0],n=[-1,0,0];else if("-Z/-X"===r)i=[0,1,0],n=[0,0,-1];else if("X/-Z"===r)i=[0,1,0],n=[1,0,0];else if("Z/X"===r)i=[0,1,0],n=[0,0,1];else if("Y/Z"===r)i=[1,0,0],n=[0,1,0];else if("Z/-Y"===r)i=[1,0,0],n=[0,0,1];else if("-Y/-Z"===r)i=[1,0,0],n=[0,-1,0];else if("-Z/Y"===r)i=[1,0,0],n=[0,0,-1];else if("-Y/Z"===r)i=[-1,0,0],n=[0,-1,0];else if("-Z/-Y"===r)i=[-1,0,0],n=[0,0,-1];else if("Y/-Z"===r)i=[-1,0,0],n=[0,1,0];else{if("Z/Y"!==r)throw new Error("OrthoNormalBasis.GetCartesian: invalid combination of axis identifiers. Should pass two string arguments from [X,Y,Z,-X,-Y,-Z], being two different axes.");i=[-1,0,0],n=[0,0,1]}return new o(new Plane(new Vector3D(i),0),new Vector3D(n))},o.Z0Plane=function(){const t=new Plane(new Vector3D([0,0,1]),0);return new o(t,new Vector3D([1,0,0]))},o.prototype={getProjectionMatrix:function(){return i.fromValues(this.u[0],this.v[0],this.plane[0],0,this.u[1],this.v[1],this.plane[1],0,this.u[2],this.v[2],this.plane[2],0,0,0,-this.plane[3],1)},getInverseProjectionMatrix:function(){const t=s.scale(s.create(),this.plane,this.plane[3]);return i.fromValues(this.u[0],this.u[1],this.u[2],0,this.v[0],this.v[1],this.v[2],0,this.plane[0],this.plane[1],this.plane[2],0,t[0],t[1],t[2],1)},to2D:function(t){return n.fromValues(s.dot(t,this.u),s.dot(t,this.v))},to3D:function(t){const e=s.scale(s.create(),this.u,t[0]),r=s.scale(s.create(),this.v,t[1]),i=s.add(e,e,this.planeorigin);return s.add(r,r,i)},line3Dto2D:function(t){const e=t.point,r=t.direction.plus(e),i=this.to2D(e),n=this.to2D(r);return Line2D.fromPoints(i,n)},line2Dto3D:function(t){const e=t.origin(),r=t.direction().plus(e),i=this.to3D(e),n=this.to3D(r);return Line3D.fromPoints(i,n)},transform:function(t){const e=this.plane.transform(t),r=this.u.transform(t),i=new Vector3D(0,0,0).transform(t),n=r.minus(i);return new o(e,n)}},t.exports=o},7022:t=>{t.exports={EPS:1e-5,NEPS:1e-13,spatialResolution:1e5}},6118:(t,e,r)=>{t.exports={constants:r(7022),line2:r(4714),line3:r(8812),mat4:r(6028),plane:r(8646),utils:r(8589),vec2:r(4138),vec3:r(4171),vec4:r(3870)}},9218:(t,e,r)=>{const i=r(8845);t.exports=t=>{const e=i();return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},1885:(t,e,r)=>{const i=r(4138),n=r(959),s=r(5923);t.exports=(t,e)=>{const r=s(t),o=n(t),a=(o[1]-r[1])/(o[0]-r[0]),l=r[1]-a*r[0],c=-1/a,h=(e[1]-c*e[0]-l)/(a-c),u=a*h+l;return i.fromValues(h,u)}},4:t=>{t.exports=(t,e)=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t)},8845:t=>{t.exports=()=>[0,1,0]},959:(t,e,r)=>{const i=r(4138);t.exports=t=>{const e=i.normal(i.create(),t);return i.negate(e,e),e}},4675:(t,e,r)=>{const i=r(4138);t.exports=(t,e)=>{let r=i.dot(e,t);return r=Math.abs(r-t[2]),r}},6786:t=>{t.exports=(t,e)=>t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]},2349:(t,e,r)=>{const i=r(4138);t.exports=(t,e,r)=>{const n=i.subtract(i.create(),r,e);i.normal(n,n),i.normalize(n,n);const s=i.dot(e,n);return t[0]=n[0],t[1]=n[1],t[2]=s,t}},4246:(t,e,r)=>{const i=r(8845);t.exports=(t,e,r)=>{const n=i();return n[0]=t,n[1]=e,n[2]=r,n}},4714:(t,e,r)=>{t.exports={clone:r(9218),closestPoint:r(1885),copy:r(4),create:r(8845),direction:r(959),distanceToPoint:r(4675),equals:r(6786),fromPoints:r(2349),fromValues:r(4246),intersectPointOfLines:r(2333),origin:r(5923),reverse:r(2830),toString:r(5456),transform:r(4009),xAtY:r(3562)}},2333:(t,e,r)=>{const i=r(4138),{solve2Linear:n}=r(8589);t.exports=(t,e)=>{const r=n(t[0],t[1],e[0],e[1],t[2],e[2]);return i.clone(r)}},5923:(t,e,r)=>{const i=r(4138);t.exports=t=>i.scale(i.create(),t,t[2])},2830:(t,e,r)=>{const i=r(4138),n=r(4),s=r(4246);t.exports=(t,e)=>{const r=i.negate(i.create(),e),o=-e[2];return n(t,s(r[0],r[1],o))}},5456:t=>{t.exports=t=>`line2: (${t[0].toFixed(7)}, ${t[1].toFixed(7)}, ${t[2].toFixed(7)})`},4009:(t,e,r)=>{const i=r(4138),n=r(2349),s=r(5923),o=r(959);t.exports=(t,e,r)=>{const a=s(e),l=o(e);return i.transform(a,a,r),i.transform(l,l,r),n(t,a,l)}},3562:(t,e,r)=>{const i=r(5923);t.exports=(t,e)=>{let r=(t[2]-t[1]*e)/t[0];return Number.isNaN(r)&&(r=i(t)[0]),r}},3191:(t,e,r)=>{const i=r(4171),n=r(7898);t.exports=t=>{const e=n();return i.copy(e[0],t[0]),i.copy(e[1],t[1]),e}},3315:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>{const r=t[0],n=t[1],s=i.dot(i.subtract(i.create(),e,r),n)/i.dot(n,n),o=i.scale(i.create(),n,s);return i.add(o,o,r),o}},90:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>(i.copy(t[0],e[0]),i.copy(t[1],e[1]),t)},7898:(t,e,r)=>{const i=r(4171);t.exports=()=>[i.fromValues(0,0,0),i.fromValues(0,0,1)]},3009:t=>{t.exports=t=>t[1]},1063:(t,e,r)=>{const i=r(4171),n=r(3315);t.exports=(t,e)=>{const r=n(t,e),s=i.subtract(i.create(),e,r);return i.length(s)}},5694:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>!!i.equals(t[1],e[1])&&!!i.equals(t[0],e[0])},9302:(t,e,r)=>{const i=r(4171),{solve2Linear:n}=r(8589),{EPS:s}=r(7022),o=r(4482);t.exports=(t,e,r)=>{let a=i.cross(i.create(),e,r),l=i.length(a);if(l<s)throw new Error("parallel planes do not intersect");l=1/l,a=i.scale(a,a,l);const c=Math.abs(a[0]),h=Math.abs(a[1]),u=Math.abs(a[2]);let d,p;return c>=h&&c>=u?(p=n(e[1],e[2],r[1],r[2],e[3],r[3]),d=i.fromValues(0,p[0],p[1])):h>=c&&h>=u?(p=n(e[0],e[2],r[0],r[2],e[3],r[3]),d=i.fromValues(p[0],0,p[1])):(p=n(e[0],e[1],r[0],r[1],e[3],r[3]),d=i.fromValues(p[0],p[1],0)),o(t,d,a)}},4482:(t,e,r)=>{const i=r(4171);t.exports=(t,e,r)=>{const n=i.normalize(i.create(),r);return i.copy(t[0],e),i.copy(t[1],n),t}},4528:(t,e,r)=>{const i=r(4171),n=r(4482);t.exports=(t,e,r)=>{const s=i.subtract(i.create(),r,e);return n(t,e,s)}},8812:(t,e,r)=>{t.exports={clone:r(3191),closestPoint:r(3315),copy:r(90),create:r(7898),direction:r(3009),distanceToPoint:r(1063),equals:r(5694),fromPlanes:r(9302),fromPointAndDirection:r(4482),fromPoints:r(4528),intersectPointOfLineAndPlane:r(5722),origin:r(7199),reverse:r(3322),toString:r(1037),transform:r(7958)}},5722:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>{const r=e,n=e[3],s=t[0],o=t[1],a=(n-i.dot(r,s))/i.dot(r,o);return i.add(i.create(),s,i.scale(i.create(),o,a))}},7199:t=>{t.exports=t=>t[0]},3322:(t,e,r)=>{const i=r(4171),n=r(4482);t.exports=(t,e)=>{const r=i.clone(e[0]),s=i.negate(i.create(),e[1]);return n(t,r,s)}},1037:t=>{t.exports=t=>{const e=t[0],r=t[1];return`line3: point: (${e[0].toFixed(7)}, ${e[1].toFixed(7)}, ${e[2].toFixed(7)}) direction: (${r[0].toFixed(7)}, ${r[1].toFixed(7)}, ${r[2].toFixed(7)})`}},7958:(t,e,r)=>{const i=r(4171),n=r(4482);t.exports=(t,e,r)=>{const s=e[0],o=e[1],a=i.add(i.create(),s,o),l=i.transform(i.create(),s,r),c=i.transform(a,a,r),h=i.subtract(c,c,l);return n(t,l,h)}},1444:t=>{t.exports=(t,e,r)=>(t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t)},3755:(t,e,r)=>{const i=r(8997);t.exports=t=>{const e=i();return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},5723:t=>{t.exports={EPSILON:1e-6}},8643:t=>{t.exports=(t,e)=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t)},8997:t=>{t.exports=()=>[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]},9209:t=>{t.exports=(t,e)=>t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]},5386:(t,e,r)=>{const i=r(9646),{EPSILON:n}=r(5723);t.exports=(t,e,r)=>{let[s,o,a]=r,l=Math.hypot(s,o,a);if(Math.abs(l)<n)return i(t);l=1/l,s*=l,o*=l,a*=l;const c=Math.sin(e),h=Math.cos(e),u=1-h;return t[0]=s*s*u+h,t[1]=o*s*u+a*c,t[2]=a*s*u-o*c,t[3]=0,t[4]=s*o*u-a*c,t[5]=o*o*u+h,t[6]=a*o*u+s*c,t[7]=0,t[8]=s*a*u+o*c,t[9]=o*a*u-s*c,t[10]=a*a*u+h,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},1788:t=>{t.exports=(t,e)=>(t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},2345:t=>{t.exports=(t,e,r,i)=>{const n=Math.sin(e),s=Math.cos(e),o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i);return t[0]=a*s,t[1]=a*n,t[2]=-o,t[3]=0,t[4]=l*o*s-c*n,t[5]=c*s+l*o*n,t[6]=l*a,t[7]=0,t[8]=l*n+c*o*s,t[9]=c*o*n-l*s,t[10]=c*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},5554:t=>{t.exports=(t,e)=>(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t)},1258:(t,e,r)=>{const i=r(8997);t.exports=(t,e,r,n,s,o,a,l,c,h,u,d,p,m,f,_)=>{const g=i();return g[0]=t,g[1]=e,g[2]=r,g[3]=n,g[4]=s,g[5]=o,g[6]=a,g[7]=l,g[8]=c,g[9]=h,g[10]=u,g[11]=d,g[12]=p,g[13]=m,g[14]=f,g[15]=_,g}},7049:(t,e,r)=>{const i=r(4171),n=r(5386);t.exports=(t,e,r)=>{const s=i.normalize(i.create(),e),o=i.normalize(i.create(),r),a=i.cross(i.create(),o,s),l=i.dot(o,s);if(-1===l)return n(t,Math.PI,i.orthogonal(a,s));const c=1/(1+l);return t[0]=a[0]*a[0]*c+l,t[1]=a[1]*a[0]*c-a[2],t[2]=a[2]*a[0]*c+a[1],t[3]=0,t[4]=a[0]*a[1]*c+a[2],t[5]=a[1]*a[1]*c+l,t[6]=a[2]*a[1]*c-a[0],t[7]=0,t[8]=a[0]*a[2]*c-a[1],t[9]=a[1]*a[2]*c+a[0],t[10]=a[2]*a[2]*c+l,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},7908:t=>{t.exports=(t,e)=>{const r=Math.sin(e),i=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=i,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},2215:t=>{t.exports=(t,e)=>{const r=Math.sin(e),i=Math.cos(e);return t[0]=i,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=i,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},4654:t=>{t.exports=(t,e)=>{const r=Math.sin(e),i=Math.cos(e);return t[0]=i,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}},9646:t=>{t.exports=t=>(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)},6028:(t,e,r)=>{t.exports={add:r(1444),clone:r(3755),copy:r(8643),create:r(8997),invert:r(9362),equals:r(9209),fromRotation:r(5386),fromScaling:r(1788),fromTaitBryanRotation:r(2345),fromTranslation:r(5554),fromValues:r(1258),fromVectorRotation:r(7049),fromXRotation:r(7908),fromYRotation:r(2215),fromZRotation:r(4654),identity:r(9646),isIdentity:r(9293),isOnlyTransformScale:r(1596),isMirroring:r(714),mirrorByPlane:r(3150),multiply:r(3619),rotate:r(6596),rotateX:r(525),rotateY:r(6465),rotateZ:r(1116),scale:r(8687),subtract:r(4612),toString:r(4284),translate:r(1923)}},9362:t=>{t.exports=(t,e)=>{const r=e[0],i=e[1],n=e[2],s=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],u=e[9],d=e[10],p=e[11],m=e[12],f=e[13],_=e[14],g=e[15],y=r*a-i*o,x=r*l-n*o,v=r*c-s*o,b=i*l-n*a,w=i*c-s*a,E=n*c-s*l,T=h*f-u*m,C=h*_-d*m,A=h*g-p*m,S=u*_-d*f,M=u*g-p*f,I=d*g-p*_;let P=y*I-x*M+v*S+b*A-w*C+E*T;return P?(P=1/P,t[0]=(a*I-l*M+c*S)*P,t[1]=(n*M-i*I-s*S)*P,t[2]=(f*E-_*w+g*b)*P,t[3]=(d*w-u*E-p*b)*P,t[4]=(l*A-o*I-c*C)*P,t[5]=(r*I-n*A+s*C)*P,t[6]=(_*v-m*E-g*x)*P,t[7]=(h*E-d*v+p*x)*P,t[8]=(o*M-a*A+c*T)*P,t[9]=(i*A-r*M-s*T)*P,t[10]=(m*w-f*v+g*y)*P,t[11]=(u*v-h*w-p*y)*P,t[12]=(a*C-o*S-l*T)*P,t[13]=(r*S-i*C+n*T)*P,t[14]=(f*x-m*b-_*y)*P,t[15]=(h*b-u*x+d*y)*P,t):null}},9293:t=>{t.exports=t=>1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&1===t[5]&&0===t[6]&&0===t[7]&&0===t[8]&&0===t[9]&&1===t[10]&&0===t[11]&&0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]},714:(t,e,r)=>{const i=r(2344),n=r(1087),s=r(3919);t.exports=t=>{const e=s(t[0],t[4],t[8]),r=s(t[1],t[5],t[9]),o=s(t[2],t[6],t[10]);return n(i(e,e,r),o)<0}},1596:t=>{const e=t=>Math.abs(t)<Number.EPSILON;t.exports=t=>e(t[1])&&e(t[2])&&e(t[3])&&e(t[4])&&e(t[6])&&e(t[7])&&e(t[8])&&e(t[9])&&e(t[11])&&1===t[15]},3150:t=>{t.exports=(t,e)=>{const[r,i,n,s]=e;return t[0]=1-2*r*r,t[1]=-2*i*r,t[2]=-2*n*r,t[3]=0,t[4]=-2*r*i,t[5]=1-2*i*i,t[6]=-2*n*i,t[7]=0,t[8]=-2*r*n,t[9]=-2*i*n,t[10]=1-2*n*n,t[11]=0,t[12]=2*r*s,t[13]=2*i*s,t[14]=2*n*s,t[15]=1,t}},3619:t=>{t.exports=(t,e,r)=>{const i=e[0],n=e[1],s=e[2],o=e[3],a=e[4],l=e[5],c=e[6],h=e[7],u=e[8],d=e[9],p=e[10],m=e[11],f=e[12],_=e[13],g=e[14],y=e[15];let x=r[0],v=r[1],b=r[2],w=r[3];return t[0]=x*i+v*a+b*u+w*f,t[1]=x*n+v*l+b*d+w*_,t[2]=x*s+v*c+b*p+w*g,t[3]=x*o+v*h+b*m+w*y,x=r[4],v=r[5],b=r[6],w=r[7],t[4]=x*i+v*a+b*u+w*f,t[5]=x*n+v*l+b*d+w*_,t[6]=x*s+v*c+b*p+w*g,t[7]=x*o+v*h+b*m+w*y,x=r[8],v=r[9],b=r[10],w=r[11],t[8]=x*i+v*a+b*u+w*f,t[9]=x*n+v*l+b*d+w*_,t[10]=x*s+v*c+b*p+w*g,t[11]=x*o+v*h+b*m+w*y,x=r[12],v=r[13],b=r[14],w=r[15],t[12]=x*i+v*a+b*u+w*f,t[13]=x*n+v*l+b*d+w*_,t[14]=x*s+v*c+b*p+w*g,t[15]=x*o+v*h+b*m+w*y,t}},6596:(t,e,r)=>{const i=r(8643);t.exports=(t,e,r,n)=>{let[s,o,a]=n,l=Math.hypot(s,o,a);if(Math.abs(l)<1e-6)return i(t,e);l=1/l,s*=l,o*=l,a*=l;const c=Math.sin(r),h=Math.cos(r),u=1-h,d=e[0],p=e[1],m=e[2],f=e[3],_=e[4],g=e[5],y=e[6],x=e[7],v=e[8],b=e[9],w=e[10],E=e[11],T=s*s*u+h,C=o*s*u+a*c,A=a*s*u-o*c,S=s*o*u-a*c,M=o*o*u+h,I=a*o*u+s*c,P=s*a*u+o*c,k=o*a*u-s*c,D=a*a*u+h;return t[0]=d*T+_*C+v*A,t[1]=p*T+g*C+b*A,t[2]=m*T+y*C+w*A,t[3]=f*T+x*C+E*A,t[4]=d*S+_*M+v*I,t[5]=p*S+g*M+b*I,t[6]=m*S+y*M+w*I,t[7]=f*S+x*M+E*I,t[8]=d*P+_*k+v*D,t[9]=p*P+g*k+b*D,t[10]=m*P+y*k+w*D,t[11]=f*P+x*k+E*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t}},525:t=>{t.exports=(t,e,r)=>{const i=Math.sin(r),n=Math.cos(r),s=e[4],o=e[5],a=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*n+c*i,t[5]=o*n+h*i,t[6]=a*n+u*i,t[7]=l*n+d*i,t[8]=c*n-s*i,t[9]=h*n-o*i,t[10]=u*n-a*i,t[11]=d*n-l*i,t}},6465:t=>{t.exports=(t,e,r)=>{const i=Math.sin(r),n=Math.cos(r),s=e[0],o=e[1],a=e[2],l=e[3],c=e[8],h=e[9],u=e[10],d=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*n-c*i,t[1]=o*n-h*i,t[2]=a*n-u*i,t[3]=l*n-d*i,t[8]=s*i+c*n,t[9]=o*i+h*n,t[10]=a*i+u*n,t[11]=l*i+d*n,t}},1116:t=>{t.exports=(t,e,r)=>{const i=Math.sin(r),n=Math.cos(r),s=e[0],o=e[1],a=e[2],l=e[3],c=e[4],h=e[5],u=e[6],d=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*n+c*i,t[1]=o*n+h*i,t[2]=a*n+u*i,t[3]=l*n+d*i,t[4]=c*n-s*i,t[5]=h*n-o*i,t[6]=u*n-a*i,t[7]=d*n-l*i,t}},8687:t=>{t.exports=(t,e,r)=>{const i=r[0],n=r[1],s=r[2];return t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t[3]=e[3]*i,t[4]=e[4]*n,t[5]=e[5]*n,t[6]=e[6]*n,t[7]=e[7]*n,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}},4612:t=>{t.exports=(t,e,r)=>(t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t)},4284:t=>{t.exports=t=>t.map((t=>t.toFixed(7))).toString()},1923:t=>{t.exports=(t,e,r)=>{const i=r[0],n=r[1],s=r[2];let o,a,l,c,h,u,d,p,m,f,_,g;return e===t?(t[12]=e[0]*i+e[4]*n+e[8]*s+e[12],t[13]=e[1]*i+e[5]*n+e[9]*s+e[13],t[14]=e[2]*i+e[6]*n+e[10]*s+e[14],t[15]=e[3]*i+e[7]*n+e[11]*s+e[15]):(o=e[0],a=e[1],l=e[2],c=e[3],h=e[4],u=e[5],d=e[6],p=e[7],m=e[8],f=e[9],_=e[10],g=e[11],t[0]=o,t[1]=a,t[2]=l,t[3]=c,t[4]=h,t[5]=u,t[6]=d,t[7]=p,t[8]=m,t[9]=f,t[10]=_,t[11]=g,t[12]=o*i+h*n+m*s+e[12],t[13]=a*i+u*n+f*s+e[13],t[14]=l*i+d*n+_*s+e[14],t[15]=c*i+p*n+g*s+e[15]),t}},2562:t=>{t.exports=(t,e)=>(t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t)},2796:(t,e,r)=>{const i=r(4171);t.exports=(t,e,r)=>{const n=i.normalize(i.create(),e),s=i.dot(r,n);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=s,t}},1329:(t,e,r)=>{const i=r(4171);t.exports=(t,...e)=>{const r=e.length,n=i.create(),s=i.create(),o=t=>{const o=e[t],a=e[(t+1)%r],l=e[(t+2)%r];return i.subtract(n,a,o),i.subtract(s,l,o),i.cross(n,n,s),i.normalize(n,n),n};return t[0]=0,t[1]=0,t[2]=0,3===r?i.copy(t,o(0)):(e.forEach(((e,r)=>{i.add(t,t,o(r))})),i.normalize(t,t)),t[3]=i.dot(t,e[0]),t}},6174:(t,e,r)=>{const{EPS:i}=r(7022),n=r(4171);t.exports=(t,e,r,s)=>{let o=n.subtract(n.create(),r,e),a=n.subtract(n.create(),s,e);n.length(o)<i&&(o=n.orthogonal(o,a)),n.length(a)<i&&(a=n.orthogonal(a,o));let l=n.cross(n.create(),o,a);n.length(l)<i&&(a=n.orthogonal(a,o),l=n.cross(l,o,a)),l=n.normalize(l,l);const c=n.dot(l,e);return t[0]=l[0],t[1]=l[1],t[2]=l[2],t[3]=c,t}},8646:(t,e,r)=>{t.exports={clone:r(2712),copy:r(5018),create:r(4658),equals:r(9066),flip:r(2562),fromNormalAndPoint:r(2796),fromValues:r(8627),fromPoints:r(1329),fromPointsRandom:r(6174),projectionOfPoint:r(9618),signedDistanceToPoint:r(7055),toString:r(6318),transform:r(2225)}},9618:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>{const r=e[0]*t[0]+e[1]*t[1]+e[2]*t[2]-t[3],n=e[0]-r*t[0],s=e[1]-r*t[1],o=e[2]-r*t[2];return i.fromValues(n,s,o)}},7055:(t,e,r)=>{const i=r(4171);t.exports=(t,e)=>i.dot(t,e)-t[3]},2225:(t,e,r)=>{const i=r(6028),n=r(4171),s=r(1329),o=r(2562);t.exports=(t,e,r)=>{const a=i.isMirroring(r),l=n.orthogonal(n.create(),e),c=n.cross(l,e,l),h=n.cross(n.create(),e,c);let u=n.fromScalar(n.create(),e[3]);n.multiply(u,u,e);let d=n.add(n.create(),u,c),p=n.add(n.create(),u,h);return u=n.transform(u,u,r),d=n.transform(d,d,r),p=n.transform(p,p,r),s(t,u,d,p),a&&o(t,t),t}},4364:(t,e,r)=>{const{NEPS:i}=r(7022);t.exports=(t,e)=>Math.abs(t[0]-e[0])<=i&&Math.abs(t[1]-e[1])<=i&&Math.abs(t[2]-e[2])<=i},1091:t=>{t.exports=t=>{let e=0;for(let r=0;r<t.length;r++){const i=(r+1)%t.length;e+=t[r][0]*t[i][1],e-=t[i][0]*t[r][1]}return e/2}},8589:(t,e,r)=>{t.exports={aboutEqualNormals:r(4364),area:r(1091),interpolateBetween2DPointsForY:r(9268),intersect:r(8601),solve2Linear:r(3295)}},9268:t=>{t.exports=(t,e,r)=>{let i,n=r-t[1],s=e[1]-t[1];return s<0&&(n=-n,s=-s),i=n<=0?0:n>=s?1:s<1e-10?.5:n/s,t[0]+i*(e[0]-t[0])}},8601:t=>{t.exports=(t,e,r,i)=>{if(t[0]===e[0]&&t[1]===e[1]||r[0]===i[0]&&r[1]===i[1])return;const n=(i[1]-r[1])*(e[0]-t[0])-(i[0]-r[0])*(e[1]-t[1]);if(Math.abs(n)<Number.MIN_VALUE)return;const s=((i[0]-r[0])*(t[1]-r[1])-(i[1]-r[1])*(t[0]-r[0]))/n,o=((e[0]-t[0])*(t[1]-r[1])-(e[1]-t[1])*(t[0]-r[0]))/n;return s<0||s>1||o<0||o>1?void 0:[t[0]+s*(e[0]-t[0]),t[1]+s*(e[1]-t[1])]}},3295:t=>{t.exports=(t,e,r,i,n,s)=>{const o=1/(t*i-e*r);let a=n*i-e*s,l=-n*r+t*s;return a*=o,l*=o,[a,l]}},490:t=>{t.exports=(t,e)=>(t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t)},1807:t=>{t.exports=(t,e,r)=>(t[0]=e[0]+r[0],t[1]=e[1]+r[1],t)},6810:(t,e,r)=>{t.exports=r(6503)},8809:(t,e,r)=>{const i=r(6503);t.exports=t=>57.29577951308232*i(t)},6503:t=>{t.exports=t=>Math.atan2(t[1],t[0])},457:(t,e,r)=>{const i=r(5465);t.exports=t=>{const e=i();return e[0]=t[0],e[1]=t[1],e}},2928:t=>{t.exports=(t,e)=>(t[0]=e[0],t[1]=e[1],t)},5465:t=>{t.exports=()=>[0,0]},6088:t=>{t.exports=(t,e,r)=>(t[0]=0,t[1]=0,t[2]=e[0]*r[1]-e[1]*r[0],t)},9878:t=>{t.exports=(t,e)=>{const r=e[0]-t[0],i=e[1]-t[1];return Math.hypot(r,i)}},1407:t=>{t.exports=(t,e,r)=>(t[0]=e[0]/r[0],t[1]=e[1]/r[1],t)},3763:t=>{t.exports=(t,e)=>t[0]*e[0]+t[1]*e[1]},4626:t=>{t.exports=(t,e)=>t[0]===e[0]&&t[1]===e[1]},4240:(t,e,r)=>{const i=r(9076);t.exports=(t,e)=>i(t,Math.PI*e/180)},9076:t=>{t.exports=(t,e)=>(t[0]=Math.cos(e),t[1]=Math.sin(e),t)},5155:t=>{t.exports=(t,e)=>(t[0]=e,t[1]=e,t)},5122:(t,e,r)=>{const i=r(5465);t.exports=(t,e)=>{const r=i();return r[0]=t,r[1]=e,r}},4138:(t,e,r)=>{t.exports={abs:r(490),add:r(1807),angle:r(6810),angleDegrees:r(8809),angleRadians:r(6503),clone:r(457),copy:r(2928),create:r(5465),cross:r(6088),distance:r(9878),divide:r(1407),dot:r(3763),equals:r(4626),fromAngleDegrees:r(4240),fromAngleRadians:r(9076),fromScalar:r(5155),fromValues:r(5122),length:r(4602),lerp:r(5621),max:r(7573),min:r(7952),multiply:r(3602),negate:r(4606),normal:r(9271),normalize:r(410),rotate:r(1099),scale:r(2871),snap:r(6203),squaredDistance:r(8558),squaredLength:r(6656),subtract:r(577),toString:r(2460),transform:r(1941)}},4602:t=>{t.exports=t=>Math.hypot(t[0],t[1])},5621:t=>{t.exports=(t,e,r,i)=>{const n=e[0],s=e[1];return t[0]=n+i*(r[0]-n),t[1]=s+i*(r[1]-s),t}},7573:t=>{t.exports=(t,e,r)=>(t[0]=Math.max(e[0],r[0]