@woosh/meep-engine 2.135.0 → 2.138.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 (238) hide show
  1. package/package.json +1 -1
  2. package/src/core/geom/2d/aabb/aabb2_intersects_ray.d.ts.map +1 -1
  3. package/src/core/geom/2d/aabb/aabb2_intersects_ray.js +5 -7
  4. package/src/core/geom/2d/hash-grid/shg_query_elements_circle.d.ts.map +1 -1
  5. package/src/core/geom/2d/hash-grid/shg_query_elements_circle.js +2 -3
  6. package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.d.ts.map +1 -1
  7. package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.js +9 -11
  8. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -1
  9. package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.js +6 -4
  10. package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.d.ts.map +1 -1
  11. package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.js +1 -2
  12. package/src/core/geom/Quaternion.d.ts +26 -39
  13. package/src/core/geom/Quaternion.d.ts.map +1 -1
  14. package/src/core/geom/Quaternion.js +124 -136
  15. package/src/core/geom/Vector2.d.ts +28 -14
  16. package/src/core/geom/Vector2.d.ts.map +1 -1
  17. package/src/core/geom/Vector2.js +114 -97
  18. package/src/core/geom/Vector3.d.ts +21 -34
  19. package/src/core/geom/Vector3.d.ts.map +1 -1
  20. package/src/core/geom/Vector3.js +131 -142
  21. package/src/core/geom/Vector4.d.ts +21 -30
  22. package/src/core/geom/Vector4.d.ts.map +1 -1
  23. package/src/core/geom/Vector4.js +80 -93
  24. package/src/core/geom/packing/computeBoundingSphereOfSpheres.d.ts.map +1 -1
  25. package/src/core/geom/packing/computeBoundingSphereOfSpheres.js +23 -6
  26. package/src/core/geom/packing/miniball/Miniball.d.ts.map +1 -1
  27. package/src/core/geom/packing/miniball/Miniball.js +4 -11
  28. package/src/core/geom/packing/miniball/Subspan.d.ts +14 -39
  29. package/src/core/geom/packing/miniball/Subspan.d.ts.map +1 -1
  30. package/src/core/geom/packing/miniball/Subspan.js +105 -158
  31. package/src/core/geom/packing/miniball/miniball_compute_quality.d.ts.map +1 -1
  32. package/src/core/geom/packing/miniball/miniball_compute_quality.js +2 -6
  33. package/src/core/geom/vec/vector_axpy.d.ts +12 -0
  34. package/src/core/geom/vec/vector_axpy.d.ts.map +1 -0
  35. package/src/core/geom/vec/vector_axpy.js +15 -0
  36. package/src/core/geom/vec/vector_axpy_offset.d.ts +17 -0
  37. package/src/core/geom/vec/vector_axpy_offset.d.ts.map +1 -0
  38. package/src/core/geom/vec/vector_axpy_offset.js +20 -0
  39. package/src/core/geom/vec/vector_dot_offset.d.ts +18 -0
  40. package/src/core/geom/vec/vector_dot_offset.d.ts.map +1 -0
  41. package/src/core/geom/vec/vector_dot_offset.js +25 -0
  42. package/src/core/math/complex/complex_horner_eval.d.ts +16 -0
  43. package/src/core/math/complex/complex_horner_eval.d.ts.map +1 -0
  44. package/src/core/math/complex/complex_horner_eval.js +31 -0
  45. package/src/core/math/fabsf.d.ts +2 -3
  46. package/src/core/math/fabsf.d.ts.map +1 -1
  47. package/src/core/math/fabsf.js +3 -5
  48. package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.d.ts +26 -0
  49. package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.d.ts.map +1 -0
  50. package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.js +43 -0
  51. package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.d.ts +2 -1
  52. package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.d.ts.map +1 -1
  53. package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.js +2 -1
  54. package/src/core/math/linalg/eigen/matrix_householder_in_place.d.ts +10 -4
  55. package/src/core/math/linalg/eigen/matrix_householder_in_place.d.ts.map +1 -1
  56. package/src/core/math/linalg/eigen/matrix_householder_in_place.js +122 -98
  57. package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts +2 -2
  58. package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts.map +1 -1
  59. package/src/core/math/linalg/eigen/matrix_qr_in_place.js +144 -124
  60. package/src/core/math/linalg/givens/givens_apply_rows.d.ts +22 -0
  61. package/src/core/math/linalg/givens/givens_apply_rows.d.ts.map +1 -0
  62. package/src/core/math/linalg/givens/givens_apply_rows.js +28 -0
  63. package/src/core/math/linalg/givens/givens_apply_rows_offset.d.ts +24 -0
  64. package/src/core/math/linalg/givens/givens_apply_rows_offset.d.ts.map +1 -0
  65. package/src/core/math/linalg/givens/givens_apply_rows_offset.js +30 -0
  66. package/src/core/math/linalg/givens/givens_rotation_coefficients.d.ts +25 -0
  67. package/src/core/math/linalg/givens/givens_rotation_coefficients.d.ts.map +1 -0
  68. package/src/core/math/linalg/givens/givens_rotation_coefficients.js +39 -0
  69. package/src/core/math/linalg/lu_factor_linear_system.d.ts +1 -1
  70. package/src/core/math/linalg/lu_factor_linear_system.d.ts.map +1 -1
  71. package/src/core/math/linalg/lu_factor_linear_system.js +108 -117
  72. package/src/core/math/linalg/lu_solve_linear_system.d.ts +1 -1
  73. package/src/core/math/linalg/lu_solve_linear_system.js +53 -53
  74. package/src/core/math/linalg/polynomial_add_into.d.ts +18 -0
  75. package/src/core/math/linalg/polynomial_add_into.d.ts.map +1 -0
  76. package/src/core/math/linalg/polynomial_add_into.js +29 -0
  77. package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.d.ts +6 -1
  78. package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.d.ts.map +1 -1
  79. package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.js +48 -50
  80. package/src/core/math/linalg/polynomial_cubic_derivative_eval.d.ts +15 -0
  81. package/src/core/math/linalg/polynomial_cubic_derivative_eval.d.ts.map +1 -0
  82. package/src/core/math/linalg/polynomial_cubic_derivative_eval.js +16 -0
  83. package/src/core/math/linalg/polynomial_cubic_horner_eval.d.ts +18 -0
  84. package/src/core/math/linalg/polynomial_cubic_horner_eval.d.ts.map +1 -0
  85. package/src/core/math/linalg/polynomial_cubic_horner_eval.js +19 -0
  86. package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.d.ts +13 -0
  87. package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.d.ts.map +1 -0
  88. package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.js +14 -0
  89. package/src/core/math/linalg/polynomial_multiply.d.ts +21 -0
  90. package/src/core/math/linalg/polynomial_multiply.d.ts.map +1 -0
  91. package/src/core/math/linalg/polynomial_multiply.js +41 -0
  92. package/src/core/math/linalg/polynomial_real_roots_in_interval.d.ts +6 -1
  93. package/src/core/math/linalg/polynomial_real_roots_in_interval.d.ts.map +1 -1
  94. package/src/core/math/linalg/polynomial_real_roots_in_interval.js +29 -18
  95. package/src/core/math/linalg/polynomial_root_bound_cauchy.d.ts +17 -0
  96. package/src/core/math/linalg/polynomial_root_bound_cauchy.d.ts.map +1 -0
  97. package/src/core/math/linalg/polynomial_root_bound_cauchy.js +30 -0
  98. package/src/core/math/linalg/polynomial_scale_into.d.ts +14 -0
  99. package/src/core/math/linalg/polynomial_scale_into.d.ts.map +1 -0
  100. package/src/core/math/linalg/polynomial_scale_into.js +17 -0
  101. package/src/core/math/linalg/polynomial_sub_into.d.ts +18 -0
  102. package/src/core/math/linalg/polynomial_sub_into.d.ts.map +1 -0
  103. package/src/core/math/linalg/polynomial_sub_into.js +29 -0
  104. package/src/core/math/linalg/solve_linear_system.d.ts +1 -1
  105. package/src/core/math/linalg/solve_linear_system.js +1 -1
  106. package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts +4 -4
  107. package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts.map +1 -1
  108. package/src/core/math/linalg/solve_linear_system_GEPP_2x2.js +96 -91
  109. package/src/core/math/solveQuadratic.d.ts +2 -2
  110. package/src/core/math/solveQuadratic.d.ts.map +1 -1
  111. package/src/core/math/solveQuadratic.js +1 -1
  112. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.d.ts +18 -10
  113. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.d.ts.map +1 -1
  114. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.js +18 -10
  115. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.d.ts +13 -6
  116. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.d.ts.map +1 -1
  117. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.js +16 -11
  118. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.d.ts +25 -3
  119. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.d.ts.map +1 -1
  120. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.js +97 -142
  121. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.d.ts +30 -4
  122. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.d.ts.map +1 -1
  123. package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.js +188 -132
  124. package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.d.ts +7 -3
  125. package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.d.ts.map +1 -1
  126. package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.js +35 -6
  127. package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.d.ts +17 -0
  128. package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.d.ts.map +1 -0
  129. package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.js +87 -0
  130. package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts +13 -0
  131. package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts.map +1 -0
  132. package/src/core/science/units/MEASUREMENT_UNITS_SI.js +28 -0
  133. package/src/core/science/units/NamedUnit.d.ts +38 -0
  134. package/src/core/science/units/NamedUnit.d.ts.map +1 -0
  135. package/src/core/science/units/NamedUnit.js +48 -0
  136. package/src/core/science/units/UNIT_DIMENSION_MAPPING.d.ts +14 -0
  137. package/src/core/science/units/UNIT_DIMENSION_MAPPING.d.ts.map +1 -0
  138. package/src/core/science/units/UNIT_DIMENSION_MAPPING.js +29 -0
  139. package/src/core/science/units/UnitDimension.d.ts +26 -0
  140. package/src/core/science/units/UnitDimension.d.ts.map +1 -0
  141. package/src/core/science/units/UnitDimension.js +28 -0
  142. package/src/core/science/units/UnitMatrix.d.ts +117 -0
  143. package/src/core/science/units/UnitMatrix.d.ts.map +1 -0
  144. package/src/core/science/units/UnitMatrix.js +251 -0
  145. package/src/core/science/units/format_quantity.d.ts +25 -0
  146. package/src/core/science/units/format_quantity.d.ts.map +1 -0
  147. package/src/core/science/units/format_quantity.js +74 -0
  148. package/src/core/science/units/magnitude_prefix.d.ts +57 -0
  149. package/src/core/science/units/magnitude_prefix.d.ts.map +1 -0
  150. package/src/core/science/units/magnitude_prefix.js +127 -0
  151. package/src/core/science/units/si/AMPERE.d.ts +7 -0
  152. package/src/core/science/units/si/AMPERE.d.ts.map +1 -0
  153. package/src/core/science/units/si/AMPERE.js +13 -0
  154. package/src/core/science/units/si/CANDELA.d.ts +7 -0
  155. package/src/core/science/units/si/CANDELA.d.ts.map +1 -0
  156. package/src/core/science/units/si/CANDELA.js +13 -0
  157. package/src/core/science/units/si/DIMENSIONLESS.d.ts +8 -0
  158. package/src/core/science/units/si/DIMENSIONLESS.d.ts.map +1 -0
  159. package/src/core/science/units/si/DIMENSIONLESS.js +14 -0
  160. package/src/core/science/units/si/KELVIN.d.ts +7 -0
  161. package/src/core/science/units/si/KELVIN.d.ts.map +1 -0
  162. package/src/core/science/units/si/KELVIN.js +13 -0
  163. package/src/core/science/units/si/KILOGRAM.d.ts +7 -0
  164. package/src/core/science/units/si/KILOGRAM.d.ts.map +1 -0
  165. package/src/core/science/units/si/KILOGRAM.js +13 -0
  166. package/src/core/science/units/si/METER.d.ts +7 -0
  167. package/src/core/science/units/si/METER.d.ts.map +1 -0
  168. package/src/core/science/units/si/METER.js +13 -0
  169. package/src/core/science/units/si/MOLE.d.ts +7 -0
  170. package/src/core/science/units/si/MOLE.d.ts.map +1 -0
  171. package/src/core/science/units/si/MOLE.js +13 -0
  172. package/src/core/science/units/si/SECOND.d.ts +7 -0
  173. package/src/core/science/units/si/SECOND.d.ts.map +1 -0
  174. package/src/core/science/units/si/SECOND.js +13 -0
  175. package/src/core/science/units/si/derived/BECQUEREL.d.ts +10 -0
  176. package/src/core/science/units/si/derived/BECQUEREL.d.ts.map +1 -0
  177. package/src/core/science/units/si/derived/BECQUEREL.js +16 -0
  178. package/src/core/science/units/si/derived/COULOMB.d.ts +7 -0
  179. package/src/core/science/units/si/derived/COULOMB.d.ts.map +1 -0
  180. package/src/core/science/units/si/derived/COULOMB.js +13 -0
  181. package/src/core/science/units/si/derived/FARAD.d.ts +7 -0
  182. package/src/core/science/units/si/derived/FARAD.d.ts.map +1 -0
  183. package/src/core/science/units/si/derived/FARAD.js +13 -0
  184. package/src/core/science/units/si/derived/GRAY.d.ts +10 -0
  185. package/src/core/science/units/si/derived/GRAY.d.ts.map +1 -0
  186. package/src/core/science/units/si/derived/GRAY.js +16 -0
  187. package/src/core/science/units/si/derived/HENRY.d.ts +7 -0
  188. package/src/core/science/units/si/derived/HENRY.d.ts.map +1 -0
  189. package/src/core/science/units/si/derived/HENRY.js +13 -0
  190. package/src/core/science/units/si/derived/HERTZ.d.ts +10 -0
  191. package/src/core/science/units/si/derived/HERTZ.d.ts.map +1 -0
  192. package/src/core/science/units/si/derived/HERTZ.js +16 -0
  193. package/src/core/science/units/si/derived/JOULE.d.ts +7 -0
  194. package/src/core/science/units/si/derived/JOULE.d.ts.map +1 -0
  195. package/src/core/science/units/si/derived/JOULE.js +13 -0
  196. package/src/core/science/units/si/derived/KATAL.d.ts +7 -0
  197. package/src/core/science/units/si/derived/KATAL.d.ts.map +1 -0
  198. package/src/core/science/units/si/derived/KATAL.js +13 -0
  199. package/src/core/science/units/si/derived/LUMEN.d.ts +8 -0
  200. package/src/core/science/units/si/derived/LUMEN.d.ts.map +1 -0
  201. package/src/core/science/units/si/derived/LUMEN.js +14 -0
  202. package/src/core/science/units/si/derived/LUX.d.ts +7 -0
  203. package/src/core/science/units/si/derived/LUX.d.ts.map +1 -0
  204. package/src/core/science/units/si/derived/LUX.js +13 -0
  205. package/src/core/science/units/si/derived/NEWTON.d.ts +7 -0
  206. package/src/core/science/units/si/derived/NEWTON.d.ts.map +1 -0
  207. package/src/core/science/units/si/derived/NEWTON.js +13 -0
  208. package/src/core/science/units/si/derived/OHM.d.ts +7 -0
  209. package/src/core/science/units/si/derived/OHM.d.ts.map +1 -0
  210. package/src/core/science/units/si/derived/OHM.js +13 -0
  211. package/src/core/science/units/si/derived/PASCAL.d.ts +7 -0
  212. package/src/core/science/units/si/derived/PASCAL.d.ts.map +1 -0
  213. package/src/core/science/units/si/derived/PASCAL.js +13 -0
  214. package/src/core/science/units/si/derived/SIEMENS.d.ts +7 -0
  215. package/src/core/science/units/si/derived/SIEMENS.d.ts.map +1 -0
  216. package/src/core/science/units/si/derived/SIEMENS.js +13 -0
  217. package/src/core/science/units/si/derived/SIEVERT.d.ts +10 -0
  218. package/src/core/science/units/si/derived/SIEVERT.d.ts.map +1 -0
  219. package/src/core/science/units/si/derived/SIEVERT.js +16 -0
  220. package/src/core/science/units/si/derived/TESLA.d.ts +7 -0
  221. package/src/core/science/units/si/derived/TESLA.d.ts.map +1 -0
  222. package/src/core/science/units/si/derived/TESLA.js +13 -0
  223. package/src/core/science/units/si/derived/VOLT.d.ts +7 -0
  224. package/src/core/science/units/si/derived/VOLT.d.ts.map +1 -0
  225. package/src/core/science/units/si/derived/VOLT.js +13 -0
  226. package/src/core/science/units/si/derived/WATT.d.ts +7 -0
  227. package/src/core/science/units/si/derived/WATT.d.ts.map +1 -0
  228. package/src/core/science/units/si/derived/WATT.js +13 -0
  229. package/src/core/science/units/si/derived/WEBER.d.ts +7 -0
  230. package/src/core/science/units/si/derived/WEBER.d.ts.map +1 -0
  231. package/src/core/science/units/si/derived/WEBER.js +13 -0
  232. package/src/core/science/units/unit_matrix_to_string.d.ts +29 -0
  233. package/src/core/science/units/unit_matrix_to_string.d.ts.map +1 -0
  234. package/src/core/science/units/unit_matrix_to_string.js +403 -0
  235. package/src/engine/graphics/geometry/MikkT/CalcTexArea.d.ts.map +1 -1
  236. package/src/engine/graphics/geometry/MikkT/CalcTexArea.js +1 -2
  237. package/src/engine/graphics/geometry/MikkT/InitTriInfo.d.ts.map +1 -1
  238. package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +6 -7
@@ -22,12 +22,14 @@ import { v2_length_sqr } from "./vec2/v2_length_sqr.js";
22
22
  *
23
23
  * Iterating through a Vector2 instance will yield its components `(x, y)` in the corresponding order.
24
24
  *
25
+ * Backed by a `Float64Array` of length 2, so instances are usable directly as typed-array views and indexed access `v[0]`, `v[1]` aliases `v.x`, `v.y`.
26
+ *
25
27
  * @implements Iterable<number>
26
28
  *
27
29
  * @author Alex Goldring
28
30
  * @copyright Company Named Limited (c) 2025
29
31
  */
30
- export class Vector2 {
32
+ export class Vector2 extends Float64Array {
31
33
  /**
32
34
  *
33
35
  * @param {number} [x=0]
@@ -40,17 +42,10 @@ export class Vector2 {
40
42
  assert.notNaN(x, 'x');
41
43
  assert.notNaN(y, 'y');
42
44
 
43
- /**
44
- *
45
- * @type {number}
46
- */
47
- this.x = x;
45
+ super(2);
48
46
 
49
- /**
50
- *
51
- * @type {number}
52
- */
53
- this.y = y;
47
+ this[0] = x;
48
+ this[1] = y;
54
49
 
55
50
  /**
56
51
  * @readonly
@@ -59,6 +54,47 @@ export class Vector2 {
59
54
  this.onChanged = new Signal();
60
55
  }
61
56
 
57
+ /**
58
+ * Ensure that built-in `TypedArray` methods (`map`, `slice`, `subarray`, ...) do not
59
+ * try to construct a `Vector2` via the buffer-form constructor.
60
+ * @returns {Float64ArrayConstructor}
61
+ */
62
+ static get [Symbol.species]() {
63
+ return Float64Array;
64
+ }
65
+
66
+ /**
67
+ *
68
+ * @returns {number}
69
+ */
70
+ get x() {
71
+ return this[0];
72
+ }
73
+
74
+ /**
75
+ *
76
+ * @param {number} v
77
+ */
78
+ set x(v) {
79
+ this[0] = v;
80
+ }
81
+
82
+ /**
83
+ *
84
+ * @returns {number}
85
+ */
86
+ get y() {
87
+ return this[1];
88
+ }
89
+
90
+ /**
91
+ *
92
+ * @param {number} v
93
+ */
94
+ set y(v) {
95
+ this[1] = v;
96
+ }
97
+
62
98
  /**
63
99
  *
64
100
  * @param {number[]|Float32Array} array
@@ -81,8 +117,8 @@ export class Vector2 {
81
117
  assert.isArrayLike(array, 'array');
82
118
  assert.isNonNegativeInteger(offset, 'offset');
83
119
 
84
- array[offset] = this.x;
85
- array[offset + 1] = this.y;
120
+ array[offset] = this[0];
121
+ array[offset + 1] = this[1];
86
122
  }
87
123
 
88
124
  asArray() {
@@ -106,12 +142,12 @@ export class Vector2 {
106
142
  assert.notNaN(x, 'x');
107
143
  assert.notNaN(y, 'y');
108
144
 
109
- const oldX = this.x;
110
- const oldY = this.y;
145
+ const oldX = this[0];
146
+ const oldY = this[1];
111
147
 
112
148
  if (oldX !== x || oldY !== y) {
113
- this.x = x;
114
- this.y = y;
149
+ this[0] = x;
150
+ this[1] = y;
115
151
 
116
152
  if (this.onChanged.hasHandlers()) {
117
153
  this.onChanged.send4(x, y, oldX, oldY);
@@ -135,8 +171,8 @@ export class Vector2 {
135
171
  assert.notNaN(x, 'x');
136
172
  assert.notNaN(y, 'y');
137
173
 
138
- this.x = x;
139
- this.y = y;
174
+ this[0] = x;
175
+ this[1] = y;
140
176
 
141
177
  return this;
142
178
  }
@@ -147,7 +183,7 @@ export class Vector2 {
147
183
  * @returns {this}
148
184
  */
149
185
  setX(x) {
150
- return this.set(x, this.y);
186
+ return this.set(x, this[1]);
151
187
  }
152
188
 
153
189
  /**
@@ -156,7 +192,7 @@ export class Vector2 {
156
192
  * @returns {this}
157
193
  */
158
194
  setY(y) {
159
- return this.set(this.x, y);
195
+ return this.set(this[0], y);
160
196
  }
161
197
 
162
198
  /**
@@ -166,7 +202,7 @@ export class Vector2 {
166
202
  * @returns {this}
167
203
  */
168
204
  _sub(x, y) {
169
- return this.set(this.x - x, this.y - y);
205
+ return this.set(this[0] - x, this[1] - y);
170
206
  }
171
207
 
172
208
  /**
@@ -193,7 +229,7 @@ export class Vector2 {
193
229
  * @returns {this}
194
230
  */
195
231
  floor() {
196
- return this.set(Math.floor(this.x), Math.floor(this.y));
232
+ return this.set(Math.floor(this[0]), Math.floor(this[1]));
197
233
  }
198
234
 
199
235
  /**
@@ -201,7 +237,7 @@ export class Vector2 {
201
237
  * @returns {this}
202
238
  */
203
239
  ceil() {
204
- return this.set(Math.ceil(this.x), Math.ceil(this.y));
240
+ return this.set(Math.ceil(this[0]), Math.ceil(this[1]));
205
241
  }
206
242
 
207
243
  /**
@@ -209,8 +245,8 @@ export class Vector2 {
209
245
  * @returns {this}
210
246
  */
211
247
  round() {
212
- const x = Math.round(this.x);
213
- const y = Math.round(this.y);
248
+ const x = Math.round(this[0]);
249
+ const y = Math.round(this[1]);
214
250
  return this.set(x, y);
215
251
  }
216
252
 
@@ -219,7 +255,7 @@ export class Vector2 {
219
255
  * @returns {this}
220
256
  */
221
257
  abs() {
222
- return this.set(Math.abs(this.x), Math.abs(this.y));
258
+ return this.set(Math.abs(this[0]), Math.abs(this[1]));
223
259
  }
224
260
 
225
261
  /**
@@ -229,7 +265,7 @@ export class Vector2 {
229
265
  * @returns {this}
230
266
  */
231
267
  _mod(x, y) {
232
- return this.set(this.x % x, this.y % y);
268
+ return this.set(this[0] % x, this[1] % y);
233
269
  }
234
270
 
235
271
  /**
@@ -247,7 +283,7 @@ export class Vector2 {
247
283
  * @returns {this}
248
284
  */
249
285
  divide(other) {
250
- return this.set(this.x / other.x, this.y / other.y);
286
+ return this.set(this[0] / other.x, this[1] / other.y);
251
287
  }
252
288
 
253
289
  /**
@@ -266,7 +302,7 @@ export class Vector2 {
266
302
  * @returns {this}
267
303
  */
268
304
  _multiply(x, y) {
269
- return this.set(this.x * x, this.y * y);
305
+ return this.set(this[0] * x, this[1] * y);
270
306
  }
271
307
 
272
308
  /**
@@ -275,8 +311,8 @@ export class Vector2 {
275
311
  * @returns {this}
276
312
  */
277
313
  max(other) {
278
- const x = max2(this.x, other.x);
279
- const y = max2(this.y, other.y);
314
+ const x = max2(this[0], other.x);
315
+ const y = max2(this[1], other.y);
280
316
 
281
317
  return this.set(x, y);
282
318
  }
@@ -287,7 +323,7 @@ export class Vector2 {
287
323
  * @returns {number}
288
324
  */
289
325
  dot(other) {
290
- return v2_dot(this.x, this.y, other.x, other.y);
326
+ return v2_dot(this[0], this[1], other.x, other.y);
291
327
  }
292
328
 
293
329
  /**
@@ -304,7 +340,7 @@ export class Vector2 {
304
340
  * @returns {Vector2}
305
341
  */
306
342
  clone() {
307
- return new Vector2(this.x, this.y);
343
+ return new Vector2(this[0], this[1]);
308
344
  }
309
345
 
310
346
  /**
@@ -312,7 +348,7 @@ export class Vector2 {
312
348
  * @returns {this}
313
349
  */
314
350
  negate() {
315
- return this.set(-this.x, -this.y);
351
+ return this.set(-this[0], -this[1]);
316
352
  }
317
353
 
318
354
  /**
@@ -322,7 +358,7 @@ export class Vector2 {
322
358
  * @returns {this}
323
359
  */
324
360
  _add(x, y) {
325
- return this.set(this.x + x, this.y + y);
361
+ return this.set(this[0] + x, this[1] + y);
326
362
  }
327
363
 
328
364
  /**
@@ -370,11 +406,11 @@ export class Vector2 {
370
406
  assert.isNumber(val, 'val');
371
407
  assert.notNaN(val, 'val');
372
408
 
373
- return this.set(this.x * val, this.y * val);
409
+ return this.set(this[0] * val, this[1] * val);
374
410
  }
375
411
 
376
412
  toJSON() {
377
- return { x: this.x, y: this.y };
413
+ return { x: this[0], y: this[1] };
378
414
  }
379
415
 
380
416
  fromJSON(json) {
@@ -391,8 +427,8 @@ export class Vector2 {
391
427
  * @param {BinaryBuffer} buffer
392
428
  */
393
429
  toBinaryBuffer(buffer) {
394
- buffer.writeFloat64(this.x);
395
- buffer.writeFloat64(this.y);
430
+ buffer.writeFloat64(this[0]);
431
+ buffer.writeFloat64(this[1]);
396
432
  }
397
433
 
398
434
  /**
@@ -411,8 +447,8 @@ export class Vector2 {
411
447
  * @param {BinaryBuffer} buffer
412
448
  */
413
449
  toBinaryBufferFloat32(buffer) {
414
- buffer.writeFloat32(this.x);
415
- buffer.writeFloat32(this.y);
450
+ buffer.writeFloat32(this[0]);
451
+ buffer.writeFloat32(this[1]);
416
452
  }
417
453
 
418
454
  /**
@@ -431,7 +467,7 @@ export class Vector2 {
431
467
  * @returns {boolean}
432
468
  */
433
469
  isZero() {
434
- return this.x === 0 && this.y === 0;
470
+ return this[0] === 0 && this[1] === 0;
435
471
  }
436
472
 
437
473
  /**
@@ -443,8 +479,8 @@ export class Vector2 {
443
479
  * @returns {this}
444
480
  */
445
481
  clamp(minX, minY, maxX, maxY) {
446
- const x = clamp(this.x, minX, maxX);
447
- const y = clamp(this.y, minY, maxY);
482
+ const x = clamp(this[0], minX, maxX);
483
+ const y = clamp(this[1], minY, maxY);
448
484
  return this.set(x, y);
449
485
  }
450
486
 
@@ -455,8 +491,8 @@ export class Vector2 {
455
491
  * @returns {this}
456
492
  */
457
493
  clampLow(lowX, lowY) {
458
- const x = max2(this.x, lowX);
459
- const y = max2(this.y, lowY);
494
+ const x = max2(this[0], lowX);
495
+ const y = max2(this[1], lowY);
460
496
  return this.set(x, y);
461
497
  }
462
498
 
@@ -467,8 +503,8 @@ export class Vector2 {
467
503
  * @returns {this}
468
504
  */
469
505
  clampHigh(highX, highY) {
470
- const x = min2(this.x, highX);
471
- const y = min2(this.y, highY);
506
+ const x = min2(this[0], highX);
507
+ const y = min2(this[1], highY);
472
508
  return this.set(x, y);
473
509
  }
474
510
 
@@ -488,8 +524,8 @@ export class Vector2 {
488
524
  * @returns {number}
489
525
  */
490
526
  _distanceSqrTo(x, y) {
491
- const dx = this.x - x;
492
- const dy = this.y - y;
527
+ const dx = this[0] - x;
528
+ const dy = this[1] - y;
493
529
  return v2_length_sqr(dx, dy);
494
530
  }
495
531
 
@@ -513,8 +549,8 @@ export class Vector2 {
513
549
  * @returns {this}
514
550
  */
515
551
  applyMatrix3(matrix3) {
516
- const x = this.x;
517
- const y = this.y;
552
+ const x = this[0];
553
+ const y = this[1];
518
554
 
519
555
  const _x = matrix3[0] * x + matrix3[3] * y + matrix3[6];
520
556
  const _y = matrix3[1] * x + matrix3[4] * y + matrix3[7];
@@ -547,8 +583,8 @@ export class Vector2 {
547
583
  * @returns {number}
548
584
  */
549
585
  manhattanDistanceTo(other) {
550
- const dx = Math.abs(this.x - other.x);
551
- const dy = Math.abs(this.y - other.y);
586
+ const dx = Math.abs(this[0] - other.x);
587
+ const dy = Math.abs(this[1] - other.y);
552
588
 
553
589
  return dx + dy;
554
590
  }
@@ -557,7 +593,7 @@ export class Vector2 {
557
593
  * @returns {number}
558
594
  */
559
595
  length() {
560
- return v2_length(this.x, this.y);
596
+ return v2_length(this[0], this[1]);
561
597
  }
562
598
 
563
599
  /**
@@ -565,7 +601,12 @@ export class Vector2 {
565
601
  * @returns {this}
566
602
  */
567
603
  normalize() {
568
- const l = this.length();
604
+ // NOTE: call v2_length directly rather than via `this.length()`.
605
+ // Float64Array exposes `length` as an exotic instance property that V8 inlines
606
+ // through a fast path which bypasses the prototype chain; once an optimized
607
+ // function caller has been specialized for Float64Array shape, `this.length`
608
+ // is read as the array length (a number) rather than our prototype method.
609
+ const l = v2_length(this[0], this[1]);
569
610
 
570
611
  if (l === 0) {
571
612
  //special case, can't normalize 0 length vector
@@ -583,8 +624,8 @@ export class Vector2 {
583
624
  * @returns {number}
584
625
  */
585
626
  hash() {
586
- const x = computeHashFloat(this.x);
587
- const y = computeHashFloat(this.y);
627
+ const x = computeHashFloat(this[0]);
628
+ const y = computeHashFloat(this[1]);
588
629
 
589
630
  return ((x << 5) - x) + y;
590
631
  }
@@ -598,8 +639,8 @@ export class Vector2 {
598
639
  const sin = Math.sin(angle);
599
640
  const cos = Math.cos(angle);
600
641
 
601
- const _x = this.x;
602
- const _y = this.y;
642
+ const _x = this[0];
643
+ const _y = this[1];
603
644
 
604
645
  const x = _x * cos - _y * sin
605
646
  const y = _x * sin + _y * cos;
@@ -614,7 +655,7 @@ export class Vector2 {
614
655
  * @returns {this}
615
656
  */
616
657
  process(processor, thisArg) {
617
- processor.call(thisArg, this.x, this.y);
658
+ processor.call(thisArg, this[0], this[1]);
618
659
 
619
660
  this.onChanged.add(processor, thisArg);
620
661
 
@@ -622,7 +663,7 @@ export class Vector2 {
622
663
  }
623
664
 
624
665
  toString() {
625
- return `Vector2{ x:${this.x}, y:${this.y} }`;
666
+ return `Vector2{ x:${this[0]}, y:${this[1]} }`;
626
667
  }
627
668
 
628
669
  /**
@@ -631,8 +672,8 @@ export class Vector2 {
631
672
  * @returns {boolean}
632
673
  */
633
674
  equals(other) {
634
- return this.x === other.x
635
- && this.y === other.y
675
+ return this[0] === other.x
676
+ && this[1] === other.y
636
677
  ;
637
678
  }
638
679
 
@@ -654,32 +695,8 @@ export class Vector2 {
654
695
  * @return {boolean}
655
696
  */
656
697
  _roughlyEquals(x, y, tolerance = EPSILON) {
657
- return epsilonEquals(this.x, x, tolerance)
658
- && epsilonEquals(this.y, y, tolerance);
659
- }
660
-
661
- get 0() {
662
- return this.x;
663
- }
664
-
665
- get 1() {
666
- return this.y;
667
- }
668
-
669
- set 0(v) {
670
- this.x = v;
671
- }
672
-
673
- set 1(v) {
674
- this.y = v;
675
- }
676
-
677
-
678
- * [Symbol.iterator]() {
679
-
680
- yield this.x;
681
- yield this.y;
682
-
698
+ return epsilonEquals(this[0], x, tolerance)
699
+ && epsilonEquals(this[1], y, tolerance);
683
700
  }
684
701
  }
685
702
 
@@ -687,36 +704,36 @@ export class Vector2 {
687
704
  * @readonly
688
705
  * @type {Vector2}
689
706
  */
690
- Vector2.up = Object.freeze(new Vector2(0, 1));
707
+ Vector2.up = new Vector2(0, 1);
691
708
 
692
709
  /**
693
710
  * @readonly
694
711
  * @type {Vector2}
695
712
  */
696
- Vector2.down = Object.freeze(new Vector2(0, -1));
713
+ Vector2.down = new Vector2(0, -1);
697
714
 
698
715
  /**
699
716
  * @readonly
700
717
  * @type {Vector2}
701
718
  */
702
- Vector2.left = Object.freeze(new Vector2(-1, 0));
719
+ Vector2.left = new Vector2(-1, 0);
703
720
 
704
721
  /**
705
722
  * @readonly
706
723
  * @type {Vector2}
707
724
  */
708
- Vector2.right = Object.freeze(new Vector2(1, 0));
725
+ Vector2.right = new Vector2(1, 0);
709
726
 
710
727
  /**
711
728
  * @readonly
712
729
  * @type {Vector2}
713
730
  */
714
- Vector2.zero = Object.freeze(new Vector2(0, 0));
731
+ Vector2.zero = new Vector2(0, 0);
715
732
  /**
716
733
  * @readonly
717
734
  * @type {Vector2}
718
735
  */
719
- Vector2.one = Object.freeze(new Vector2(1, 1));
736
+ Vector2.one = new Vector2(1, 1);
720
737
 
721
738
  /**
722
739
  * @deprecated use {@link Vector2#toArray} instead
@@ -8,12 +8,14 @@
8
8
  *
9
9
  * Iterating through a Vector3 instance will yield its components `(x, y, z)` in the corresponding order.
10
10
  *
11
+ * Backed by a `Float64Array` of length 3, so instances are usable directly as typed-array views and indexed access `v[0]`, `v[1]`, `v[2]` aliases `v.x`, `v.y`, `v.z`.
12
+ *
11
13
  * @implements Iterable<number>
12
14
  *
13
15
  * @author Alex Goldring
14
16
  * @copyright Company Named Limited (c) 2025
15
17
  */
16
- export class Vector3 implements Iterable<number> {
18
+ export class Vector3 extends Float64Array implements Iterable<number> {
17
19
  /**
18
20
  * Dot product
19
21
  * @param {Vector3|Vector4} a
@@ -41,6 +43,12 @@ export class Vector3 implements Iterable<number> {
41
43
  * @returns {Vector3}
42
44
  */
43
45
  static fromScalar(value: number): Vector3;
46
+ /**
47
+ * Ensure that built-in `TypedArray` methods (`map`, `slice`, `subarray`, ...) do not
48
+ * try to construct a `Vector3` via the buffer-form constructor.
49
+ * @returns {Float64ArrayConstructor}
50
+ */
51
+ static get [Symbol.species](): Float64ArrayConstructor;
44
52
  /**
45
53
  *
46
54
  * @param {number} [x=0]
@@ -48,24 +56,9 @@ export class Vector3 implements Iterable<number> {
48
56
  * @param {number} [z=0]
49
57
  */
50
58
  constructor(x?: number, y?: number, z?: number);
51
- /**
52
- * Do not assign directly, use {@link set} method instead
53
- * @readonly
54
- * @type {number}
55
- */
56
- readonly x: number;
57
- /**
58
- * Do not assign directly, use {@link set} method instead
59
- * @readonly
60
- * @type {number}
61
- */
62
- readonly y: number;
63
- /**
64
- * Do not assign directly, use {@link set} method instead
65
- * @readonly
66
- * @type {number}
67
- */
68
- readonly z: number;
59
+ 0: number;
60
+ 1: number;
61
+ 2: number;
69
62
  /**
70
63
  * Dispatches ( x, y, z, old_x, old_y, old_z )
71
64
  * @readonly
@@ -76,32 +69,32 @@ export class Vector3 implements Iterable<number> {
76
69
  *
77
70
  * @param {number} v
78
71
  */
79
- set 0(arg: number);
72
+ set x(arg: number);
80
73
  /**
81
74
  *
82
- * @return {number}
75
+ * @returns {number}
83
76
  */
84
- get 0(): number;
77
+ get x(): number;
85
78
  /**
86
79
  *
87
80
  * @param {number} v
88
81
  */
89
- set 1(arg: number);
82
+ set y(arg: number);
90
83
  /**
91
84
  *
92
- * @return {number}
85
+ * @returns {number}
93
86
  */
94
- get 1(): number;
87
+ get y(): number;
95
88
  /**
96
89
  *
97
90
  * @param {number} v
98
91
  */
99
- set 2(arg: number);
92
+ set z(arg: number);
100
93
  /**
101
94
  *
102
- * @return {number}
95
+ * @returns {number}
103
96
  */
104
- get 2(): number;
97
+ get z(): number;
105
98
  /**
106
99
  *
107
100
  * @param {number[]|Float32Array} array
@@ -547,7 +540,6 @@ export class Vector3 implements Iterable<number> {
547
540
  y: number;
548
541
  z: number;
549
542
  } | number): void;
550
- toString(): string;
551
543
  /**
552
544
  *
553
545
  * @param {BinaryBuffer} buffer
@@ -595,11 +587,6 @@ export class Vector3 implements Iterable<number> {
595
587
  * @type {boolean}
596
588
  */
597
589
  readonly isVector3: boolean;
598
- /**
599
- *
600
- * @return {Generator<number>}
601
- */
602
- [Symbol.iterator](): Generator<number>;
603
590
  }
604
591
  export namespace Vector3 {
605
592
  let zero: Vector3;
@@ -1 +1 @@
1
- {"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector3.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector3.js"],"names":[],"mappings":"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"}