{"version":3,"sources":["jsdelivr-header.js","/npm/bitmap-sdf@1.0.4/index.js"],"names":[],"mappings":"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","file":"/npm/bitmap-sdf@1.0.4/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/bitmap-sdf@1.0.4/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict'\r\n\r\nmodule.exports = calcSDF\r\n\r\nvar INF = 1e20\r\n\r\nfunction calcSDF(src, options) {\r\n    if (!options) options = {}\r\n\r\n    var cutoff = options.cutoff == null ? 0.25 : options.cutoff\r\n    var radius = options.radius == null ? 8 : options.radius\r\n    var channel = options.channel || 0\r\n    var w, h, size, data, intData, stride, ctx, canvas, imgData, i, l\r\n\r\n    // handle image container\r\n    if (ArrayBuffer.isView(src) || Array.isArray(src)) {\r\n        if (!options.width || !options.height) throw Error('For raw data width and height should be provided by options')\r\n        w = options.width, h = options.height\r\n        data = src\r\n\r\n        if (!options.stride) stride = Math.floor(src.length / w / h)\r\n        else stride = options.stride\r\n    }\r\n    else {\r\n        if (window.HTMLCanvasElement && src instanceof window.HTMLCanvasElement) {\r\n            canvas = src\r\n            ctx = canvas.getContext('2d')\r\n            w = canvas.width, h = canvas.height\r\n            imgData = ctx.getImageData(0, 0, w, h)\r\n            data = imgData.data\r\n            stride = 4\r\n        }\r\n        else if (window.CanvasRenderingContext2D && src instanceof window.CanvasRenderingContext2D) {\r\n            canvas = src.canvas\r\n            ctx = src\r\n            w = canvas.width, h = canvas.height\r\n            imgData = ctx.getImageData(0, 0, w, h)\r\n            data = imgData.data\r\n            stride = 4\r\n        }\r\n        else if (window.ImageData && src instanceof window.ImageData) {\r\n            imgData = src\r\n            w = src.width, h = src.height\r\n            data = imgData.data\r\n            stride = 4\r\n        }\r\n    }\r\n\r\n    size = Math.max(w, h)\r\n\r\n    //convert int data to floats\r\n    if ((window.Uint8ClampedArray && data instanceof window.Uint8ClampedArray) || (window.Uint8Array && data instanceof window.Uint8Array)) {\r\n        intData = data\r\n        data = Array(w*h)\r\n\r\n        for (i = 0, l = Math.floor(intData.length / stride); i < l; i++) {\r\n            data[i] = intData[i*stride + channel] / 255\r\n        }\r\n    }\r\n    else {\r\n        if (stride !== 1) throw Error('Raw data can have only 1 value per pixel')\r\n    }\r\n\r\n    // temporary arrays for the distance transform\r\n    var gridOuter = Array(w * h)\r\n    var gridInner = Array(w * h)\r\n    var f = Array(size)\r\n    var d = Array(size)\r\n    var z = Array(size + 1)\r\n    var v = Array(size)\r\n\r\n    for (i = 0, l = w * h; i < l; i++) {\r\n        var a = data[i]\r\n        gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2)\r\n        gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2)\r\n    }\r\n\r\n    edt(gridOuter, w, h, f, d, v, z)\r\n    edt(gridInner, w, h, f, d, v, z)\r\n\r\n    var dist = window.Float32Array ? new Float32Array(w * h) : new Array(w * h)\r\n\r\n    for (i = 0, l = w*h; i < l; i++) {\r\n        dist[i] = Math.min(Math.max(1 - ( (gridOuter[i] - gridInner[i]) / radius + cutoff), 0), 1)\r\n    }\r\n\r\n    return dist\r\n}\r\n\r\n// 2D Euclidean distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/dt/\r\nfunction edt(data, width, height, f, d, v, z) {\r\n    for (var x = 0; x < width; x++) {\r\n        for (var y = 0; y < height; y++) {\r\n            f[y] = data[y * width + x]\r\n        }\r\n        edt1d(f, d, v, z, height)\r\n        for (y = 0; y < height; y++) {\r\n            data[y * width + x] = d[y]\r\n        }\r\n    }\r\n    for (y = 0; y < height; y++) {\r\n        for (x = 0; x < width; x++) {\r\n            f[x] = data[y * width + x]\r\n        }\r\n        edt1d(f, d, v, z, width)\r\n        for (x = 0; x < width; x++) {\r\n            data[y * width + x] = Math.sqrt(d[x])\r\n        }\r\n    }\r\n}\r\n\r\n// 1D squared distance transform\r\nfunction edt1d(f, d, v, z, n) {\r\n    v[0] = 0;\r\n    z[0] = -INF\r\n    z[1] = +INF\r\n\r\n    for (var q = 1, k = 0; q < n; q++) {\r\n        var s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k])\r\n        while (s <= z[k]) {\r\n            k--\r\n            s = ((f[q] + q * q) - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k])\r\n        }\r\n        k++\r\n        v[k] = q\r\n        z[k] = s\r\n        z[k + 1] = +INF\r\n    }\r\n\r\n    for (q = 0, k = 0; q < n; q++) {\r\n        while (z[k + 1] < q) k++\r\n        d[q] = (q - v[k]) * (q - v[k]) + f[v[k]]\r\n    }\r\n}\r\n"]}