@woosh/meep-engine 2.120.2 → 2.120.3

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 (66) hide show
  1. package/README.md +1 -1
  2. package/editor/process/symbolic/makeGridPositionSymbolDisplay.js +2 -1
  3. package/editor/view/ecs/EntityEditor.js +2 -1
  4. package/editor/view/makeEntityDecorators.js +5 -5
  5. package/package.json +1 -1
  6. package/src/core/binary/BitSet.d.ts +59 -38
  7. package/src/core/binary/BitSet.d.ts.map +1 -1
  8. package/src/core/binary/BitSet.js +76 -55
  9. package/src/core/function/noop.d.ts +4 -1
  10. package/src/core/function/noop.d.ts.map +1 -1
  11. package/src/core/function/noop.js +4 -1
  12. package/src/core/geom/Vector4.d.ts.map +1 -1
  13. package/src/core/geom/Vector4.js +27 -5
  14. package/src/core/math/gaussian.d.ts +5 -4
  15. package/src/core/math/gaussian.d.ts.map +1 -1
  16. package/src/core/math/gaussian.js +5 -4
  17. package/src/core/math/matrix/SquareMatrix.d.ts +55 -32
  18. package/src/core/math/matrix/SquareMatrix.d.ts.map +1 -1
  19. package/src/core/math/matrix/SquareMatrix.js +59 -33
  20. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts +6 -5
  21. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts.map +1 -1
  22. package/src/core/math/spline/spline_hermite3_to_bezier.js +15 -11
  23. package/src/core/model/ModuleRegistry.d.ts.map +1 -1
  24. package/src/core/model/ModuleRegistry.js +2 -2
  25. package/src/engine/EngineConfiguration.js +1 -1
  26. package/src/engine/ecs/Entity.d.ts.map +1 -1
  27. package/src/engine/ecs/Entity.js +42 -2
  28. package/src/engine/ecs/EntityBuilderUtils.js +1 -1
  29. package/src/engine/ecs/EntityComponentDataset.d.ts +1 -1
  30. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  31. package/src/engine/ecs/EntityComponentDataset.js +25 -4
  32. package/src/engine/ecs/EntityManager.d.ts.map +1 -1
  33. package/src/engine/ecs/EntityManager.js +6 -12
  34. package/src/engine/ecs/EntityReference.d.ts +14 -0
  35. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  36. package/src/engine/ecs/EntityReference.js +18 -0
  37. package/src/engine/ecs/EventType.d.ts +10 -0
  38. package/src/engine/ecs/EventType.d.ts.map +1 -0
  39. package/src/engine/ecs/EventType.js +10 -0
  40. package/src/engine/ecs/System.d.ts.map +1 -1
  41. package/src/engine/ecs/System.js +1 -12
  42. package/src/engine/ecs/computeSystemName.d.ts +8 -0
  43. package/src/engine/ecs/computeSystemName.d.ts.map +1 -0
  44. package/src/engine/ecs/computeSystemName.js +10 -0
  45. package/src/engine/ecs/parent/ParentEntitySystem.js +1 -1
  46. package/src/engine/ecs/terrain/TerrainClouds.d.ts +43 -10
  47. package/src/engine/ecs/terrain/TerrainClouds.d.ts.map +1 -1
  48. package/src/engine/ecs/terrain/TerrainClouds.js +38 -2
  49. package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
  50. package/src/engine/ecs/terrain/ecs/Terrain.js +6 -0
  51. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.d.ts.map +1 -1
  52. package/src/engine/ecs/terrain/ecs/makeTerrainWorkerProxy.js +3 -1
  53. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.d.ts.map +1 -1
  54. package/src/engine/graphics/ecs/path/ribbon/RibbonPathBuilder.js +7 -7
  55. package/src/engine/input/devices/InputDeviceSwitch.d.ts +4 -0
  56. package/src/engine/input/devices/InputDeviceSwitch.d.ts.map +1 -1
  57. package/src/engine/input/devices/InputDeviceSwitch.js +4 -2
  58. package/src/engine/input/devices/KeyCodes.d.ts.map +1 -1
  59. package/src/engine/input/devices/KeyCodes.js +1 -0
  60. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  61. package/src/engine/input/devices/KeyboardDevice.js +28 -3
  62. package/src/engine/knowledge/database/StaticKnowledgeDataTable.d.ts.map +1 -1
  63. package/src/engine/knowledge/database/StaticKnowledgeDataTable.js +3 -0
  64. package/src/engine/ui/notification/NotificationManager.d.ts.map +1 -1
  65. package/src/engine/ui/notification/NotificationManager.js +2 -1
  66. package/src/engine/ecs/transform/Transform.editor.schema.json +0 -16
@@ -1,8 +1,9 @@
1
1
  /**
2
- *
3
- * @param {number} sigma distance from mean
4
- * @param {number} v Variance
5
- * @returns {number}
2
+ * This is not the standard gaussian.
3
+ * It lacks the normalization factor, standard gaussian would be weighted by `1 / √(2π * variance)`
4
+ * @param {number} sigma Standard deviation. Distance from mean. Represents the "width" of the Gaussian-like curve. Note: The parameter is named `sigma`, but its placement in the formula means it scales inversely to the usual effect of sigma.
5
+ * @param {number} v Variance. Represents the "height" or "amplitude" of the curve, but at a distance from the mean. Larger variance values result in larger function values further away from the mean (0).
6
+ * @returns {number} Ranges from 0 to 1 (exclusive of 0)
6
7
  */
7
8
  export function gaussian(sigma: number, v: number): number;
8
9
  //# sourceMappingURL=gaussian.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gaussian.d.ts","sourceRoot":"","sources":["../../../../src/core/math/gaussian.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAOlB"}
1
+ {"version":3,"file":"gaussian.d.ts","sourceRoot":"","sources":["../../../../src/core/math/gaussian.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAOlB"}
@@ -1,8 +1,9 @@
1
1
  /**
2
- *
3
- * @param {number} sigma distance from mean
4
- * @param {number} v Variance
5
- * @returns {number}
2
+ * This is not the standard gaussian.
3
+ * It lacks the normalization factor, standard gaussian would be weighted by `1 / √(2π * variance)`
4
+ * @param {number} sigma Standard deviation. Distance from mean. Represents the "width" of the Gaussian-like curve. Note: The parameter is named `sigma`, but its placement in the formula means it scales inversely to the usual effect of sigma.
5
+ * @param {number} v Variance. Represents the "height" or "amplitude" of the curve, but at a distance from the mean. Larger variance values result in larger function values further away from the mean (0).
6
+ * @returns {number} Ranges from 0 to 1 (exclusive of 0)
6
7
  */
7
8
  export function gaussian(sigma, v) {
8
9
  const v2 = v * v;
@@ -1,93 +1,116 @@
1
+ /**
2
+ * Represents a square matrix (number of rows equals number of columns).
3
+ * Data is stored in a typed array.
4
+ */
1
5
  export class SquareMatrix {
2
6
  /**
3
- *
4
- * @param {number} size
5
- * @param {BinaryDataType|string} type
7
+ * @param {number} size Side length of the matrix (e.g. '3' for a 3x3 matrix).
8
+ * @param {BinaryDataType|string} type Data type of the elements. Must be a valid BinaryDataType (e.g., "uint8", "float32").
9
+ * @throws {Error} If the provided type is not supported.
6
10
  */
7
11
  constructor(size: number, type: BinaryDataType | string);
8
12
  /**
9
- *
13
+ * Side length of the matrix.
10
14
  * @type {number}
11
15
  */
12
16
  size: number;
13
17
  /**
14
- *
18
+ * Data type of matrix elements.
15
19
  * @type {BinaryDataType}
16
20
  */
17
21
  type: BinaryDataType;
18
22
  /**
23
+ * Matrix data, stored as a typed array. Column-major order.
19
24
  * @type {number[]}
20
25
  */
21
26
  data: number[];
27
+ /**
28
+ * @returns {number} Side length of the matrix.
29
+ */
22
30
  get n(): number;
31
+ /**
32
+ * @returns {number} Total number of elements in the matrix (size * size).
33
+ */
23
34
  get length(): number;
35
+ /**
36
+ * Returns direct reference to underlying data, modifying it WILL affect the matrix.
37
+ * @returns {number[]}
38
+ */
24
39
  get val(): number[];
25
- fill(v: any): void;
26
40
  /**
27
- *
28
- * @param {SquareMatrix} other
41
+ * Fills the entire matrix with the given value.
42
+ * @param {number} v Value to fill the matrix with.
43
+ * @returns {void}
44
+ */
45
+ fill(v: number): void;
46
+ /**
47
+ * Subtracts another matrix from this matrix (this = this - other).
48
+ * @param {SquareMatrix} other The matrix to subtract. Must be of the same size.
29
49
  */
30
50
  subtract(other: SquareMatrix): void;
31
51
  /**
32
- * Component-size subtraction
33
- * @param {SquareMatrix} a
34
- * @param {SquareMatrix} b
52
+ * Subtracts matrix 'b' from matrix 'a', storing the result in this matrix (this = a - b).
53
+ * Component-wise operation.
54
+ * @param {SquareMatrix} a The first matrix.
55
+ * @param {SquareMatrix} b The second matrix.
35
56
  */
36
57
  subtractMatrices(a: SquareMatrix, b: SquareMatrix): void;
37
58
  /**
38
- * Individually negate each value in the matrix
59
+ * Negates all elements of the matrix (multiplies each element by -1).
39
60
  */
40
61
  negate(): void;
41
62
  /**
42
- * Set all cells to 0
63
+ * Sets all elements of the matrix to 0.
43
64
  */
44
65
  clear(): void;
45
66
  /**
46
67
  * Set diagonal to 1
68
+ * NOTE: if the other cells are 0s - it will produce identity matrix, but those cells will not be written explicitly
47
69
  */
48
70
  eye(): void;
49
71
  /**
50
- *
51
- * @param {SquareMatrix} other
72
+ * Copies the elements of another matrix into this matrix.
73
+ * @param {SquareMatrix} other The matrix to copy from. Must be the same size.
52
74
  */
53
75
  copy(other: SquareMatrix): void;
54
76
  /**
55
- *
56
- * @return {SquareMatrix}
77
+ * Creates a new matrix that is a copy of this matrix.
78
+ * @returns {SquareMatrix} A new matrix with the same elements.
57
79
  */
58
80
  clone(): SquareMatrix;
59
81
  /**
60
- * Transpose matrix
82
+ * Transposes the matrix in-place (swaps rows and columns).
61
83
  */
62
84
  transpose(): void;
63
85
  /**
64
- *
65
- * @param {number[]} arr
86
+ * Populates matrix from a 1D array.
87
+ * @param {number[]} arr Source array. Must have at least size*size elements.
66
88
  */
67
89
  fromArray(arr: number[]): void;
68
90
  /**
69
- *
70
- * @param {number[]} [destination]
71
- * @param {number} [offset]
91
+ * Copies matrix elements into a 1D array.
92
+ * @param {number[]} [destination] Array to store matrix into. Creates a new array if not provided.
93
+ * @param {number} [offset=0] Starting index in the destination array.
94
+ * @returns {number[]} The array containing the matrix data.
72
95
  */
73
96
  toArray(destination?: number[], offset?: number): number[];
74
97
  /**
75
- *
76
- * @param {number} row_index
77
- * @param {number} column_index
78
- * @param {number} value
98
+ * Sets the value of a cell in the matrix.
99
+ * @param {number} row_index Row index (0-based).
100
+ * @param {number} column_index Column index (0-based).
101
+ * @param {number} value The value to set.
79
102
  */
80
103
  setCellValue(row_index: number, column_index: number, value: number): void;
81
104
  /**
82
- *
83
- * @param {number} row_index
84
- * @param {number} column_index
85
- * @return {number}
105
+ * Retrieves the value of a cell in the matrix.
106
+ * @param {number} row_index Row index (0-based).
107
+ * @param {number} column_index Column index (0-based).
108
+ * @returns {number} The value of the cell.
86
109
  */
87
110
  getCellValue(row_index: number, column_index: number): number;
88
111
  /**
89
112
  * Read values at the diagonal, from left to right, top to bottom
90
- * @param {number[]|Float32Array|Float64Array} result
113
+ * @param {number[]|Float32Array|Float64Array} result Array to store the diagonal.
91
114
  */
92
115
  readDiagonal(result: number[] | Float32Array | Float64Array): void;
93
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SquareMatrix.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/matrix/SquareMatrix.js"],"names":[],"mappings":"AAIA;IACI;;;;OAIG;IACH,kBAHW,MAAM,QACN,cAAc,GAAC,MAAM,EA2B/B;IAhBG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,cAAc,CAER;IAEhB;;OAEG;IACH,MAFU,MAAM,EAAE,CAEqB;IAG3C,gBAEC;IAED,qBAEC;IAED,oBAEC;IAED,mBAEC;IAED;;;OAGG;IACH,gBAFW,YAAY,QAItB;IAED;;;;OAIG;IACH,oBAHW,YAAY,KACZ,YAAY,QAiBtB;IAED;;OAEG;IACH,eAMC;IAED;;OAEG;IACH,cAEC;IAED;;OAEG;IACH,YAMC;IAED;;;OAGG;IACH,YAFW,YAAY,QAMtB;IAED;;;OAGG;IACH,SAFY,YAAY,CAQvB;IAED;;OAEG;IACH,kBAcC;IAED;;;OAGG;IACH,eAFW,MAAM,EAAE,QAIlB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,WACR,MAAM,YAMhB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gBACN,MAAM,SACN,MAAM,QAYhB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gBACN,MAAM,GACL,MAAM,CAWjB;IAED;;;OAGG;IACH,qBAFW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAU5C;CACJ"}
1
+ {"version":3,"file":"SquareMatrix.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/matrix/SquareMatrix.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH;IAEI;;;;OAIG;IACH,kBAJW,MAAM,QACN,cAAc,GAAC,MAAM,EA6B/B;IAjBG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,cAAc,CAER;IAEhB;;;OAGG;IACH,MAFU,MAAM,EAAE,CAEqB;IAG3C;;OAEG;IACH,SAFa,MAAM,CAIlB;IAED;;OAEG;IACH,cAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,WAFa,MAAM,EAAE,CAIpB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;OAGG;IACH,gBAFW,YAAY,QAItB;IAED;;;;;OAKG;IACH,oBAHW,YAAY,KACZ,YAAY,QAiBtB;IAED;;OAEG;IACH,eAMC;IAED;;OAEG;IACH,cAEC;IAED;;;OAGG;IACH,YAMC;IAED;;;OAGG;IACH,YAFW,YAAY,QAMtB;IAED;;;OAGG;IACH,SAFa,YAAY,CAQxB;IAED;;OAEG;IACH,kBAcC;IAED;;;OAGG;IACH,eAFW,MAAM,EAAE,QAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,EAAE,WACR,MAAM,GACJ,MAAM,EAAE,CASpB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gBACN,MAAM,SACN,MAAM,QAYhB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,gBACN,MAAM,GACJ,MAAM,CAUlB;IAED;;;OAGG;IACH,qBAFW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAU5C;CACJ"}
@@ -2,11 +2,16 @@ import { assert } from "../../assert.js";
2
2
  import { DataType2TypedArrayConstructorMapping } from "../../binary/type/DataType2TypedArrayConstructorMapping.js";
3
3
  import { array_copy } from "../../collection/array/array_copy.js";
4
4
 
5
+ /**
6
+ * Represents a square matrix (number of rows equals number of columns).
7
+ * Data is stored in a typed array.
8
+ */
5
9
  export class SquareMatrix {
10
+
6
11
  /**
7
- *
8
- * @param {number} size
9
- * @param {BinaryDataType|string} type
12
+ * @param {number} size Side length of the matrix (e.g. '3' for a 3x3 matrix).
13
+ * @param {BinaryDataType|string} type Data type of the elements. Must be a valid BinaryDataType (e.g., "uint8", "float32").
14
+ * @throws {Error} If the provided type is not supported.
10
15
  */
11
16
  constructor(size, type) {
12
17
  assert.isNonNegativeInteger(size, 'size');
@@ -18,51 +23,68 @@ export class SquareMatrix {
18
23
  }
19
24
 
20
25
  /**
21
- *
26
+ * Side length of the matrix.
22
27
  * @type {number}
23
28
  */
24
29
  this.size = size;
25
30
 
26
31
  /**
27
- *
32
+ * Data type of matrix elements.
28
33
  * @type {BinaryDataType}
29
34
  */
30
35
  this.type = type;
31
36
 
32
37
  /**
38
+ * Matrix data, stored as a typed array. Column-major order.
33
39
  * @type {number[]}
34
40
  */
35
41
  this.data = new TypedArray(size * size);
36
42
  }
37
43
 
44
+ /**
45
+ * @returns {number} Side length of the matrix.
46
+ */
38
47
  get n() {
39
48
  return this.size;
40
49
  }
41
50
 
51
+ /**
52
+ * @returns {number} Total number of elements in the matrix (size * size).
53
+ */
42
54
  get length() {
43
55
  return this.size * this.size;
44
56
  }
45
57
 
58
+ /**
59
+ * Returns direct reference to underlying data, modifying it WILL affect the matrix.
60
+ * @returns {number[]}
61
+ */
46
62
  get val() {
47
63
  return this.data;
48
64
  }
49
65
 
66
+ /**
67
+ * Fills the entire matrix with the given value.
68
+ * @param {number} v Value to fill the matrix with.
69
+ * @returns {void}
70
+ */
50
71
  fill(v) {
51
72
  this.data.fill(v);
52
73
  }
53
74
 
54
75
  /**
55
- *
56
- * @param {SquareMatrix} other
76
+ * Subtracts another matrix from this matrix (this = this - other).
77
+ * @param {SquareMatrix} other The matrix to subtract. Must be of the same size.
57
78
  */
58
79
  subtract(other) {
59
80
  this.subtractMatrices(this, other);
60
81
  }
61
82
 
62
83
  /**
63
- * Component-size subtraction
64
- * @param {SquareMatrix} a
65
- * @param {SquareMatrix} b
84
+ * Subtracts matrix 'b' from matrix 'a', storing the result in this matrix (this = a - b).
85
+ * Component-wise operation.
86
+ * @param {SquareMatrix} a The first matrix.
87
+ * @param {SquareMatrix} b The second matrix.
66
88
  */
67
89
  subtractMatrices(a, b) {
68
90
  const size = this.size;
@@ -82,7 +104,7 @@ export class SquareMatrix {
82
104
  }
83
105
 
84
106
  /**
85
- * Individually negate each value in the matrix
107
+ * Negates all elements of the matrix (multiplies each element by -1).
86
108
  */
87
109
  negate() {
88
110
  const data = this.data;
@@ -93,7 +115,7 @@ export class SquareMatrix {
93
115
  }
94
116
 
95
117
  /**
96
- * Set all cells to 0
118
+ * Sets all elements of the matrix to 0.
97
119
  */
98
120
  clear() {
99
121
  this.data.fill(0);
@@ -101,6 +123,7 @@ export class SquareMatrix {
101
123
 
102
124
  /**
103
125
  * Set diagonal to 1
126
+ * NOTE: if the other cells are 0s - it will produce identity matrix, but those cells will not be written explicitly
104
127
  */
105
128
  eye() {
106
129
  const size = this.size;
@@ -111,8 +134,8 @@ export class SquareMatrix {
111
134
  }
112
135
 
113
136
  /**
114
- *
115
- * @param {SquareMatrix} other
137
+ * Copies the elements of another matrix into this matrix.
138
+ * @param {SquareMatrix} other The matrix to copy from. Must be the same size.
116
139
  */
117
140
  copy(other) {
118
141
  assert.equal(this.size, other.size, 'difference sizes');
@@ -121,8 +144,8 @@ export class SquareMatrix {
121
144
  }
122
145
 
123
146
  /**
124
- *
125
- * @return {SquareMatrix}
147
+ * Creates a new matrix that is a copy of this matrix.
148
+ * @returns {SquareMatrix} A new matrix with the same elements.
126
149
  */
127
150
  clone() {
128
151
  const r = new SquareMatrix(this.size, this.type);
@@ -133,7 +156,7 @@ export class SquareMatrix {
133
156
  }
134
157
 
135
158
  /**
136
- * Transpose matrix
159
+ * Transposes the matrix in-place (swaps rows and columns).
137
160
  */
138
161
  transpose() {
139
162
  const size = this.size;
@@ -152,29 +175,33 @@ export class SquareMatrix {
152
175
  }
153
176
 
154
177
  /**
155
- *
156
- * @param {number[]} arr
178
+ * Populates matrix from a 1D array.
179
+ * @param {number[]} arr Source array. Must have at least size*size elements.
157
180
  */
158
181
  fromArray(arr) {
159
182
  this.data.set(arr);
160
183
  }
161
184
 
162
185
  /**
163
- *
164
- * @param {number[]} [destination]
165
- * @param {number} [offset]
186
+ * Copies matrix elements into a 1D array.
187
+ * @param {number[]} [destination] Array to store matrix into. Creates a new array if not provided.
188
+ * @param {number} [offset=0] Starting index in the destination array.
189
+ * @returns {number[]} The array containing the matrix data.
166
190
  */
167
- toArray(destination = new Array(this.length), offset = 0) {
191
+ toArray(
192
+ destination = new Array(this.length),
193
+ offset = 0
194
+ ) {
168
195
  array_copy(this.data, 0, destination, offset, this.length);
169
196
 
170
197
  return destination;
171
198
  }
172
199
 
173
200
  /**
174
- *
175
- * @param {number} row_index
176
- * @param {number} column_index
177
- * @param {number} value
201
+ * Sets the value of a cell in the matrix.
202
+ * @param {number} row_index Row index (0-based).
203
+ * @param {number} column_index Column index (0-based).
204
+ * @param {number} value The value to set.
178
205
  */
179
206
  setCellValue(row_index, column_index, value) {
180
207
  assert.isNonNegativeInteger(row_index, 'row_index');
@@ -189,10 +216,10 @@ export class SquareMatrix {
189
216
  }
190
217
 
191
218
  /**
192
- *
193
- * @param {number} row_index
194
- * @param {number} column_index
195
- * @return {number}
219
+ * Retrieves the value of a cell in the matrix.
220
+ * @param {number} row_index Row index (0-based).
221
+ * @param {number} column_index Column index (0-based).
222
+ * @returns {number} The value of the cell.
196
223
  */
197
224
  getCellValue(row_index, column_index) {
198
225
  assert.isNonNegativeInteger(row_index, 'row_index');
@@ -201,13 +228,12 @@ export class SquareMatrix {
201
228
  assert.lessThan(row_index, this.size, 'row overflow');
202
229
  assert.lessThan(column_index, this.size, 'column overflow');
203
230
 
204
-
205
231
  return this.data[this.size * column_index + row_index];
206
232
  }
207
233
 
208
234
  /**
209
235
  * Read values at the diagonal, from left to right, top to bottom
210
- * @param {number[]|Float32Array|Float64Array} result
236
+ * @param {number[]|Float32Array|Float64Array} result Array to store the diagonal.
211
237
  */
212
238
  readDiagonal(result) {
213
239
  const n = this.size;
@@ -1,12 +1,13 @@
1
1
  /**
2
+ * One-dimensional curve conversion from cubic Hermite to bezier
2
3
  * TODO: not tested
3
- * @param {Float32Array|number[]} result
4
- * @param {number} result_offset
5
- * @param {number} result_stride
4
+ * @param {Float32Array|number[]} result where to put results
5
+ * @param {number} result_offset offset to start writing at in result array
6
+ * @param {number} result_stride how far to step between each written value. Necessary for N-dimensional curves where we want to interleave multiple curves together, such as for color or quaternions
6
7
  * @param {number} p0
7
8
  * @param {number} p1
8
- * @param {number} m0
9
- * @param {number} m1
9
+ * @param {number} m0 tangent at p0
10
+ * @param {number} m1 tangent at p1
10
11
  */
11
12
  export function spline_hermite3_to_bezier(result: Float32Array | number[], result_offset: number, result_stride: number, p0: number, p1: number, m0: number, m1: number): void;
12
13
  //# sourceMappingURL=spline_hermite3_to_bezier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spline_hermite3_to_bezier.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3_to_bezier.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,kDARW,YAAY,GAAC,MAAM,EAAE,iBACrB,MAAM,iBACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAehB"}
1
+ {"version":3,"file":"spline_hermite3_to_bezier.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3_to_bezier.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,kDARW,YAAY,GAAC,MAAM,EAAE,iBACrB,MAAM,iBACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAkBhB"}
@@ -1,24 +1,28 @@
1
1
  /**
2
+ * One-dimensional curve conversion from cubic Hermite to bezier
2
3
  * TODO: not tested
3
- * @param {Float32Array|number[]} result
4
- * @param {number} result_offset
5
- * @param {number} result_stride
4
+ * @param {Float32Array|number[]} result where to put results
5
+ * @param {number} result_offset offset to start writing at in result array
6
+ * @param {number} result_stride how far to step between each written value. Necessary for N-dimensional curves where we want to interleave multiple curves together, such as for color or quaternions
6
7
  * @param {number} p0
7
8
  * @param {number} p1
8
- * @param {number} m0
9
- * @param {number} m1
9
+ * @param {number} m0 tangent at p0
10
+ * @param {number} m1 tangent at p1
10
11
  */
11
- export function spline_hermite3_to_bezier(result, result_offset, result_stride, p0, p1, m0, m1) {
12
+ export function spline_hermite3_to_bezier(
13
+ result,
14
+ result_offset,
15
+ result_stride,
16
+ p0, p1,
17
+ m0, m1
18
+ ) {
12
19
 
13
20
  // see https://stackoverflow.com/questions/42574940/draw-hermite-curve-on-browser-canvas-javascript
14
21
  // see https://pomax.github.io/bezierinfo/#catmullconv
15
22
 
16
- const tension = 1;
17
- const tension_factor = 2 * tension;
18
-
19
23
  result[result_offset + 0 * result_stride] = p0;
20
- result[result_offset + 1 * result_stride] = p0 + m0 / tension_factor;
21
- result[result_offset + 2 * result_stride] = p1 - m1 / tension_factor;
24
+ result[result_offset + 1 * result_stride] = p0 + m0 / 3;
25
+ result[result_offset + 2 * result_stride] = p1 - m1 / 3;
22
26
  result[result_offset + 3 * result_stride] = p1;
23
27
 
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleRegistry.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ModuleRegistry.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,4BAFa,CAAC;IAeV;;;OAGG;IACH,oCAiBG;IAEH;;;OAGG;IACH,6BAEC;IAGD;;;;OAIG;IACH,IAJiB,CAAC,SAAJ,CAAE,iBAEH,CAAC,CAIb;IAED;;;;OAIG;IACH,UAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,IALiB,CAAC,SAAJ,CAAE,QACL,MAAM,UACN,CAAC,GACC,OAAO,CA0BnB;IAED;;;;;;OAMG;IACH,kBALiB,CAAC,SAAJ,CAAE,UACL,CAAC,GACC,MAAM,EAAE,CAYpB;IAED,mBAEC;;CACJ"}
1
+ {"version":3,"file":"ModuleRegistry.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ModuleRegistry.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,4BAFa,CAAC;IAeV;;;OAGG;IACH,oCAiBG;IAEH;;;OAGG;IACH,6BAEC;IAGD;;;;OAIG;IACH,IAJiB,CAAC,SAAJ,CAAE,iBAEH,CAAC,CAIb;IAED;;;;OAIG;IACH,UAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;;OAKG;IACH,IALiB,CAAC,SAAJ,CAAE,QACL,MAAM,UACN,CAAC,GACC,OAAO,CA0BnB;IAED;;;;;;OAMG;IACH,kBALa,CAAC,UACH,CAAC,GACC,MAAM,EAAE,CAYpB;IAED,mBAEC;;CACJ"}
@@ -100,10 +100,10 @@ export class ModuleRegistry {
100
100
 
101
101
  /**
102
102
  * Find all names associated with the given module
103
- * @template {T} M
103
+ * @template M
104
104
  * @param {M} module
105
105
  * @returns {string[]}
106
- * @throws if module is not registered
106
+ * @throws {Error} if module is not registered
107
107
  */
108
108
  findNamesByModule(module) {
109
109
 
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../core/assert.js";
2
- import { computeSystemName } from "./ecs/System.js";
2
+ import { computeSystemName } from "./ecs/computeSystemName.js";
3
3
 
4
4
  export class EngineConfiguration {
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/Entity.js"],"names":[],"mappings":";AAgBA;;;GAGG;AACH;IAgaI;;;;;OAKG;IACH,+BAJW,MAAM,WACN,sBAAsB,GACpB,MAAM,CAgBlB;IAlbD;;;OAGG;IACH,oBAFU,eAAe,CAES;IAWlC;;;OAGG;IACH,UAFW,MAAM,EAIhB;IAdD;;;OAGG;IACH,UAFa,MAAM,CAIlB;IAmBD;;;OAGG;IACH,kBAFW,MAAM,EAIhB;IAfD;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAWD;;;;OAIG;IACH,2BAAgB;IAQhB;;;OAGG;IACH,SAFU,sBAAsB,CAEjB;IAEf;;;OAGG;IACH,OAFU,WAAW,GAAC,MAAM,CAEN;IAEtB;;;OAGG;IACH,gBAAgB;IAEhB;;OAEG;IACH;;MAEE;IAUF;;;OAGG;IACH,eAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,WAAW,GAChB,OAAO,CAMnB;IAED;;;OAGG;IACH,gBAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;OAGG;IACH,eAFa,OAAO,CAInB;IAED;;OAEG;IACH,4BAQC;IAED;;;OAGG;IACH,aAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,IAJa,CAAC,qBACH,CAAC,GACC,MAAM,CAiBlB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,CAAC,GACC,OAAO,CAInB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,GAAC,IAAI,CAclB;IAED;;;;;OAKG;IACH,iBAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,CAUb;IAED;;;;OAIG;IACH,kCAFa,GAAC,GAAC,IAAI,CA0BlB;IAED;;;;OAIG;IACH,qBAHW,MAAM,UACN,GAAC,QAQX;IAED;;;OAGG;IACH,wBAFW,MAAM,gBAiBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAalB;IAED;;;;;;OAMG;IACH,+BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAyBlB;IAED;;;OAGG;IACH,WAFa,OAAO,CAwBnB;IAED;;;;OAIG;IACH,eAFW,sBAAsB,GADpB,MAAM,CAyDlB;IAyBL;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;;CAPxB;gCApc+B,sBAAsB;4BAF1B,kBAAkB;mBAF3B,oCAAoC"}
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/Entity.js"],"names":[],"mappings":";AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH;IAgaI;;;;;OAKG;IACH,+BAJW,MAAM,WACN,sBAAsB,GACpB,MAAM,CAgBlB;IAlbD;;;OAGG;IACH,oBAFU,eAAe,CAES;IAWlC;;;OAGG;IACH,UAFW,MAAM,EAIhB;IAdD;;;OAGG;IACH,UAFa,MAAM,CAIlB;IAmBD;;;OAGG;IACH,kBAFW,MAAM,EAIhB;IAfD;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAWD;;;;OAIG;IACH,2BAAgB;IAQhB;;;OAGG;IACH,SAFU,sBAAsB,CAEjB;IAEf;;;OAGG;IACH,OAFU,WAAW,GAAC,MAAM,CAEN;IAEtB;;;OAGG;IACH,gBAAgB;IAEhB;;OAEG;IACH;;MAEE;IAUF;;;OAGG;IACH,eAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;;OAIG;IACH,cAHW,MAAM,GAAC,WAAW,GAChB,OAAO,CAMnB;IAED;;;OAGG;IACH,gBAFW,MAAM,GAAC,WAAW,QAI5B;IAED;;;OAGG;IACH,eAFa,OAAO,CAInB;IAED;;OAEG;IACH,4BAQC;IAED;;;OAGG;IACH,aAFY,MAAM,CAIjB;IAED;;;;OAIG;IACH,IAJa,CAAC,qBACH,CAAC,GACC,MAAM,CAiBlB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,CAAC,GACC,OAAO,CAInB;IAED;;;;OAIG;IACH,aAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,GAAC,IAAI,CAclB;IAED;;;;;OAKG;IACH,iBAJa,CAAC,SACH,KAAK,CAAC,CAAC,CAAC,GACN,CAAC,CAUb;IAED;;;;OAIG;IACH,kCAFa,GAAC,GAAC,IAAI,CA0BlB;IAED;;;;OAIG;IACH,qBAHW,MAAM,UACN,GAAC,QAQX;IAED;;;OAGG;IACH,wBAFW,MAAM,gBAiBhB;IAED;;;;;;OAMG;IACH,4BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAalB;IAED;;;;;;OAMG;IACH,+BALW,MAAM,gCAEN,GAAC,GACC,MAAM,CAyBlB;IAED;;;OAGG;IACH,WAFa,OAAO,CAwBnB;IAED;;;;OAIG;IACH,eAFW,sBAAsB,GADpB,MAAM,CAyDlB;IAyBL;;;;OAIG;IACH,mBAFU,OAAO,CAEQ;;CAPxB;gCA7e+B,sBAAsB;4BAD1B,kBAAkB;mBAF3B,oCAAoC"}
@@ -2,8 +2,8 @@ import { assert } from "../../core/assert.js";
2
2
  import Signal from "../../core/events/signal/Signal.js";
3
3
  import { isDefined } from "../../core/process/matcher/isDefined.js";
4
4
  import { EntityFlags } from "./EntityFlags.js";
5
- import { EventType } from "./EntityManager.js";
6
5
  import { EntityReference } from "./EntityReference.js";
6
+ import { EventType } from "./EventType.js";
7
7
 
8
8
  /**
9
9
  * Set of default flags
@@ -16,7 +16,47 @@ const DEFAULT_FLAGS =
16
16
 
17
17
  /**
18
18
  * Representation of an entity, helps build entities and keep track of them without having to access {@link EntityComponentDataset} directly
19
- * @class
19
+ *
20
+ *
21
+ * @example
22
+ * // Create a new entity (initially has no components).
23
+ * const entity = new Entity();
24
+ *
25
+ * // Define some components (simple data containers).
26
+ * class PositionComponent {
27
+ * constructor(x, y) {
28
+ * this.x = x;
29
+ * this.y = y;
30
+ * }
31
+ * }
32
+ *
33
+ * class VelocityComponent {
34
+ * constructor(x, y) {
35
+ * this.x = x;
36
+ * this.y = y;
37
+ * }
38
+ * }
39
+ *
40
+ * // Add components to the entity.
41
+ * entity.add(new PositionComponent(10, 20));
42
+ * entity.add(new VelocityComponent(1, 2));
43
+
44
+ *
45
+ * // Get a component (would return null if the entity doesn't have it).
46
+ * const position = entity.getComponent(PositionComponent); // { x:10, y:20 }
47
+ *
48
+ * // Remove a component.
49
+ * entity.removeComponent(VelocityComponent);
50
+ *
51
+ * // To actually use the entity in a game, you need to build it using an EntityComponentDataset.
52
+ * const dataset = new EntityComponentDataset(); // You would typically have one already
53
+ *
54
+ * entity.build(dataset);
55
+ * // Now the entity and its components are managed by the ECS.
56
+ *
57
+ * // later, you can destroy the entity:
58
+ * entity.destroy();
59
+ *
20
60
  */
21
61
  class Entity {
22
62
 
@@ -1,4 +1,4 @@
1
- import { EventType } from "./EntityManager.js";
1
+ import { EventType } from "./EventType.js";
2
2
 
3
3
  /**
4
4
  *
@@ -23,7 +23,7 @@ export class EntityComponentDataset {
23
23
 
24
24
  public createEntitySpecific(entityId: number): void
25
25
 
26
- public removeEntity(entityIndex: number): void
26
+ public removeEntity(entityIndex: number): boolean
27
27
 
28
28
  public removeEntities(entityIndices: number[]): void
29
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityComponentDataset.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityComponentDataset.js"],"names":[],"mappings":"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"}