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.
Files changed (96) hide show
  1. package/README.md +76 -65
  2. package/browser/index.min.js +1 -1
  3. package/node/bezier/bezier-curves-to-line-segs.d.ts +1 -1
  4. package/node/bezier/bezier-curves-to-line-segs.js +2 -2
  5. package/node/bezier/bezier-curves-to-line-segs.js.map +1 -1
  6. package/node/bezier/split-into-line-segments.d.ts +1 -1
  7. package/node/bezier/split-into-line-segments.js +5 -4
  8. package/node/bezier/split-into-line-segments.js.map +1 -1
  9. package/node/generate-sdf.d.ts +21 -15
  10. package/node/generate-sdf.js +30 -26
  11. package/node/generate-sdf.js.map +1 -1
  12. package/node/index.d.ts +3 -1
  13. package/node/index.js +3 -1
  14. package/node/index.js.map +1 -1
  15. package/node/main-program.d.ts +1 -1
  16. package/node/main-program.js +3 -3
  17. package/node/main-program.js.map +1 -1
  18. package/node/prepare-buffers.d.ts +1 -1
  19. package/node/prepare-buffers.js +6 -8
  20. package/node/prepare-buffers.js.map +1 -1
  21. package/node/shaders/fragment.d.ts +2 -0
  22. package/node/shaders/{main.fragment.js → fragment.js} +5 -4
  23. package/node/shaders/fragment.js.map +1 -0
  24. package/node/shaders/vertex.d.ts +2 -0
  25. package/node/shaders/{main.vertex.js → vertex.js} +9 -6
  26. package/node/shaders/vertex.js.map +1 -0
  27. package/node/types/gl-context.d.ts +0 -1
  28. package/node/types/program.d.ts +2 -0
  29. package/node/utils/calc-circs.js.map +1 -1
  30. package/node/utils/clip-line-segment-to-grid.d.ts +1 -1
  31. package/node/utils/clip-line-segment-to-grid.js +1 -4
  32. package/node/utils/clip-line-segment-to-grid.js.map +1 -1
  33. package/node/utils/clip-line-segment-to-strips.d.ts +2 -3
  34. package/node/utils/clip-line-segment-to-strips.js +5 -57
  35. package/node/utils/clip-line-segment-to-strips.js.map +1 -1
  36. package/node/utils/find-close-cells.js +14 -70
  37. package/node/utils/find-close-cells.js.map +1 -1
  38. package/node/utils/find-crossing-cells.js +0 -15
  39. package/node/utils/find-crossing-cells.js.map +1 -1
  40. package/node/utils/jump-idx.js +20 -18
  41. package/node/utils/jump-idx.js.map +1 -1
  42. package/node/utils/seg-box-x.js +27 -17
  43. package/node/utils/seg-box-x.js.map +1 -1
  44. package/node/webgl-utils/free-gl-context.d.ts +3 -0
  45. package/node/webgl-utils/free-gl-context.js +26 -0
  46. package/node/webgl-utils/free-gl-context.js.map +1 -0
  47. package/node/webgl-utils/{get-gl-context.d.ts → get-web-gl-context.d.ts} +2 -2
  48. package/node/webgl-utils/{get-gl-context.js → get-web-gl-context.js} +7 -10
  49. package/node/webgl-utils/get-web-gl-context.js.map +1 -0
  50. package/node/webgl-utils/set-attribute.js +1 -1
  51. package/node/webgl-utils/set-attribute.js.map +1 -1
  52. package/node/webgl-utils/set-uniform-block.js +1 -3
  53. package/node/webgl-utils/set-uniform-block.js.map +1 -1
  54. package/node/webgl-utils/use-program.js +13 -3
  55. package/node/webgl-utils/use-program.js.map +1 -1
  56. package/package.json +3 -3
  57. package/src/bezier/bezier-curves-to-line-segs.ts +2 -3
  58. package/src/bezier/split-into-line-segments.ts +7 -5
  59. package/src/generate-sdf.ts +36 -30
  60. package/src/index.ts +3 -1
  61. package/src/main-program.ts +4 -3
  62. package/src/prepare-buffers.ts +6 -8
  63. package/src/shaders/{main.fragment.ts → fragment.ts} +4 -3
  64. package/src/shaders/{main.vertex.ts → vertex.ts} +8 -5
  65. package/src/types/gl-context.ts +0 -1
  66. package/src/types/program.ts +2 -0
  67. package/src/utils/calc-circs.ts +0 -2
  68. package/src/utils/clip-line-segment-to-grid.ts +1 -5
  69. package/src/utils/clip-line-segment-to-strips.ts +6 -73
  70. package/src/utils/find-close-cells.ts +27 -87
  71. package/src/utils/find-crossing-cells.ts +1 -18
  72. package/src/utils/jump-idx.ts +25 -20
  73. package/src/utils/seg-box-x.ts +30 -17
  74. package/src/webgl-utils/free-gl-context.ts +35 -0
  75. package/src/webgl-utils/{get-gl-context.ts → get-web-gl-context.ts} +6 -9
  76. package/src/webgl-utils/set-attribute.ts +1 -1
  77. package/src/webgl-utils/set-uniform-block.ts +1 -3
  78. package/src/webgl-utils/use-program.ts +14 -3
  79. package/node/debug-shaders.d.ts +0 -9
  80. package/node/shaders/main.fragment.d.ts +0 -2
  81. package/node/shaders/main.fragment.js.map +0 -1
  82. package/node/shaders/main.vertex.d.ts +0 -2
  83. package/node/shaders/main.vertex.js.map +0 -1
  84. package/node/types/strip.d.ts +0 -8
  85. package/node/types/strip.js +0 -2
  86. package/node/types/strip.js.map +0 -1
  87. package/node/utils/create-empty-strips.d.ts +0 -7
  88. package/node/utils/create-empty-strips.js +0 -16
  89. package/node/utils/create-empty-strips.js.map +0 -1
  90. package/node/utils/distance-seg-to-p.d.ts +0 -5
  91. package/node/utils/distance-seg-to-p.js +0 -35
  92. package/node/utils/distance-seg-to-p.js.map +0 -1
  93. package/node/webgl-utils/get-gl-context.js.map +0 -1
  94. package/node/webgl2.d.ts +0 -2
  95. package/src/types/strip.ts +0 -11
  96. package/src/utils/create-empty-strips.ts +0 -21
@@ -1,7 +0,0 @@
1
- import { Strip } from "../types/strip.js";
2
- /**
3
- *
4
- * @param count the number of strips
5
- */
6
- declare function createEmptyStrips(): Strip[];
7
- export { createEmptyStrips };
@@ -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,5 +0,0 @@
1
- /**
2
- * Returns the minimum distance from the given line segment to the origin.
3
- */
4
- declare function distanceSegToP(seg: number[][], p: number[]): number;
5
- export { distanceSegToP };
@@ -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 };
@@ -1,11 +0,0 @@
1
-
2
- /**
3
- * A single strip within strips
4
- */
5
- interface Strip {
6
- /** line segments contained within the strip */
7
- readonly lineSegs: number[][][];
8
- }
9
-
10
-
11
- export type { Strip }
@@ -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 }