webgl2-sdf 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +76 -65
- package/browser/index.min.js +1 -1
- package/node/bezier/bezier-curves-to-line-segs.d.ts +1 -1
- package/node/bezier/bezier-curves-to-line-segs.js +2 -2
- package/node/bezier/bezier-curves-to-line-segs.js.map +1 -1
- package/node/bezier/split-into-line-segments.d.ts +1 -1
- package/node/bezier/split-into-line-segments.js +5 -4
- package/node/bezier/split-into-line-segments.js.map +1 -1
- package/node/generate-sdf.d.ts +21 -15
- package/node/generate-sdf.js +30 -26
- package/node/generate-sdf.js.map +1 -1
- package/node/index.d.ts +3 -1
- package/node/index.js +3 -1
- package/node/index.js.map +1 -1
- package/node/main-program.d.ts +1 -1
- package/node/main-program.js +3 -3
- package/node/main-program.js.map +1 -1
- package/node/prepare-buffers.d.ts +1 -1
- package/node/prepare-buffers.js +6 -8
- package/node/prepare-buffers.js.map +1 -1
- package/node/shaders/fragment.d.ts +2 -0
- package/node/shaders/{main.fragment.js → fragment.js} +5 -4
- package/node/shaders/fragment.js.map +1 -0
- package/node/shaders/vertex.d.ts +2 -0
- package/node/shaders/{main.vertex.js → vertex.js} +9 -6
- package/node/shaders/vertex.js.map +1 -0
- package/node/types/gl-context.d.ts +0 -1
- package/node/types/program.d.ts +2 -0
- package/node/utils/calc-circs.js.map +1 -1
- package/node/utils/clip-line-segment-to-grid.d.ts +1 -1
- package/node/utils/clip-line-segment-to-grid.js +1 -4
- package/node/utils/clip-line-segment-to-grid.js.map +1 -1
- package/node/utils/clip-line-segment-to-strips.d.ts +2 -3
- package/node/utils/clip-line-segment-to-strips.js +5 -57
- package/node/utils/clip-line-segment-to-strips.js.map +1 -1
- package/node/utils/find-close-cells.js +14 -70
- package/node/utils/find-close-cells.js.map +1 -1
- package/node/utils/find-crossing-cells.js +0 -15
- package/node/utils/find-crossing-cells.js.map +1 -1
- package/node/utils/jump-idx.js +20 -18
- package/node/utils/jump-idx.js.map +1 -1
- package/node/utils/seg-box-x.js +27 -17
- package/node/utils/seg-box-x.js.map +1 -1
- package/node/webgl-utils/free-gl-context.d.ts +3 -0
- package/node/webgl-utils/free-gl-context.js +26 -0
- package/node/webgl-utils/free-gl-context.js.map +1 -0
- package/node/webgl-utils/{get-gl-context.d.ts → get-web-gl-context.d.ts} +2 -2
- package/node/webgl-utils/{get-gl-context.js → get-web-gl-context.js} +7 -10
- package/node/webgl-utils/get-web-gl-context.js.map +1 -0
- package/node/webgl-utils/set-attribute.js +1 -1
- package/node/webgl-utils/set-attribute.js.map +1 -1
- package/node/webgl-utils/set-uniform-block.js +1 -3
- package/node/webgl-utils/set-uniform-block.js.map +1 -1
- package/node/webgl-utils/use-program.js +13 -3
- package/node/webgl-utils/use-program.js.map +1 -1
- package/package.json +3 -3
- package/src/bezier/bezier-curves-to-line-segs.ts +2 -3
- package/src/bezier/split-into-line-segments.ts +7 -5
- package/src/generate-sdf.ts +36 -30
- package/src/index.ts +3 -1
- package/src/main-program.ts +4 -3
- package/src/prepare-buffers.ts +6 -8
- package/src/shaders/{main.fragment.ts → fragment.ts} +4 -3
- package/src/shaders/{main.vertex.ts → vertex.ts} +8 -5
- package/src/types/gl-context.ts +0 -1
- package/src/types/program.ts +2 -0
- package/src/utils/calc-circs.ts +0 -2
- package/src/utils/clip-line-segment-to-grid.ts +1 -5
- package/src/utils/clip-line-segment-to-strips.ts +6 -73
- package/src/utils/find-close-cells.ts +27 -87
- package/src/utils/find-crossing-cells.ts +1 -18
- package/src/utils/jump-idx.ts +25 -20
- package/src/utils/seg-box-x.ts +30 -17
- package/src/webgl-utils/free-gl-context.ts +35 -0
- package/src/webgl-utils/{get-gl-context.ts → get-web-gl-context.ts} +6 -9
- package/src/webgl-utils/set-attribute.ts +1 -1
- package/src/webgl-utils/set-uniform-block.ts +1 -3
- package/src/webgl-utils/use-program.ts +14 -3
- package/node/debug-shaders.d.ts +0 -9
- package/node/shaders/main.fragment.d.ts +0 -2
- package/node/shaders/main.fragment.js.map +0 -1
- package/node/shaders/main.vertex.d.ts +0 -2
- package/node/shaders/main.vertex.js.map +0 -1
- package/node/types/strip.d.ts +0 -8
- package/node/types/strip.js +0 -2
- package/node/types/strip.js.map +0 -1
- package/node/utils/create-empty-strips.d.ts +0 -7
- package/node/utils/create-empty-strips.js +0 -16
- package/node/utils/create-empty-strips.js.map +0 -1
- package/node/utils/distance-seg-to-p.d.ts +0 -5
- package/node/utils/distance-seg-to-p.js +0 -35
- package/node/utils/distance-seg-to-p.js.map +0 -1
- package/node/webgl-utils/get-gl-context.js.map +0 -1
- package/node/webgl2.d.ts +0 -2
- package/src/types/strip.ts +0 -11
- package/src/utils/create-empty-strips.ts +0 -21
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ROW_COUNT } from "../row-count.js";
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param count the number of strips
|
|
5
|
-
*/
|
|
6
|
-
// TODO - remove
|
|
7
|
-
function createEmptyStrips() {
|
|
8
|
-
const strips = [];
|
|
9
|
-
for (let v = 0; v < ROW_COUNT; v++) {
|
|
10
|
-
// TODO - simplify
|
|
11
|
-
strips.push({ lineSegs: [] });
|
|
12
|
-
}
|
|
13
|
-
return strips;
|
|
14
|
-
}
|
|
15
|
-
export { createEmptyStrips };
|
|
16
|
-
//# sourceMappingURL=create-empty-strips.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-empty-strips.js","sourceRoot":"","sources":["../../src/utils/create-empty-strips.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C;;;GAGG;AACH,gBAAgB;AAChB,SAAS,iBAAiB;IACtB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,kBAAkB;QAClB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const { min, max, sqrt } = Math;
|
|
2
|
-
/**
|
|
3
|
-
* Returns the minimum distance from the given line segment to the origin.
|
|
4
|
-
*/
|
|
5
|
-
function distanceSegToP(seg, p) {
|
|
6
|
-
const seg0 = seg[0];
|
|
7
|
-
const seg1 = seg[1];
|
|
8
|
-
const _x1 = seg0[0];
|
|
9
|
-
const _y1 = seg0[1];
|
|
10
|
-
const _x2 = seg1[0];
|
|
11
|
-
const _y2 = seg1[1];
|
|
12
|
-
const x = p[0];
|
|
13
|
-
const y = p[1];
|
|
14
|
-
const x1 = _x1 - x;
|
|
15
|
-
const y1 = _y1 - y;
|
|
16
|
-
const x2 = _x2 - x;
|
|
17
|
-
const y2 = _y2 - y;
|
|
18
|
-
// Vector from point 1 to point 2
|
|
19
|
-
const dx = x2 - x1;
|
|
20
|
-
const dy = y2 - y1;
|
|
21
|
-
const lengthSq = dx * dx + dy * dy;
|
|
22
|
-
// Calculate projection parameter t
|
|
23
|
-
// t represents where the closest point lies on the line segment
|
|
24
|
-
// t = 0 means closest point is at seg[0], t = 1 means closest point is at seg[1]
|
|
25
|
-
const t = max(0, min(1, -(x1 * dx + y1 * dy) / lengthSq));
|
|
26
|
-
// Find the closest point on the segment
|
|
27
|
-
const closestX = x1 + t * dx;
|
|
28
|
-
const closestY = y1 + t * dy;
|
|
29
|
-
// Return distance from origin to closest point
|
|
30
|
-
return sqrt(closestX * closestX + closestY * closestY);
|
|
31
|
-
}
|
|
32
|
-
export { distanceSegToP };
|
|
33
|
-
// Quokka tests
|
|
34
|
-
// distanceSegToOrigin([[0,1],[-1,-2]]);//?
|
|
35
|
-
//# sourceMappingURL=distance-seg-to-p.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"distance-seg-to-p.js","sourceRoot":"","sources":["../../src/utils/distance-seg-to-p.ts"],"names":[],"mappings":"AACA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAGhC;;GAEG;AACH,SAAS,cAAc,CACf,GAAe,EACf,CAAW;IAEf,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEf,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACnB,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IAEnB,iCAAiC;IACjC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnB,MAAM,QAAQ,GAAG,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC;IAE/B,mCAAmC;IACnC,gEAAgE;IAChE,iFAAiF;IACjF,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAC,EAAE,GAAG,EAAE,GAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAEtD,wCAAwC;IACxC,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAC,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,GAAC,EAAE,CAAC;IAE3B,+CAA+C;IAC/C,OAAO,IAAI,CAAC,QAAQ,GAAC,QAAQ,GAAG,QAAQ,GAAC,QAAQ,CAAC,CAAC;AACvD,CAAC;AAGD,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB,eAAe;AACf,2CAA2C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-gl-context.js","sourceRoot":"","sources":["../../src/webgl-utils/get-gl-context.ts"],"names":[],"mappings":"AAKA,MAAM,KAAK,GAAG,IAAI,OAAO,EAAqC,CAAC;AAG/D;;;;;;GAMG;AACH,SAAS,eAAe,CAChB,EAA0B;IAE9B,CAAC;QACG,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YAAC,OAAO,SAAS,CAAC;QAAC,CAAC;IACxC,CAAC;IAED,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAgC,EAAE,CAAC;IACjD,MAAM,gBAAgB,GAAuB,EAAE,CAAC;IAEhD,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE;QAC/C,iBAAiB,EAAE,CAAC;QACpB,CAAC,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,MAAM,SAAS,GAAc;QACzB,EAAE;QACF,aAAa,EAAE,iBAAiB;QAChC,QAAQ;QACR,QAAQ;QACR,gBAAgB;KACnB,CAAC;IAEF,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAEzB,OAAO,SAAS,CAAC;IAGjB,wBAAwB;IAExB,SAAS,iBAAiB;QACtB,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;AACL,CAAC;AAGD,SAAS,cAAc,CAAC,CAA6B;IACjD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/node/webgl2.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
declare function generateIntoFramebuffer(gl: WebGL2RenderingContext, psss: (number[][])[][] | string, width: number, height: number, viewbox: [number, number, number, number], maxDistance: number, sdfExponent?: number, inclInside?: boolean, inclOutside?: boolean, x?: number, y?: number, channel?: number, resolution?: 0.5 | 1): void;
|
|
2
|
-
export { generateIntoFramebuffer };
|
package/src/types/strip.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ROW_COUNT } from "../row-count.js";
|
|
2
|
-
import { Strip } from "../types/strip.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @param count the number of strips
|
|
8
|
-
*/
|
|
9
|
-
// TODO - remove
|
|
10
|
-
function createEmptyStrips() {
|
|
11
|
-
const strips: Strip[] = [];
|
|
12
|
-
for (let v=0; v<ROW_COUNT; v++) {
|
|
13
|
-
// TODO - simplify
|
|
14
|
-
strips.push({ lineSegs: [] });
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return strips;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export { createEmptyStrips }
|