@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.
- package/package.json +1 -1
- package/src/core/geom/2d/aabb/aabb2_intersects_ray.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/aabb2_intersects_ray.js +5 -7
- package/src/core/geom/2d/hash-grid/shg_query_elements_circle.d.ts.map +1 -1
- package/src/core/geom/2d/hash-grid/shg_query_elements_circle.js +2 -3
- package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/aabb3_intersects_line_segment.js +9 -11
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/tetrahedron_compute_circumsphere.js +6 -4
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.js +1 -2
- package/src/core/geom/Quaternion.d.ts +26 -39
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +124 -136
- package/src/core/geom/Vector2.d.ts +28 -14
- package/src/core/geom/Vector2.d.ts.map +1 -1
- package/src/core/geom/Vector2.js +114 -97
- package/src/core/geom/Vector3.d.ts +21 -34
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector3.js +131 -142
- package/src/core/geom/Vector4.d.ts +21 -30
- package/src/core/geom/Vector4.d.ts.map +1 -1
- package/src/core/geom/Vector4.js +80 -93
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.d.ts.map +1 -1
- package/src/core/geom/packing/computeBoundingSphereOfSpheres.js +23 -6
- package/src/core/geom/packing/miniball/Miniball.d.ts.map +1 -1
- package/src/core/geom/packing/miniball/Miniball.js +4 -11
- package/src/core/geom/packing/miniball/Subspan.d.ts +14 -39
- package/src/core/geom/packing/miniball/Subspan.d.ts.map +1 -1
- package/src/core/geom/packing/miniball/Subspan.js +105 -158
- package/src/core/geom/packing/miniball/miniball_compute_quality.d.ts.map +1 -1
- package/src/core/geom/packing/miniball/miniball_compute_quality.js +2 -6
- package/src/core/geom/vec/vector_axpy.d.ts +12 -0
- package/src/core/geom/vec/vector_axpy.d.ts.map +1 -0
- package/src/core/geom/vec/vector_axpy.js +15 -0
- package/src/core/geom/vec/vector_axpy_offset.d.ts +17 -0
- package/src/core/geom/vec/vector_axpy_offset.d.ts.map +1 -0
- package/src/core/geom/vec/vector_axpy_offset.js +20 -0
- package/src/core/geom/vec/vector_dot_offset.d.ts +18 -0
- package/src/core/geom/vec/vector_dot_offset.d.ts.map +1 -0
- package/src/core/geom/vec/vector_dot_offset.js +25 -0
- package/src/core/math/complex/complex_horner_eval.d.ts +16 -0
- package/src/core/math/complex/complex_horner_eval.d.ts.map +1 -0
- package/src/core/math/complex/complex_horner_eval.js +31 -0
- package/src/core/math/fabsf.d.ts +2 -3
- package/src/core/math/fabsf.d.ts.map +1 -1
- package/src/core/math/fabsf.js +3 -5
- package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.d.ts +26 -0
- package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.d.ts.map +1 -0
- package/src/core/math/linalg/cubic_residual_times_derivative_accumulate.js +43 -0
- package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.d.ts +2 -1
- package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.d.ts.map +1 -1
- package/src/core/math/linalg/eigen/matrix_eigenvalues_in_place.js +2 -1
- package/src/core/math/linalg/eigen/matrix_householder_in_place.d.ts +10 -4
- package/src/core/math/linalg/eigen/matrix_householder_in_place.d.ts.map +1 -1
- package/src/core/math/linalg/eigen/matrix_householder_in_place.js +122 -98
- package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts +2 -2
- package/src/core/math/linalg/eigen/matrix_qr_in_place.d.ts.map +1 -1
- package/src/core/math/linalg/eigen/matrix_qr_in_place.js +144 -124
- package/src/core/math/linalg/givens/givens_apply_rows.d.ts +22 -0
- package/src/core/math/linalg/givens/givens_apply_rows.d.ts.map +1 -0
- package/src/core/math/linalg/givens/givens_apply_rows.js +28 -0
- package/src/core/math/linalg/givens/givens_apply_rows_offset.d.ts +24 -0
- package/src/core/math/linalg/givens/givens_apply_rows_offset.d.ts.map +1 -0
- package/src/core/math/linalg/givens/givens_apply_rows_offset.js +30 -0
- package/src/core/math/linalg/givens/givens_rotation_coefficients.d.ts +25 -0
- package/src/core/math/linalg/givens/givens_rotation_coefficients.d.ts.map +1 -0
- package/src/core/math/linalg/givens/givens_rotation_coefficients.js +39 -0
- package/src/core/math/linalg/lu_factor_linear_system.d.ts +1 -1
- package/src/core/math/linalg/lu_factor_linear_system.d.ts.map +1 -1
- package/src/core/math/linalg/lu_factor_linear_system.js +108 -117
- package/src/core/math/linalg/lu_solve_linear_system.d.ts +1 -1
- package/src/core/math/linalg/lu_solve_linear_system.js +53 -53
- package/src/core/math/linalg/polynomial_add_into.d.ts +18 -0
- package/src/core/math/linalg/polynomial_add_into.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_add_into.js +29 -0
- package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.d.ts +6 -1
- package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.d.ts.map +1 -1
- package/src/core/math/linalg/polynomial_complex_roots_aberth_ehrlich.js +48 -50
- package/src/core/math/linalg/polynomial_cubic_derivative_eval.d.ts +15 -0
- package/src/core/math/linalg/polynomial_cubic_derivative_eval.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_cubic_derivative_eval.js +16 -0
- package/src/core/math/linalg/polynomial_cubic_horner_eval.d.ts +18 -0
- package/src/core/math/linalg/polynomial_cubic_horner_eval.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_cubic_horner_eval.js +19 -0
- package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.d.ts +13 -0
- package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_cubic_second_derivative_eval.js +14 -0
- package/src/core/math/linalg/polynomial_multiply.d.ts +21 -0
- package/src/core/math/linalg/polynomial_multiply.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_multiply.js +41 -0
- package/src/core/math/linalg/polynomial_real_roots_in_interval.d.ts +6 -1
- package/src/core/math/linalg/polynomial_real_roots_in_interval.d.ts.map +1 -1
- package/src/core/math/linalg/polynomial_real_roots_in_interval.js +29 -18
- package/src/core/math/linalg/polynomial_root_bound_cauchy.d.ts +17 -0
- package/src/core/math/linalg/polynomial_root_bound_cauchy.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_root_bound_cauchy.js +30 -0
- package/src/core/math/linalg/polynomial_scale_into.d.ts +14 -0
- package/src/core/math/linalg/polynomial_scale_into.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_scale_into.js +17 -0
- package/src/core/math/linalg/polynomial_sub_into.d.ts +18 -0
- package/src/core/math/linalg/polynomial_sub_into.d.ts.map +1 -0
- package/src/core/math/linalg/polynomial_sub_into.js +29 -0
- package/src/core/math/linalg/solve_linear_system.d.ts +1 -1
- package/src/core/math/linalg/solve_linear_system.js +1 -1
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts +4 -4
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.d.ts.map +1 -1
- package/src/core/math/linalg/solve_linear_system_GEPP_2x2.js +96 -91
- package/src/core/math/solveQuadratic.d.ts +2 -2
- package/src/core/math/solveQuadratic.d.ts.map +1 -1
- package/src/core/math/solveQuadratic.js +1 -1
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.d.ts +18 -10
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite.js +18 -10
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.d.ts +13 -6
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_1d.js +16 -11
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.d.ts +25 -3
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_2d.js +97 -142
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.d.ts +30 -4
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_intersection_spline3_hermite_nd.js +188 -132
- package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.d.ts +7 -3
- package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.d.ts.map +1 -1
- package/src/core/math/spline/spline3_hermite_intersects_spline3_hermite.js +35 -6
- package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.d.ts +17 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.d.ts.map +1 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SCIENTIFIC.js +87 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts +13 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SI.d.ts.map +1 -0
- package/src/core/science/units/MEASUREMENT_UNITS_SI.js +28 -0
- package/src/core/science/units/NamedUnit.d.ts +38 -0
- package/src/core/science/units/NamedUnit.d.ts.map +1 -0
- package/src/core/science/units/NamedUnit.js +48 -0
- package/src/core/science/units/UNIT_DIMENSION_MAPPING.d.ts +14 -0
- package/src/core/science/units/UNIT_DIMENSION_MAPPING.d.ts.map +1 -0
- package/src/core/science/units/UNIT_DIMENSION_MAPPING.js +29 -0
- package/src/core/science/units/UnitDimension.d.ts +26 -0
- package/src/core/science/units/UnitDimension.d.ts.map +1 -0
- package/src/core/science/units/UnitDimension.js +28 -0
- package/src/core/science/units/UnitMatrix.d.ts +117 -0
- package/src/core/science/units/UnitMatrix.d.ts.map +1 -0
- package/src/core/science/units/UnitMatrix.js +251 -0
- package/src/core/science/units/format_quantity.d.ts +25 -0
- package/src/core/science/units/format_quantity.d.ts.map +1 -0
- package/src/core/science/units/format_quantity.js +74 -0
- package/src/core/science/units/magnitude_prefix.d.ts +57 -0
- package/src/core/science/units/magnitude_prefix.d.ts.map +1 -0
- package/src/core/science/units/magnitude_prefix.js +127 -0
- package/src/core/science/units/si/AMPERE.d.ts +7 -0
- package/src/core/science/units/si/AMPERE.d.ts.map +1 -0
- package/src/core/science/units/si/AMPERE.js +13 -0
- package/src/core/science/units/si/CANDELA.d.ts +7 -0
- package/src/core/science/units/si/CANDELA.d.ts.map +1 -0
- package/src/core/science/units/si/CANDELA.js +13 -0
- package/src/core/science/units/si/DIMENSIONLESS.d.ts +8 -0
- package/src/core/science/units/si/DIMENSIONLESS.d.ts.map +1 -0
- package/src/core/science/units/si/DIMENSIONLESS.js +14 -0
- package/src/core/science/units/si/KELVIN.d.ts +7 -0
- package/src/core/science/units/si/KELVIN.d.ts.map +1 -0
- package/src/core/science/units/si/KELVIN.js +13 -0
- package/src/core/science/units/si/KILOGRAM.d.ts +7 -0
- package/src/core/science/units/si/KILOGRAM.d.ts.map +1 -0
- package/src/core/science/units/si/KILOGRAM.js +13 -0
- package/src/core/science/units/si/METER.d.ts +7 -0
- package/src/core/science/units/si/METER.d.ts.map +1 -0
- package/src/core/science/units/si/METER.js +13 -0
- package/src/core/science/units/si/MOLE.d.ts +7 -0
- package/src/core/science/units/si/MOLE.d.ts.map +1 -0
- package/src/core/science/units/si/MOLE.js +13 -0
- package/src/core/science/units/si/SECOND.d.ts +7 -0
- package/src/core/science/units/si/SECOND.d.ts.map +1 -0
- package/src/core/science/units/si/SECOND.js +13 -0
- package/src/core/science/units/si/derived/BECQUEREL.d.ts +10 -0
- package/src/core/science/units/si/derived/BECQUEREL.d.ts.map +1 -0
- package/src/core/science/units/si/derived/BECQUEREL.js +16 -0
- package/src/core/science/units/si/derived/COULOMB.d.ts +7 -0
- package/src/core/science/units/si/derived/COULOMB.d.ts.map +1 -0
- package/src/core/science/units/si/derived/COULOMB.js +13 -0
- package/src/core/science/units/si/derived/FARAD.d.ts +7 -0
- package/src/core/science/units/si/derived/FARAD.d.ts.map +1 -0
- package/src/core/science/units/si/derived/FARAD.js +13 -0
- package/src/core/science/units/si/derived/GRAY.d.ts +10 -0
- package/src/core/science/units/si/derived/GRAY.d.ts.map +1 -0
- package/src/core/science/units/si/derived/GRAY.js +16 -0
- package/src/core/science/units/si/derived/HENRY.d.ts +7 -0
- package/src/core/science/units/si/derived/HENRY.d.ts.map +1 -0
- package/src/core/science/units/si/derived/HENRY.js +13 -0
- package/src/core/science/units/si/derived/HERTZ.d.ts +10 -0
- package/src/core/science/units/si/derived/HERTZ.d.ts.map +1 -0
- package/src/core/science/units/si/derived/HERTZ.js +16 -0
- package/src/core/science/units/si/derived/JOULE.d.ts +7 -0
- package/src/core/science/units/si/derived/JOULE.d.ts.map +1 -0
- package/src/core/science/units/si/derived/JOULE.js +13 -0
- package/src/core/science/units/si/derived/KATAL.d.ts +7 -0
- package/src/core/science/units/si/derived/KATAL.d.ts.map +1 -0
- package/src/core/science/units/si/derived/KATAL.js +13 -0
- package/src/core/science/units/si/derived/LUMEN.d.ts +8 -0
- package/src/core/science/units/si/derived/LUMEN.d.ts.map +1 -0
- package/src/core/science/units/si/derived/LUMEN.js +14 -0
- package/src/core/science/units/si/derived/LUX.d.ts +7 -0
- package/src/core/science/units/si/derived/LUX.d.ts.map +1 -0
- package/src/core/science/units/si/derived/LUX.js +13 -0
- package/src/core/science/units/si/derived/NEWTON.d.ts +7 -0
- package/src/core/science/units/si/derived/NEWTON.d.ts.map +1 -0
- package/src/core/science/units/si/derived/NEWTON.js +13 -0
- package/src/core/science/units/si/derived/OHM.d.ts +7 -0
- package/src/core/science/units/si/derived/OHM.d.ts.map +1 -0
- package/src/core/science/units/si/derived/OHM.js +13 -0
- package/src/core/science/units/si/derived/PASCAL.d.ts +7 -0
- package/src/core/science/units/si/derived/PASCAL.d.ts.map +1 -0
- package/src/core/science/units/si/derived/PASCAL.js +13 -0
- package/src/core/science/units/si/derived/SIEMENS.d.ts +7 -0
- package/src/core/science/units/si/derived/SIEMENS.d.ts.map +1 -0
- package/src/core/science/units/si/derived/SIEMENS.js +13 -0
- package/src/core/science/units/si/derived/SIEVERT.d.ts +10 -0
- package/src/core/science/units/si/derived/SIEVERT.d.ts.map +1 -0
- package/src/core/science/units/si/derived/SIEVERT.js +16 -0
- package/src/core/science/units/si/derived/TESLA.d.ts +7 -0
- package/src/core/science/units/si/derived/TESLA.d.ts.map +1 -0
- package/src/core/science/units/si/derived/TESLA.js +13 -0
- package/src/core/science/units/si/derived/VOLT.d.ts +7 -0
- package/src/core/science/units/si/derived/VOLT.d.ts.map +1 -0
- package/src/core/science/units/si/derived/VOLT.js +13 -0
- package/src/core/science/units/si/derived/WATT.d.ts +7 -0
- package/src/core/science/units/si/derived/WATT.d.ts.map +1 -0
- package/src/core/science/units/si/derived/WATT.js +13 -0
- package/src/core/science/units/si/derived/WEBER.d.ts +7 -0
- package/src/core/science/units/si/derived/WEBER.d.ts.map +1 -0
- package/src/core/science/units/si/derived/WEBER.js +13 -0
- package/src/core/science/units/unit_matrix_to_string.d.ts +29 -0
- package/src/core/science/units/unit_matrix_to_string.d.ts.map +1 -0
- package/src/core/science/units/unit_matrix_to_string.js +403 -0
- package/src/engine/graphics/geometry/MikkT/CalcTexArea.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/CalcTexArea.js +1 -2
- package/src/engine/graphics/geometry/MikkT/InitTriInfo.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/InitTriInfo.js +6 -7
package/src/core/geom/Vector2.js
CHANGED
|
@@ -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
|
|
85
|
-
array[offset + 1] = this
|
|
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
|
|
110
|
-
const oldY = this
|
|
145
|
+
const oldX = this[0];
|
|
146
|
+
const oldY = this[1];
|
|
111
147
|
|
|
112
148
|
if (oldX !== x || oldY !== y) {
|
|
113
|
-
this
|
|
114
|
-
this
|
|
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
|
|
139
|
-
this
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
213
|
-
const y = Math.round(this
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
279
|
-
const y = max2(this
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
409
|
+
return this.set(this[0] * val, this[1] * val);
|
|
374
410
|
}
|
|
375
411
|
|
|
376
412
|
toJSON() {
|
|
377
|
-
return { x: this
|
|
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
|
|
395
|
-
buffer.writeFloat64(this
|
|
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
|
|
415
|
-
buffer.writeFloat32(this
|
|
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
|
|
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
|
|
447
|
-
const y = clamp(this
|
|
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
|
|
459
|
-
const y = max2(this
|
|
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
|
|
471
|
-
const y = min2(this
|
|
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
|
|
492
|
-
const dy = this
|
|
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
|
|
517
|
-
const y = this
|
|
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
|
|
551
|
-
const dy = Math.abs(this
|
|
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
|
|
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
|
-
|
|
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
|
|
587
|
-
const y = computeHashFloat(this
|
|
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
|
|
602
|
-
const _y = this
|
|
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
|
|
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
|
|
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
|
|
635
|
-
&& this
|
|
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
|
|
658
|
-
&& epsilonEquals(this
|
|
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 =
|
|
707
|
+
Vector2.up = new Vector2(0, 1);
|
|
691
708
|
|
|
692
709
|
/**
|
|
693
710
|
* @readonly
|
|
694
711
|
* @type {Vector2}
|
|
695
712
|
*/
|
|
696
|
-
Vector2.down =
|
|
713
|
+
Vector2.down = new Vector2(0, -1);
|
|
697
714
|
|
|
698
715
|
/**
|
|
699
716
|
* @readonly
|
|
700
717
|
* @type {Vector2}
|
|
701
718
|
*/
|
|
702
|
-
Vector2.left =
|
|
719
|
+
Vector2.left = new Vector2(-1, 0);
|
|
703
720
|
|
|
704
721
|
/**
|
|
705
722
|
* @readonly
|
|
706
723
|
* @type {Vector2}
|
|
707
724
|
*/
|
|
708
|
-
Vector2.right =
|
|
725
|
+
Vector2.right = new Vector2(1, 0);
|
|
709
726
|
|
|
710
727
|
/**
|
|
711
728
|
* @readonly
|
|
712
729
|
* @type {Vector2}
|
|
713
730
|
*/
|
|
714
|
-
Vector2.zero =
|
|
731
|
+
Vector2.zero = new Vector2(0, 0);
|
|
715
732
|
/**
|
|
716
733
|
* @readonly
|
|
717
734
|
* @type {Vector2}
|
|
718
735
|
*/
|
|
719
|
-
Vector2.one =
|
|
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
|
-
|
|
53
|
-
|
|
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
|
|
72
|
+
set x(arg: number);
|
|
80
73
|
/**
|
|
81
74
|
*
|
|
82
|
-
* @
|
|
75
|
+
* @returns {number}
|
|
83
76
|
*/
|
|
84
|
-
get
|
|
77
|
+
get x(): number;
|
|
85
78
|
/**
|
|
86
79
|
*
|
|
87
80
|
* @param {number} v
|
|
88
81
|
*/
|
|
89
|
-
set
|
|
82
|
+
set y(arg: number);
|
|
90
83
|
/**
|
|
91
84
|
*
|
|
92
|
-
* @
|
|
85
|
+
* @returns {number}
|
|
93
86
|
*/
|
|
94
|
-
get
|
|
87
|
+
get y(): number;
|
|
95
88
|
/**
|
|
96
89
|
*
|
|
97
90
|
* @param {number} v
|
|
98
91
|
*/
|
|
99
|
-
set
|
|
92
|
+
set z(arg: number);
|
|
100
93
|
/**
|
|
101
94
|
*
|
|
102
|
-
* @
|
|
95
|
+
* @returns {number}
|
|
103
96
|
*/
|
|
104
|
-
get
|
|
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":"AAeA
|
|
1
|
+
{"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector3.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;GAgBG;AACH,8DALwB,MAAM;IAuhC1B;;;;;OAKG;IACH,cAJW,OAAO,UAAQ,KACf,OAAO,UAAQ,GACb,MAAM,CAIlB;IAED;;;;;OAKG;IACH,mBAJW,OAAO,KACP,OAAO,GACL,MAAM,CAIlB;IAED;;;;;OAKG;IACH,wBAJW,MAAM,EAAE,WACR,MAAM,GACJ,OAAO,CAQnB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,OAAO,CAInB;IA5hCD;;;;OAIG;IACH,uDAEC;IArCD;;;;;OAKG;IACH,gBAJW,MAAM,MACN,MAAM,MACN,MAAM,EAwBhB;IAVG,UAAW;IACX,UAAW;IACX,UAAW;IAEX;;;;OAIG;IACH,oBAFU,OAAO,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC,CAE9B;IAoBjC;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAkBD;;;OAGG;IACH,mBAEC;IAdD;;;OAGG;IACH,gBAEC;IAUD;;;;;OAKG;IACH,iBAJW,MAAM,EAAE,GAAC,YAAY,WACrB,MAAM,GACJ,IAAI,CAWhB;IAED;;;;OAIG;IACH,gBAJW,MAAM,EAAE,GAAC,YAAY,iBAAU,WAC/B,MAAM,GACJ,MAAM,EAAE,CAUpB;IAED;;;;;;OAMG;IACH,OALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAgChB;IAED;;;;OAIG;IACH,aAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,QAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;OAKG;IACH,SAJW,MAAM,KACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;OAKG;IACH,SAJW,MAAM,KACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;OAKG;IACH,SAJW,MAAM,KACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;OAKG;IACH,cAJW,OAAO,KACP,OAAO,GACL,IAAI,CAQhB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,QALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAIhB;IAGD;;;;;OAKG;IACH,cAJW,OAAO,KACP,OAAO,GACL,IAAI,CAQhB;IAED;;;;OAIG;IACH,WAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,QALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;;;OAMG;IACH,aALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,gBAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;;;OAKG;IACH,mBAJW,OAAO,KACP,OAAO,GACL,IAAI,CAQhB;IAED;;;;;;OAMG;IACH,WALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,iBAJW,OAAO,KACP,OAAO,GACN,OAAO,CAQlB;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,IAAI,CAIhB;IAED;;;OAGG;IACH,SAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,IAAI,CAOhB;IAED;;;OAGG;IACH,UAFa,OAAO,CAOnB;IAED;;;;OAIG;IACH,aAHW,OAAO,GACL,IAAI,CAIhB;IAED;;;;;OAKG;IACH,oBAJW,OAAO,UACP,OAAO,GACL,IAAI,CAWhB;IAED;;;;;;;;;OASG;IACH,kBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;OAGG;IACH,OAFa,IAAI,CAQhB;IAED;;;;OAIG;IACH,OAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;OAGG;IACH,UAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,aAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,aAFa,IAAI,CAkBhB;IAED;;;OAGG;IACH,6BAHW,MAAM,GACL,OAAO,CAMlB;IAED;;;;OAIG;IACH,YAHW,OAAO,GAAC;QAAC,CAAC,EAAC,MAAM,CAAC;QAAA,CAAC,EAAC,MAAM,CAAC;QAAA,CAAC,EAAC,MAAM,CAAA;KAAC,GAClC,IAAI,CAIhB;IAGD;;;OAGG;IACH,UAFa,IAAI,CAQhB;IAED;;;;OAIG;IACH,kBAHW,OAAO,GACL,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,eALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,MAAM,CAOjB;IAED;;;;OAIG;IACH,qBAHW,OAAO,GACL,MAAM,CAMlB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,MAAM,CAQjB;IAED;;;;OAIG;IACH,eAHW,OAAO,GACL,MAAM,CAOlB;IAED;;;;OAIG;IACH,gCAFa,IAAI,CA8BhB;IAED;;;;OAIG;IACH,QAFa,IAAI,CAQhB;IAED;;;;;OAKG;IACH,YAJW,OAAO,YACP,MAAM,GACJ,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,eALW,OAAO,KACP,OAAO,YACP,MAAM,GACJ,IAAI,CAMhB;IAED;;;;;OAKG;IACH,aAJW,OAAO,YACP,MAAM,GACL,IAAI,CAIf;IAED;;;;;;OAMG;IACH,gBALW,OAAO,KACP,OAAO,YACP,MAAM,GACJ,IAAI,CAKhB;IAGD;;;;OAIG;IACH,iBAHW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,GACrC,IAAI,CAchB;IAED;;;;;OAKG;IACH,0BAHW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,GACrC,IAAI,CAoBhB;IAED;;;;OAIG;IACH,kBAHW,MAAM,EAAE,GAAC,YAAY,GACnB,IAAI,CAYhB;IAGD;;;;OAIG;IACH,+BAHW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,GACrC,IAAI,CAShB;IAED;;;;OAIG;IACH,cAHW,OAAO,GACL,OAAO,CAInB;IAED;;;;;;OAMG;IACH,WALW,MAAM,KACN,MAAM,KACN,MAAM,GACL,OAAO,CAIlB;IAED;;;;;OAKG;IACH,qBAJW,OAAO,cACP,MAAM,GACL,OAAO,CAIlB;IAED;;;;;;;OAOG;IACH,kBANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,MAAM,GACL,OAAO,CAMlB;IAED;;;OAGG;IACH,SAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,SAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,QAFa,IAAI,CAQhB;IAED;;;;OAIG;IACH,0BAHW,OAAO,GACL,IAAI,CAYhB;IAED;;;;;;;;;OASG;IACH,oBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,IAAI,CAkBhB;IAED;;;;;;;;;OASG;IACH,+BALW,MAAM,OACN,MAAM,SACN,MAAM,GACJ,IAAI,CAuBhB;IAED;;;;;OAKG;IACH,6CAFa,OAAO,CASnB;IAED;;;;MAMC;IAED;;;OAGG;IACH,eAFW;QAAC,CAAC,EAAC,MAAM,CAAC;QAAC,CAAC,EAAC,MAAM,CAAC;QAAC,CAAC,EAAC,MAAM,CAAA;KAAC,GAAC,MAAM,QAS/C;IAMD;;;;OAIG;IACH,2CAIC;IAED;;;;OAIG;IACH,6CAMC;IAED;;;;OAIG;IACH,kDAIC;IAED;;;;OAIG;IACH,oDAMC;IAED,eAMC;IAgDL,2BA3fe,OAAO,KACL,MAAM,CA0fY;IAEnC,gBAllBiB,MAAM,CAklBG;IAC1B;;;OAGG;IACH,gCA7+Be,MAAM,EAAE,GAAC,YAAY,WACrB,MAAM,KACJ,IAAI,CA2+BU;IAC/B;;;OAGG;IACH,gCAl+Be,MAAM,EAAE,GAAC,YAAY,iBAAU,WAC/B,MAAM,KACJ,MAAM,EAAE,CAg+BK;IAC9B;;;OAGG;IACH,2BAv+Be,MAAM,EAAE,GAAC,YAAY,iBAAU,WAC/B,MAAM,KACJ,MAAM,EAAE,CAq+BA;IA2DzB;;;OAGG;IACH,oBAFU,OAAO,CAEU;CApF1B;;cA0BS,OAAO;aAOP,OAAO;mBAOP,OAAO;YAMP,OAAO;cAMP,OAAO;cAMP,OAAO;eAMP,OAAO;iBAMP,OAAO;cAMP,OAAO;kBAYP,MAAM;;;mBAnrCG,4BAA4B"}
|