plotboilerplate 1.25.0 → 1.27.0

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 (174) hide show
  1. package/README.md +3 -0
  2. package/dist/index.esm.js +171 -43
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +171 -43
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +6 -2
  11. package/src/cjs/Bounds.d.ts +79 -25
  12. package/src/cjs/Bounds.js +102 -29
  13. package/src/cjs/Bounds.js.map +1 -1
  14. package/src/cjs/CircleSector.d.ts +3 -0
  15. package/src/cjs/CircleSector.js +28 -1
  16. package/src/cjs/CircleSector.js.map +1 -1
  17. package/src/cjs/PlotBoilerplate.d.ts +4 -3
  18. package/src/cjs/PlotBoilerplate.js +2 -1
  19. package/src/cjs/PlotBoilerplate.js.map +1 -1
  20. package/src/cjs/draw.d.ts +4 -2
  21. package/src/cjs/draw.js +9 -4
  22. package/src/cjs/draw.js.map +1 -1
  23. package/src/cjs/drawgl.d.ts +3 -2
  24. package/src/cjs/drawgl.js +2 -1
  25. package/src/cjs/drawgl.js.map +1 -1
  26. package/src/cjs/drawutilssvg.d.ts +10 -4
  27. package/src/cjs/drawutilssvg.js +28 -7
  28. package/src/cjs/drawutilssvg.js.map +1 -1
  29. package/src/cjs/interfaces/DrawLib.d.ts +2 -0
  30. package/src/cjs/interfaces/DrawLib.js +1 -0
  31. package/src/cjs/interfaces/DrawLib.js.map +1 -1
  32. package/src/cjs/utils/LissajousFigure.d.ts +34 -0
  33. package/src/cjs/utils/LissajousFigure.js +100 -0
  34. package/src/cjs/utils/LissajousFigure.js.map +1 -0
  35. package/src/cjs/utils/PerlinNoise.d.ts +19 -0
  36. package/src/cjs/utils/PerlinNoise.js +352 -0
  37. package/src/cjs/utils/PerlinNoise.js.map +1 -0
  38. package/src/cjs/utils/SVGPathUtils.d.ts +22 -0
  39. package/src/cjs/utils/SVGPathUtils.js +45 -0
  40. package/src/cjs/utils/SVGPathUtils.js.map +1 -0
  41. package/src/cjs/utils/WebColors.d.ts +2 -1
  42. package/src/cjs/utils/WebColors.js +14 -25
  43. package/src/cjs/utils/WebColors.js.map +1 -1
  44. package/src/cjs/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
  45. package/src/cjs/utils/algorithms/PolygonTesselationOutlines.js +269 -0
  46. package/src/cjs/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
  47. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  48. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.js +270 -0
  49. package/src/cjs/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  50. package/src/cjs/utils/datastructures/Color.js +0 -19
  51. package/src/cjs/utils/datastructures/Color.js.map +1 -1
  52. package/src/cjs/utils/datastructures/ColorGradient.d.ts +2 -0
  53. package/src/cjs/utils/datastructures/ColorGradient.js +5 -0
  54. package/src/cjs/utils/datastructures/ColorGradient.js.map +1 -1
  55. package/src/cjs/utils/datastructures/DataGrid2d.d.ts +6 -0
  56. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  57. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.js +155 -0
  58. package/src/cjs/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  59. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.d.ts +1 -7
  60. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js +3 -3
  61. package/src/cjs/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  62. package/src/cjs/utils/datastructures/GeometryMesh.d.ts +49 -0
  63. package/src/cjs/utils/datastructures/GeometryMesh.js +58 -0
  64. package/src/cjs/utils/datastructures/GeometryMesh.js.map +1 -0
  65. package/src/cjs/utils/datastructures/Girih.d.ts +38 -1
  66. package/src/cjs/utils/datastructures/Girih.js +71 -1
  67. package/src/cjs/utils/datastructures/Girih.js.map +1 -1
  68. package/src/cjs/utils/detectDarkMode.js +16 -7
  69. package/src/cjs/utils/detectDarkMode.js.map +1 -1
  70. package/src/cjs/utils/dom/components/ColorGradientPicker.d.ts +4 -3
  71. package/src/cjs/utils/dom/components/ColorGradientPicker.js +8 -8
  72. package/src/cjs/utils/dom/components/ColorGradientPicker.js.map +1 -1
  73. package/src/cjs/utils/dom/components/ColorGradientSelector.d.ts +1 -0
  74. package/src/cjs/utils/dom/components/ColorGradientSelector.js +4 -2
  75. package/src/cjs/utils/dom/components/ColorGradientSelector.js.map +1 -1
  76. package/src/cjs/utils/io/FileDrop.d.ts +2 -0
  77. package/src/cjs/utils/io/FileDrop.js +4 -0
  78. package/src/cjs/utils/io/FileDrop.js.map +1 -1
  79. package/src/cjs/utils/parsers/svg/types.d.ts +8 -8
  80. package/src/esm/Bounds.d.ts +79 -25
  81. package/src/esm/Bounds.js +102 -29
  82. package/src/esm/Bounds.js.map +1 -1
  83. package/src/esm/CircleSector.d.ts +3 -0
  84. package/src/esm/CircleSector.js +28 -1
  85. package/src/esm/CircleSector.js.map +1 -1
  86. package/src/esm/PlotBoilerplate.d.ts +4 -3
  87. package/src/esm/PlotBoilerplate.js +2 -1
  88. package/src/esm/PlotBoilerplate.js.map +1 -1
  89. package/src/esm/draw.d.ts +4 -2
  90. package/src/esm/draw.js +9 -4
  91. package/src/esm/draw.js.map +1 -1
  92. package/src/esm/drawgl.d.ts +3 -2
  93. package/src/esm/drawgl.js +2 -1
  94. package/src/esm/drawgl.js.map +1 -1
  95. package/src/esm/drawutilssvg.d.ts +10 -4
  96. package/src/esm/drawutilssvg.js +28 -7
  97. package/src/esm/drawutilssvg.js.map +1 -1
  98. package/src/esm/interfaces/DrawLib.d.ts +2 -0
  99. package/src/esm/interfaces/DrawLib.js +1 -0
  100. package/src/esm/interfaces/DrawLib.js.map +1 -1
  101. package/src/esm/utils/LissajousFigure.d.ts +34 -0
  102. package/src/esm/utils/LissajousFigure.js +95 -0
  103. package/src/esm/utils/LissajousFigure.js.map +1 -0
  104. package/src/esm/utils/PerlinNoise.d.ts +19 -0
  105. package/src/esm/utils/PerlinNoise.js +346 -0
  106. package/src/esm/utils/PerlinNoise.js.map +1 -0
  107. package/src/esm/utils/SVGPathUtils.d.ts +22 -0
  108. package/src/esm/utils/SVGPathUtils.js +42 -0
  109. package/src/esm/utils/SVGPathUtils.js.map +1 -0
  110. package/src/esm/utils/WebColors.d.ts +2 -1
  111. package/src/esm/utils/WebColors.js +14 -25
  112. package/src/esm/utils/WebColors.js.map +1 -1
  113. package/src/esm/utils/algorithms/PolygonTesselationOutlines.d.ts +145 -0
  114. package/src/esm/utils/algorithms/PolygonTesselationOutlines.js +262 -0
  115. package/src/esm/utils/algorithms/PolygonTesselationOutlines.js.map +1 -0
  116. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.d.ts +23 -0
  117. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.js +266 -0
  118. package/src/esm/utils/algorithms/pixelCornersToRoundPaths.js.map +1 -0
  119. package/src/esm/utils/datastructures/Color.js +0 -19
  120. package/src/esm/utils/datastructures/Color.js.map +1 -1
  121. package/src/esm/utils/datastructures/ColorGradient.d.ts +2 -0
  122. package/src/esm/utils/datastructures/ColorGradient.js +5 -0
  123. package/src/esm/utils/datastructures/ColorGradient.js.map +1 -1
  124. package/src/esm/utils/datastructures/DataGrid2d.d.ts +6 -0
  125. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.d.ts +88 -0
  126. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.js +150 -0
  127. package/src/esm/utils/datastructures/DataGrid2dArrayMatrix.js.map +1 -0
  128. package/src/esm/utils/datastructures/DataGrid2dListAdapter.d.ts +1 -7
  129. package/src/esm/utils/datastructures/DataGrid2dListAdapter.js +3 -3
  130. package/src/esm/utils/datastructures/DataGrid2dListAdapter.js.map +1 -1
  131. package/src/esm/utils/datastructures/GeometryMesh.d.ts +49 -0
  132. package/src/esm/utils/datastructures/GeometryMesh.js +53 -0
  133. package/src/esm/utils/datastructures/GeometryMesh.js.map +1 -0
  134. package/src/esm/utils/datastructures/Girih.d.ts +38 -1
  135. package/src/esm/utils/datastructures/Girih.js +71 -1
  136. package/src/esm/utils/datastructures/Girih.js.map +1 -1
  137. package/src/esm/utils/detectDarkMode.js +16 -7
  138. package/src/esm/utils/detectDarkMode.js.map +1 -1
  139. package/src/esm/utils/dom/components/ColorGradientPicker.d.ts +4 -3
  140. package/src/esm/utils/dom/components/ColorGradientPicker.js +18 -7
  141. package/src/esm/utils/dom/components/ColorGradientPicker.js.map +1 -1
  142. package/src/esm/utils/dom/components/ColorGradientSelector.d.ts +1 -0
  143. package/src/esm/utils/dom/components/ColorGradientSelector.js +9 -2
  144. package/src/esm/utils/dom/components/ColorGradientSelector.js.map +1 -1
  145. package/src/esm/utils/io/FileDrop.d.ts +2 -0
  146. package/src/esm/utils/io/FileDrop.js +4 -0
  147. package/src/esm/utils/io/FileDrop.js.map +1 -1
  148. package/src/esm/utils/parsers/svg/types.d.ts +8 -8
  149. package/src/ts/Bounds.ts +107 -22
  150. package/src/ts/CircleSector.ts +39 -6
  151. package/src/ts/PlotBoilerplate.ts +4 -3
  152. package/src/ts/draw.ts +8 -3
  153. package/src/ts/drawgl.ts +3 -2
  154. package/src/ts/drawutilssvg.ts +34 -7
  155. package/src/ts/interfaces/DrawLib.ts +3 -0
  156. package/src/ts/utils/LissajousFigure.ts +110 -0
  157. package/src/ts/utils/PerlinNoise.ts +368 -0
  158. package/src/ts/utils/SVGPathUtils.ts +55 -0
  159. package/src/ts/utils/WebColors.ts +20 -33
  160. package/src/ts/utils/algorithms/PolygonTesselationOutlines.ts +296 -0
  161. package/src/ts/utils/algorithms/pixelCornersToRoundPaths.ts +379 -0
  162. package/src/ts/utils/datastructures/Color.ts +0 -19
  163. package/src/ts/utils/datastructures/ColorGradient.ts +6 -0
  164. package/src/ts/utils/datastructures/DataGrid2d.ts +7 -0
  165. package/src/ts/utils/datastructures/DataGrid2dArrayMatrix.ts +182 -0
  166. package/src/ts/utils/datastructures/DataGrid2dListAdapter.ts +4 -11
  167. package/src/ts/utils/datastructures/GeometryMesh.ts +79 -0
  168. package/src/ts/utils/datastructures/Girih.ts +78 -1
  169. package/src/ts/utils/datastructures/interfaces.ts +4 -4
  170. package/src/ts/utils/detectDarkMode.ts +17 -8
  171. package/src/ts/utils/dom/components/ColorGradientPicker.tsx +18 -6
  172. package/src/ts/utils/dom/components/ColorGradientSelector.tsx +9 -2
  173. package/src/ts/utils/io/FileDrop.ts +5 -0
  174. package/src/ts/utils/parsers/svg/types.ts +8 -8
@@ -0,0 +1,88 @@
1
+ /**
2
+ * A DataGrid2d implementation on 2 dimensional arrays.
3
+ *
4
+ * @author Ikaros Kappler
5
+ * @date 2025-10-16
6
+ * @modified 2025-10-28 Added `DataGrid2dArrayMatrix.setAll(function)`.
7
+ * @modified 2025-10-28 Fixed a bug in the `DataGrid2dArrayMatrix.toString()` method.
8
+ * @version 1.0.0
9
+ **/
10
+ import { DataGridFace4, IDataGrid2d, RasterPosition } from "./DataGrid2d";
11
+ export declare class DataGrid2dArrayMatrix<T> implements IDataGrid2d<T> {
12
+ /**
13
+ * @override
14
+ */
15
+ readonly xSegmentCount: number;
16
+ /**
17
+ * @override
18
+ */
19
+ readonly ySegmentCount: number;
20
+ minDataValue: T;
21
+ maxDataValue: T;
22
+ private _matrix;
23
+ /**
24
+ * Create a new DataGrid2d from the given
25
+ * @throws Error if xSegmentCount*ySegmentCount is larger than the capacity of the array/list.
26
+ * @param list
27
+ * @param xSegmentCount
28
+ * @param ySegmentCount
29
+ */
30
+ constructor(xSegmentCount: number, ySegmentCount: number, initialValue: T);
31
+ /**
32
+ * Set the matrix value at the given (x,y) position to a new value.
33
+ *
34
+ * @param {number} xIndex - The horizontal matrix position to set.
35
+ * @param {number} yIndex - The vertical matrix position to set.
36
+ * @param {T} value - The new value.
37
+ */
38
+ set(xIndex: number, yIndex: number, value: T): void;
39
+ /**
40
+ * Getthe matrix value at the given (x,y) position.
41
+ *
42
+ * @param {number} xIndex - The horizontal matrix position to set.
43
+ * @param {number} yIndex - The vertical matrix position to set.
44
+ * @return {T} value - The new value.
45
+ */
46
+ get(xIndex: number, yIndex: number): T;
47
+ /**
48
+ * Set all matrix values. The passed factory function must accept respective (x,y) positions.
49
+ *
50
+ * @param {Function} factory - The factory function to determine the new values to set.
51
+ * @return {DataGrid2dArrayMatrix<T>} this - for chaning.
52
+ */
53
+ setAll(factory: (xIndex: number, yIndex: number) => T): DataGrid2dArrayMatrix<T>;
54
+ find(condition: (value: T, xIndex: number, yIndex: number, sourceMatrix: DataGrid2dArrayMatrix<T>) => boolean): RasterPosition;
55
+ /**
56
+ * @override
57
+ */
58
+ getMinDataValue(): T;
59
+ /**
60
+ * @override
61
+ */
62
+ getMaxDataValue(): T;
63
+ /**
64
+ * @override
65
+ */
66
+ getDataValueAt(xIndex: number, yIndex: number, isDebug?: boolean): T | null;
67
+ /**
68
+ * @override
69
+ */
70
+ getDataFace4At(xIndex: number, yIndex: number, buffer: DataGridFace4<T>): void;
71
+ /**
72
+ * A helper method to convert a boolean matrix to a parsable string.
73
+ *
74
+ * @param {DataGrid2dArrayMatrix<boolean>} matrix
75
+ * @returns {string}
76
+ */
77
+ static toString(matrix: DataGrid2dArrayMatrix<boolean>): string;
78
+ /**
79
+ * Simple way to parse a data matrix from a string. `false` should be coded as '.' character,
80
+ * `true` must be coded as 'X' character.
81
+ *
82
+ * @param {string} str - The input string.
83
+ * @param {number} width - The desired width of the matrix (xSegmentCount).
84
+ * @param {number} height - The desired height of the matrix (ySegmentCount).
85
+ * @returns {DataGrid2dArrayMatrix<boolean>}
86
+ */
87
+ static parseBooleanMatrix(str: string, width: number, height: number): DataGrid2dArrayMatrix<boolean>;
88
+ }
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /**
3
+ * A DataGrid2d implementation on 2 dimensional arrays.
4
+ *
5
+ * @author Ikaros Kappler
6
+ * @date 2025-10-16
7
+ * @modified 2025-10-28 Added `DataGrid2dArrayMatrix.setAll(function)`.
8
+ * @modified 2025-10-28 Fixed a bug in the `DataGrid2dArrayMatrix.toString()` method.
9
+ * @version 1.0.0
10
+ **/
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DataGrid2dArrayMatrix = void 0;
13
+ var arrayFill_1 = require("../algorithms/arrayFill");
14
+ var DataGrid2dArrayMatrix = /** @class */ (function () {
15
+ /**
16
+ * Create a new DataGrid2d from the given
17
+ * @throws Error if xSegmentCount*ySegmentCount is larger than the capacity of the array/list.
18
+ * @param list
19
+ * @param xSegmentCount
20
+ * @param ySegmentCount
21
+ */
22
+ function DataGrid2dArrayMatrix(xSegmentCount, ySegmentCount, initialValue) {
23
+ if (xSegmentCount <= 0) {
24
+ throw "Cannot create DataGrid2dArray, xSegmentCount (".concat(xSegmentCount, ") must be > 0.");
25
+ }
26
+ if (ySegmentCount <= 0) {
27
+ throw "Cannot create DataGrid2dArray, ySegmentCount (".concat(ySegmentCount, ") must be > 0.");
28
+ }
29
+ // this.canvas = document.getElementById(canvasId);
30
+ this.xSegmentCount = xSegmentCount;
31
+ this.ySegmentCount = ySegmentCount;
32
+ this._matrix = [];
33
+ for (var i = 0; i < ySegmentCount; i++) {
34
+ this._matrix.push((0, arrayFill_1.arrayFill)(xSegmentCount, initialValue));
35
+ }
36
+ }
37
+ /**
38
+ * Set the matrix value at the given (x,y) position to a new value.
39
+ *
40
+ * @param {number} xIndex - The horizontal matrix position to set.
41
+ * @param {number} yIndex - The vertical matrix position to set.
42
+ * @param {T} value - The new value.
43
+ */
44
+ DataGrid2dArrayMatrix.prototype.set = function (xIndex, yIndex, value) {
45
+ this._matrix[yIndex][xIndex] = value;
46
+ };
47
+ /**
48
+ * Getthe matrix value at the given (x,y) position.
49
+ *
50
+ * @param {number} xIndex - The horizontal matrix position to set.
51
+ * @param {number} yIndex - The vertical matrix position to set.
52
+ * @return {T} value - The new value.
53
+ */
54
+ DataGrid2dArrayMatrix.prototype.get = function (xIndex, yIndex) {
55
+ return this.getDataValueAt(xIndex, yIndex);
56
+ };
57
+ /**
58
+ * Set all matrix values. The passed factory function must accept respective (x,y) positions.
59
+ *
60
+ * @param {Function} factory - The factory function to determine the new values to set.
61
+ * @return {DataGrid2dArrayMatrix<T>} this - for chaning.
62
+ */
63
+ DataGrid2dArrayMatrix.prototype.setAll = function (factory) {
64
+ for (var x = 0; x < this.xSegmentCount; x++) {
65
+ for (var y = 0; y < this.ySegmentCount; y++) {
66
+ this.set(x, y, factory(x, y));
67
+ }
68
+ }
69
+ return this;
70
+ };
71
+ DataGrid2dArrayMatrix.prototype.find = function (condition) {
72
+ for (var x = 0; x < this.xSegmentCount; x++) {
73
+ for (var y = 0; y < this.ySegmentCount; y++) {
74
+ if (condition(this.get(x, y), x, y, this)) {
75
+ return {
76
+ xIndex: x,
77
+ yIndex: y,
78
+ xRel: x / this.xSegmentCount,
79
+ yRel: y / this.ySegmentCount
80
+ };
81
+ }
82
+ }
83
+ }
84
+ return null;
85
+ };
86
+ /**
87
+ * @override
88
+ */
89
+ DataGrid2dArrayMatrix.prototype.getMinDataValue = function () {
90
+ return this.minDataValue;
91
+ };
92
+ /**
93
+ * @override
94
+ */
95
+ DataGrid2dArrayMatrix.prototype.getMaxDataValue = function () {
96
+ return this.maxDataValue;
97
+ };
98
+ /**
99
+ * @override
100
+ */
101
+ DataGrid2dArrayMatrix.prototype.getDataValueAt = function (xIndex, yIndex, isDebug) {
102
+ return this._matrix[yIndex][xIndex];
103
+ };
104
+ /**
105
+ * @override
106
+ */
107
+ DataGrid2dArrayMatrix.prototype.getDataFace4At = function (xIndex, yIndex, buffer) {
108
+ // buffer: array[2][2]
109
+ buffer[0][0] = this.getDataValueAt(xIndex, yIndex);
110
+ buffer[1][0] = this.getDataValueAt(xIndex + 1, yIndex);
111
+ buffer[1][1] = this.getDataValueAt(xIndex + 1, yIndex + 1);
112
+ buffer[0][1] = this.getDataValueAt(xIndex, yIndex + 1);
113
+ };
114
+ /**
115
+ * A helper method to convert a boolean matrix to a parsable string.
116
+ *
117
+ * @param {DataGrid2dArrayMatrix<boolean>} matrix
118
+ * @returns {string}
119
+ */
120
+ DataGrid2dArrayMatrix.toString = function (matrix) {
121
+ var buffer = [];
122
+ for (var y = 0; y < matrix.ySegmentCount; y++) {
123
+ for (var x = 0; x < matrix.xSegmentCount; x++) {
124
+ buffer.push(matrix.get(x, y) ? "X" : ".");
125
+ }
126
+ buffer.push("\n");
127
+ }
128
+ return buffer.join("");
129
+ };
130
+ /**
131
+ * Simple way to parse a data matrix from a string. `false` should be coded as '.' character,
132
+ * `true` must be coded as 'X' character.
133
+ *
134
+ * @param {string} str - The input string.
135
+ * @param {number} width - The desired width of the matrix (xSegmentCount).
136
+ * @param {number} height - The desired height of the matrix (ySegmentCount).
137
+ * @returns {DataGrid2dArrayMatrix<boolean>}
138
+ */
139
+ DataGrid2dArrayMatrix.parseBooleanMatrix = function (str, width, height) {
140
+ var matrix = new DataGrid2dArrayMatrix(width, height, false);
141
+ var lines = str.trim().split("\n");
142
+ for (var y = 0; y < lines.length && y < height; y++) {
143
+ lines[y] = lines[y].trim();
144
+ for (var x = 0; x < lines[y].length && x < width; x++) {
145
+ if (y < height && x < width && lines[y].charAt(x) === "X") {
146
+ matrix.set(x, y, true);
147
+ }
148
+ }
149
+ }
150
+ return matrix;
151
+ };
152
+ return DataGrid2dArrayMatrix;
153
+ }());
154
+ exports.DataGrid2dArrayMatrix = DataGrid2dArrayMatrix;
155
+ //# sourceMappingURL=DataGrid2dArrayMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataGrid2dArrayMatrix.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/DataGrid2dArrayMatrix.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,12 @@
6
6
  * @modified 2023-11-04 Converted to a Typescript class.
7
7
  * @version 1.0.0
8
8
  **/
9
- import { DataGridFace4, IDataGrid2d } from "./DataGrid2d";
9
+ import { DataGridFace4, IDataGrid2d, RasterPosition } from "./DataGrid2d";
10
10
  type Triplet<T> = {
11
11
  x: T;
12
12
  y: T;
13
13
  z: T;
14
14
  };
15
- type RasterPosition = {
16
- xIndex: number;
17
- yIndex: number;
18
- xRel?: number;
19
- yRel?: number;
20
- };
21
15
  export declare class DataGrid2dListAdapter<T> implements IDataGrid2d<T> {
22
16
  /**
23
17
  * @override
@@ -57,9 +57,9 @@ var DataGrid2dListAdapter = /** @class */ (function () {
57
57
  DataGrid2dListAdapter.prototype.getDataValueAt = function (xIndex, yIndex, isDebug) {
58
58
  // var bufferIndex = yIndex * this.xSegmentCount + xIndex;
59
59
  var bufferIndex = this.coordinateIndicesToBufferIndex(xIndex, yIndex);
60
- if (isDebug) {
61
- console.log("xIndex", xIndex, "yIndex", yIndex, "bufferIndex", bufferIndex);
62
- }
60
+ // if (isDebug) {
61
+ // console.log("xIndex", xIndex, "yIndex", yIndex, "bufferIndex", bufferIndex);
62
+ // }
63
63
  if (bufferIndex > this._dataList.length) {
64
64
  console.error("ERR buffer index is out of bounds! xIndex", xIndex, "yIndex", yIndex, "bufferIndex", bufferIndex);
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid2dListAdapter.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/DataGrid2dListAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataGrid2dListAdapter.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/DataGrid2dListAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Adapted from the 3D geometry datastuctured from demo-33 (depth mesh).
3
+ *
4
+ * Refactored the strucure into a class.
5
+ *
6
+ * @author Ikaros Kappler
7
+ * @date 2025-11-14
8
+ * @modified 2025-11-17 Moved `getBounds` and `normalizeGeometry` from helper functions to this class.
9
+ * @version 1.0.0
10
+ */
11
+ export type Vertex2 = {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ export type Vertex3 = {
16
+ x: number;
17
+ y: number;
18
+ z: number;
19
+ };
20
+ export declare class GeometryMesh<T extends Vertex2 | Vertex3> {
21
+ /**
22
+ * A set (array) of vertices (points) used in this mesh. Can be 2d or 3d.
23
+ *
24
+ * @member {Array<T>}
25
+ * @memberof GeometryMesh
26
+ * @type {Array<T>}
27
+ * @instance
28
+ */
29
+ vertices: Array<T>;
30
+ /**
31
+ * A set (array) of edges used in this mesh.
32
+ * Each edge consist of two indices indicating the vertex position.
33
+ *
34
+ * @member {Array<T>}
35
+ * @memberof GeometryMesh
36
+ * @type {Array<T>}
37
+ * @instance
38
+ */
39
+ edges: Array<[number, number]>;
40
+ constructor(vertices?: Array<T>, edges?: Array<[number, number]>);
41
+ normalize(): void;
42
+ getGeometryBounds(): {
43
+ min: Vertex3;
44
+ max: Vertex3;
45
+ width: number;
46
+ height: number;
47
+ depth: number;
48
+ };
49
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Adapted from the 3D geometry datastuctured from demo-33 (depth mesh).
4
+ *
5
+ * Refactored the strucure into a class.
6
+ *
7
+ * @author Ikaros Kappler
8
+ * @date 2025-11-14
9
+ * @modified 2025-11-17 Moved `getBounds` and `normalizeGeometry` from helper functions to this class.
10
+ * @version 1.0.0
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.GeometryMesh = void 0;
14
+ var GeometryMesh = /** @class */ (function () {
15
+ function GeometryMesh(vertices, edges) {
16
+ this.vertices = vertices || [];
17
+ this.edges = edges || [];
18
+ }
19
+ GeometryMesh.prototype.normalize = function () {
20
+ // Desired bounds is a max bounding box. The object will be scaled keeping aspect ratio
21
+ // in that way that the largest axis size touches the desired bounds.
22
+ var desiredBounds = { min: { x: -1, y: -1, z: -1 }, max: { x: 1, y: 1, z: 1 } };
23
+ var bounds = this.getGeometryBounds();
24
+ var sizeX = bounds.max.x - bounds.min.x;
25
+ var sizeY = bounds.max.y - bounds.min.y;
26
+ var sizeZ = bounds.max.z - bounds.min.z;
27
+ // Scale uniform so the dimension with the max expansion fits into [-1,1]
28
+ var maxDimension = Math.max(sizeX, sizeY, sizeZ);
29
+ var desiredSizeX = (desiredBounds.max.x - desiredBounds.min.x) / maxDimension;
30
+ var desiredSizeY = (desiredBounds.max.y - desiredBounds.min.y) / maxDimension;
31
+ var desiredSizeZ = (desiredBounds.max.z - desiredBounds.min.z) / maxDimension;
32
+ for (var i in this.vertices) {
33
+ var vert = this.vertices[i]; // TODO: Check if this is safe
34
+ vert.x = desiredBounds.min.x + (bounds.max.x - vert.x) * desiredSizeX;
35
+ vert.y = desiredBounds.min.y + (bounds.max.y - vert.y) * desiredSizeY;
36
+ vert.z = desiredBounds.min.z + (bounds.max.z - vert.z) * desiredSizeZ;
37
+ }
38
+ };
39
+ GeometryMesh.prototype.getGeometryBounds = function () {
40
+ // var min = new Vert3(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
41
+ // var max = new Vert3(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE);
42
+ var min = { x: Number.MAX_VALUE, y: Number.MAX_VALUE, z: Number.MAX_VALUE };
43
+ var max = { x: Number.MIN_VALUE, y: Number.MIN_VALUE, z: Number.MIN_VALUE };
44
+ for (var i in this.vertices) {
45
+ var vert = this.vertices[i];
46
+ min.x = Math.min(vert.x, min.x);
47
+ min.y = Math.min(vert.y, min.y);
48
+ min.z = Math.min(vert.z, min.z);
49
+ max.x = Math.max(vert.x, max.x);
50
+ max.y = Math.max(vert.y, max.y);
51
+ max.z = Math.max(vert.z, max.z);
52
+ }
53
+ return { min: min, max: max, width: max.x - min.x, height: max.y - min.y, depth: max.z - min.z };
54
+ };
55
+ return GeometryMesh;
56
+ }());
57
+ exports.GeometryMesh = GeometryMesh;
58
+ //# sourceMappingURL=GeometryMesh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeometryMesh.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GeometryMesh.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,15 @@
3
3
  * @date 2020-11-24
4
4
  * @modified 2020-11-25 Ported to TypeScript from vanilla JS.
5
5
  * @modified 2024-03-10 Fixed some types for Typescript 5 compatibility.
6
- * @version 1.0.2
6
+ * @modified 2026-01-06 Added method `Girih.locateContainingTileAndEdge` to locate tile/edge pairs.
7
+ * @modified 2026-01-12 Added method `Girih.getTileByCenter` to locate tiles by position.
8
+ * @modified 2026-01-18 Added method `Girih.removeAllTiles`.
9
+ * @version 1.1.0
7
10
  * @file Girih
8
11
  **/
9
12
  import { Vertex } from "../../Vertex";
10
13
  import { GirihTile } from "./GirihTile";
14
+ import { XYCoords } from "../../interfaces";
11
15
  /**
12
16
  * @classdesc The Girih datastructure for generating patterns.
13
17
  *
@@ -88,10 +92,30 @@ export declare class Girih {
88
92
  */
89
93
  removeTileAt(index: number): void;
90
94
  /**
95
+ * Remove all tiles.
96
+ *
97
+ * @name removeAllTiles
98
+ * @memberof Girih
99
+ * @instance
100
+ * @return {void}
101
+ */
102
+ removeAllTiles(): void;
103
+ /**
104
+ * Replace all current tiles with the given ones.
91
105
  *
92
106
  * @param tiles
93
107
  */
94
108
  replaceTiles(tiles: GirihTile[]): void;
109
+ /**
110
+ * Find the tile with the given center.
111
+ *
112
+ * @name getTileByCenter
113
+ * @memberof Girih
114
+ * @instance
115
+ * @param {XYCoords} center - The center point to look for.
116
+ * @return {GirihTile} The tile or null if not found.
117
+ */
118
+ getTileByCenter(center: XYCoords): GirihTile;
95
119
  /**
96
120
  * Find that tile (index) which contains the given position. First match will be returned.
97
121
  *
@@ -102,6 +126,19 @@ export declare class Girih {
102
126
  * @return {number} The index of the containing tile or -1 if none was found.
103
127
  **/
104
128
  locateConatiningTile(position: Vertex): number;
129
+ /**
130
+ * Find find a tile-edge-pair (indices) that contain the given position. First match will be returned.
131
+ *
132
+ * @name locateContainingTileAndEdge
133
+ * @memberof Girih
134
+ * @instance
135
+ * @param {Vertex} position
136
+ * @return {{ tileIndex: number; edgeIndex: number }} The index of the containing tile and edge or null if none was found.
137
+ **/
138
+ locateContainingTileAndEdge(position: any): {
139
+ tileIndex: number;
140
+ edgeIndex: number;
141
+ };
105
142
  /**
106
143
  * Turn the tile the mouse is hovering over.
107
144
  * The turnCount is ab abstract number: -1 for one turn left, +1 for one turn right.
@@ -4,7 +4,10 @@
4
4
  * @date 2020-11-24
5
5
  * @modified 2020-11-25 Ported to TypeScript from vanilla JS.
6
6
  * @modified 2024-03-10 Fixed some types for Typescript 5 compatibility.
7
- * @version 1.0.2
7
+ * @modified 2026-01-06 Added method `Girih.locateContainingTileAndEdge` to locate tile/edge pairs.
8
+ * @modified 2026-01-12 Added method `Girih.getTileByCenter` to locate tiles by position.
9
+ * @modified 2026-01-18 Added method `Girih.removeAllTiles`.
10
+ * @version 1.1.0
8
11
  * @file Girih
9
12
  **/
10
13
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -97,6 +100,18 @@ var Girih = /** @class */ (function () {
97
100
  this.tiles.splice(index, 1);
98
101
  };
99
102
  /**
103
+ * Remove all tiles.
104
+ *
105
+ * @name removeAllTiles
106
+ * @memberof Girih
107
+ * @instance
108
+ * @return {void}
109
+ */
110
+ Girih.prototype.removeAllTiles = function () {
111
+ this.tiles.splice(0, this.tiles.length);
112
+ };
113
+ /**
114
+ * Replace all current tiles with the given ones.
100
115
  *
101
116
  * @param tiles
102
117
  */
@@ -106,6 +121,24 @@ var Girih = /** @class */ (function () {
106
121
  this.addTile(tiles[i]);
107
122
  }
108
123
  };
124
+ /**
125
+ * Find the tile with the given center.
126
+ *
127
+ * @name getTileByCenter
128
+ * @memberof Girih
129
+ * @instance
130
+ * @param {XYCoords} center - The center point to look for.
131
+ * @return {GirihTile} The tile or null if not found.
132
+ */
133
+ Girih.prototype.getTileByCenter = function (center) {
134
+ for (var i = 0; i < this.tiles.length; i++) {
135
+ var pos = this.tiles[i].position;
136
+ if (pos === center || (pos.x == center.x && pos.y == center.y)) {
137
+ return this.tiles[i];
138
+ }
139
+ }
140
+ return null;
141
+ };
109
142
  /**
110
143
  * Find that tile (index) which contains the given position. First match will be returned.
111
144
  *
@@ -122,6 +155,43 @@ var Girih = /** @class */ (function () {
122
155
  }
123
156
  return -1;
124
157
  };
158
+ /**
159
+ * Find find a tile-edge-pair (indices) that contain the given position. First match will be returned.
160
+ *
161
+ * @name locateContainingTileAndEdge
162
+ * @memberof Girih
163
+ * @instance
164
+ * @param {Vertex} position
165
+ * @return {{ tileIndex: number; edgeIndex: number }} The index of the containing tile and edge or null if none was found.
166
+ **/
167
+ Girih.prototype.locateContainingTileAndEdge = function (position) {
168
+ var containedTileIndex = this.locateConatiningTile(position);
169
+ // Reset currently highlighted tile/edge (if re-detected nothing changed in the end)
170
+ var hoverTileIndex = -1;
171
+ var hoverEdgeIndex = -1;
172
+ // Find Girih edge nearby ...
173
+ if (containedTileIndex == -1) {
174
+ return null;
175
+ }
176
+ var i = containedTileIndex;
177
+ do {
178
+ var tile = this.tiles[i];
179
+ // May be -1
180
+ hoverEdgeIndex = tile.locateEdgeAtPoint(position, this.edgeLength / 2);
181
+ if (hoverEdgeIndex != -1) {
182
+ hoverTileIndex = i;
183
+ }
184
+ i++;
185
+ } while (i < this.tiles.length && containedTileIndex == -1 && hoverEdgeIndex == -1);
186
+ if (hoverTileIndex == -1) {
187
+ hoverTileIndex = containedTileIndex;
188
+ }
189
+ // Find the next possible tile to place?
190
+ if (hoverTileIndex == -1 || hoverEdgeIndex == -1) {
191
+ return null;
192
+ }
193
+ return { tileIndex: hoverTileIndex, edgeIndex: hoverEdgeIndex };
194
+ };
125
195
  /**
126
196
  * Turn the tile the mouse is hovering over.
127
197
  * The turnCount is ab abstract number: -1 for one turn left, +1 for one turn right.
@@ -1 +1 @@
1
- {"version":3,"file":"Girih.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Girih.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Girih.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Girih.ts"],"names":[],"mappings":"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"}
@@ -11,22 +11,31 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.detectDarkMode = void 0;
13
13
  var detectDarkMode = function (GUP) {
14
+ var isDarkmode = false;
14
15
  // Respect overrides
15
16
  if (typeof GUP !== "undefined" && GUP.hasOwnProperty("darkmode") && GUP["darkmode"]) {
16
17
  // const overrideValue = PlotBoilerplate.utils.fetch.bool(GUP, "darkmode", null);
17
18
  var overrideValue = !!JSON.parse(GUP["darkmode"]);
18
19
  if (overrideValue !== null) {
19
- return overrideValue;
20
+ isDarkmode = overrideValue;
20
21
  }
21
22
  }
22
- if (globalThis.matchMedia && globalThis.matchMedia("(prefers-color-scheme: dark)").matches) {
23
+ else if (globalThis.matchMedia && globalThis.matchMedia("(prefers-color-scheme: dark)").matches) {
23
24
  // dark mode by system
24
- return true;
25
+ isDarkmode = true;
25
26
  }
26
- // else: dark mode by daytime
27
- var hours = new Date().getHours();
28
- var isDayTime = hours > 6 && hours < 18;
29
- return !isDayTime;
27
+ else {
28
+ // else: dark mode by daytime
29
+ var hours = new Date().getHours();
30
+ var isDayTime = hours > 6 && hours < 18;
31
+ isDarkmode = !isDayTime;
32
+ }
33
+ // console.log("Adding darkmode to <body>", isDarkmode);
34
+ if (isDarkmode && document.body) {
35
+ // Add darkmode class to <body> tag
36
+ document.body.classList.add("darkmode");
37
+ }
38
+ return isDarkmode;
30
39
  };
31
40
  exports.detectDarkMode = detectDarkMode;
32
41
  //# sourceMappingURL=detectDarkMode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectDarkMode.js","sourceRoot":"","sources":["../../ts/utils/detectDarkMode.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEI,IAAM,cAAc,GAAG,UAAC,GAA4B;IACzD,oBAAoB;IACpB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,iFAAiF;QACjF,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,sBAAsB;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,6BAA6B;IAC7B,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;IAC1C,OAAO,CAAC,SAAS,CAAC;AACpB,CAAC,CAAC;AAjBW,QAAA,cAAc,kBAiBzB"}
1
+ {"version":3,"file":"detectDarkMode.js","sourceRoot":"","sources":["../../ts/utils/detectDarkMode.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEI,IAAM,cAAc,GAAG,UAAC,GAA4B;IACzD,IAAI,UAAU,GAAY,KAAK,CAAC;IAChC,oBAAoB;IACpB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,iFAAiF;QACjF,IAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,UAAU,GAAG,aAAa,CAAC;QAC7B,CAAC;IACH,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC;QAClG,sBAAsB;QACtB,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,IAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAM,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,UAAU,GAAG,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,wDAAwD;IACxD,IAAI,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChC,mCAAmC;QACnC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AA1BW,QAAA,cAAc,kBA0BzB"}