!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).webgl_sdf_generator=t()}(this,(function(){"use strict";return function(){var e=function(e){function t(e,t,n,r,a,i,o,l,c,u){var s=1-c;u.x=s*s*s*e+3*s*s*c*n+3*s*c*c*a+c*c*c*o,u.y=s*s*s*t+3*s*s*c*r+3*s*c*c*i+c*c*c*l}function n(e,t){for(var n,r,a,i,o,l=/([MLQCZ])([^MLQCZ]*)/g;n=l.exec(e);){var c=n[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map((function(e){return parseFloat(e)}));switch(n[1]){case"M":i=r=c[0],o=a=c[1];break;case"L":c[0]===i&&c[1]===o||t("L",i,o,i=c[0],o=c[1]);break;case"Q":t("Q",i,o,i=c[2],o=c[3],c[0],c[1]);break;case"C":t("C",i,o,i=c[4],o=c[5],c[0],c[1],c[2],c[3]);break;case"Z":i===r&&o===a||t("L",i,o,r,a)}}}function r(e,r,a){void 0===a&&(a=16);var i={x:0,y:0};n(e,(function(e,n,o,l,c,u,s,f,v){switch(e){case"L":r(n,o,l,c);break;case"Q":for(var d=n,g=o,p=1;p0;)r[a]=arguments[a+2];var i=s[t]||(s[t]=n.getUniformLocation(f,t));n["uniform"+e].apply(n,[i].concat(r))},setAttribute:function(t,r,i,o,l){var c=u[t];c||(c=u[t]={buf:n.createBuffer(),loc:n.getAttribLocation(f,t),data:null}),n.bindBuffer(n.ARRAY_BUFFER,c.buf),n.vertexAttribPointer(c.loc,r,n.FLOAT,!1,0,0),n.enableVertexAttribArray(c.loc),a?n.vertexAttribDivisor(c.loc,o):e("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(c.loc,o),l!==c.data&&(n.bufferData(n.ARRAY_BUFFER,l,i),c.data=l)}})}}}c[r].transaction(l)}function v(e,t){s++;try{n.activeTexture(n.TEXTURE0+s);var r=u[e];r||(r=u[e]=n.createTexture(),n.bindTexture(n.TEXTURE_2D,r),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST)),n.bindTexture(n.TEXTURE_2D,r),t(r,s)}finally{s--}}function d(e,t,r){var a=n.createFramebuffer();f.push(a),n.bindFramebuffer(n.FRAMEBUFFER,a),n.activeTexture(n.TEXTURE0+t),n.bindTexture(n.TEXTURE_2D,e),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,e,0);try{r(a)}finally{n.deleteFramebuffer(a),n.bindFramebuffer(n.FRAMEBUFFER,f[--f.length-1]||null)}}function g(){l={},c={},u={},s=-1,f.length=0}n.canvas.addEventListener("webglcontextlost",(function(e){g(),e.preventDefault()}),!1),i.set(n,r={gl:n,isWebGL2:a,getExtension:e,withProgram:o,withTexture:v,withTextureFramebuffer:d,handleContextLoss:g})}t(r)}function c(e,t,n,r,i,o,c,u){void 0===c&&(c=15),void 0===u&&(u=null),l(e,(function(e){var l=e.gl,s=e.withProgram;(0,e.withTexture)("copy",(function(e,f){l.texImage2D(l.TEXTURE_2D,0,l.RGBA,i,o,0,l.RGBA,l.UNSIGNED_BYTE,t),s("copy",a,"precision highp float;uniform sampler2D tex;varying vec2 vUV;void main(){gl_FragColor=texture2D(tex,vUV);}",(function(e){var t=e.setUniform;(0,e.setAttribute)("aUV",2,l.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),t("1i","image",f),l.bindFramebuffer(l.FRAMEBUFFER,u||null),l.disable(l.BLEND),l.colorMask(8&c,4&c,2&c,1&c),l.viewport(n,r,i,o),l.scissor(n,r,i,o),l.drawArrays(l.TRIANGLES,0,3)}))}))}))}var u=Object.freeze({__proto__:null,withWebGLContext:l,renderImageData:c,resizeWebGLCanvasWithoutClearing:function(e,t,n){var r=e.width,a=e.height;l(e,(function(i){var o=i.gl,l=new Uint8Array(r*a*4);o.readPixels(0,0,r,a,o.RGBA,o.UNSIGNED_BYTE,l),e.width=t,e.height=n,c(o,l,0,0,r,a)}))}});function s(e,t,n,a,i,o){void 0===o&&(o=1);var l=new Uint8Array(e*t),c=a[2]-a[0],u=a[3]-a[1],s=[];r(n,(function(e,t,n,r){s.push({x1:e,y1:t,x2:n,y2:r,minX:Math.min(e,n),minY:Math.min(t,r),maxX:Math.max(e,n),maxY:Math.max(t,r)})})),s.sort((function(e,t){return e.maxX-t.maxX}));for(var f=0;fi.minX&&t-ri.minY){var o=d(e,t,i.x1,i.y1,i.x2,i.y2);ot!=a.y2>t&&e<(a.x2-a.x1)*(t-a.y1)/(a.y2-a.y1)+a.x1&&(n+=a.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y