@woosh/meep-engine 2.101.0 → 2.103.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 (112) hide show
  1. package/build/meep.cjs +149 -127
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +149 -127
  4. package/package.json +1 -1
  5. package/src/core/__module.d.ts +4 -0
  6. package/src/core/__module.js +4 -0
  7. package/src/core/geom/2d/circle/Circle.d.ts +0 -8
  8. package/src/core/geom/2d/circle/Circle.d.ts.map +1 -1
  9. package/src/core/geom/2d/circle/Circle.js +85 -85
  10. package/src/core/geom/3d/cone/computeConePlaneSide.js +1 -1
  11. package/src/core/geom/3d/mat4/{allocate_transform_m4.d.ts → allocate_m4.d.ts} +2 -2
  12. package/src/core/geom/3d/mat4/allocate_m4.d.ts.map +1 -0
  13. package/src/core/geom/3d/mat4/{allocate_transform_m4.js → allocate_m4.js} +1 -1
  14. package/src/core/geom/ConicRay.d.ts +3 -1
  15. package/src/core/geom/ConicRay.d.ts.map +1 -1
  16. package/src/core/geom/ConicRay.js +7 -5
  17. package/src/core/geom/Vector1.d.ts.map +1 -1
  18. package/src/core/geom/Vector1.js +3 -0
  19. package/src/core/geom/Vector2.d.ts.map +1 -1
  20. package/src/core/geom/Vector2.js +6 -3
  21. package/src/core/geom/Vector3.js +1 -1
  22. package/src/core/geom/Vector4.d.ts.map +1 -1
  23. package/src/core/geom/Vector4.js +13 -92
  24. package/src/core/geom/vec3/v3_angle_cos_between.spec.d.ts +2 -0
  25. package/src/core/geom/vec3/v3_angle_cos_between.spec.d.ts.map +1 -0
  26. package/src/core/geom/vec3/v3_angle_cos_between.spec.js +124 -0
  27. package/src/core/geom/vec3/v3_distance_above_plane.d.ts +13 -4
  28. package/src/core/geom/vec3/v3_distance_sqr.d.ts +12 -1
  29. package/src/core/geom/vec3/v3_length.d.ts +9 -1
  30. package/src/core/geom/vec4/v4_distance_sqr.d.ts +14 -0
  31. package/src/core/geom/vec4/v4_distance_sqr.d.ts.map +1 -0
  32. package/src/core/geom/vec4/v4_distance_sqr.js +20 -0
  33. package/src/core/geom/vec4/v4_dot.d.ts +14 -0
  34. package/src/core/geom/vec4/v4_dot.d.ts.map +1 -0
  35. package/src/core/geom/vec4/v4_dot.js +19 -0
  36. package/src/core/geom/vec4/v4_length_sqr.d.ts +10 -0
  37. package/src/core/geom/vec4/v4_length_sqr.d.ts.map +1 -0
  38. package/src/core/geom/vec4/v4_length_sqr.js +11 -0
  39. package/src/core/geom/vec4/v4_multiply_mat4.d.ts +8 -0
  40. package/src/core/geom/vec4/v4_multiply_mat4.d.ts.map +1 -0
  41. package/src/core/geom/vec4/v4_multiply_mat4.js +42 -0
  42. package/src/core/lang/reactive/compileReactiveExpression.d.ts.map +1 -1
  43. package/src/core/lang/reactive/compileReactiveExpression.js +1 -3
  44. package/src/core/lang/reactive/pegjs/ReactivePegCompiler.d.ts.map +1 -1
  45. package/src/core/lang/reactive/pegjs/ReactivePegCompiler.js +11 -5
  46. package/src/core/math/PI_RECIPROCAL.d.ts +6 -0
  47. package/src/core/math/PI_RECIPROCAL.d.ts.map +1 -0
  48. package/src/core/math/PI_RECIPROCAL.js +5 -0
  49. package/src/core/math/newton_solver_1d.d.ts +4 -3
  50. package/src/core/math/newton_solver_1d.d.ts.map +1 -1
  51. package/src/core/math/newton_solver_1d.js +4 -3
  52. package/src/core/math/physics/brdf/D_GGX.d.ts.map +1 -1
  53. package/src/core/math/physics/brdf/D_GGX.js +4 -1
  54. package/src/core/math/physics/brdf/brdf_burley.d.ts.map +1 -1
  55. package/src/core/math/physics/brdf/brdf_burley.js +5 -1
  56. package/src/core/math/physics/irradiance/interpolate_irradiance_smith.d.ts.map +1 -1
  57. package/src/core/math/physics/irradiance/interpolate_irradiance_smith.js +3 -3
  58. package/src/core/primitives/strings/insert_after.spec.d.ts +2 -0
  59. package/src/core/primitives/strings/insert_after.spec.d.ts.map +1 -0
  60. package/src/core/primitives/strings/insert_after.spec.js +16 -0
  61. package/src/core/primitives/strings/insert_before.spec.d.ts +2 -0
  62. package/src/core/primitives/strings/insert_before.spec.d.ts.map +1 -0
  63. package/src/core/primitives/strings/insert_before.spec.js +16 -0
  64. package/src/core/process/executor/ConcurrentExecutor.d.ts.map +1 -1
  65. package/src/core/process/executor/ConcurrentExecutor.js +10 -4
  66. package/src/core/time/current_time_in_seconds.d.ts.map +1 -1
  67. package/src/core/time/current_time_in_seconds.js +1 -1
  68. package/src/engine/animation/curve/compute_curve_aabb.d.ts.map +1 -1
  69. package/src/engine/animation/curve/compute_curve_aabb.js +19 -16
  70. package/src/engine/ecs/fow/FogOfWar.d.ts.map +1 -1
  71. package/src/engine/ecs/fow/FogOfWar.js +12 -12
  72. package/src/engine/ecs/fow/FogOfWar.spec.js +5 -6
  73. package/src/engine/ecs/transform/Transform.d.ts.map +1 -1
  74. package/src/engine/ecs/transform/Transform.js +2 -2
  75. package/src/engine/google/loadGTAG.d.ts +7 -0
  76. package/src/engine/google/loadGTAG.d.ts.map +1 -0
  77. package/src/engine/google/loadGTAG.js +32 -0
  78. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField.d.ts.map +1 -1
  79. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField.js +6 -1
  80. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField_Chamfer.d.ts.map +1 -1
  81. package/src/engine/graphics/texture/sampler/distance/computeUnsignedDistanceField_Chamfer.js +17 -1
  82. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.d.ts +4 -0
  83. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.d.ts.map +1 -1
  84. package/src/engine/graphics/texture/virtual/tile/VirtualTextureTile.js +4 -0
  85. package/src/engine/graphics/trail/x/NOTES.md +3 -0
  86. package/src/engine/graphics/trail/x/RibbonMaterialX.d.ts +11 -2
  87. package/src/engine/graphics/trail/x/RibbonMaterialX.d.ts.map +1 -1
  88. package/src/engine/graphics/trail/x/RibbonMaterialX.js +28 -13
  89. package/src/engine/graphics/util/projectSphere.js +4 -4
  90. package/src/engine/metrics/GoogleAnalyticsMetrics.d.ts +2 -1
  91. package/src/engine/metrics/GoogleAnalyticsMetrics.d.ts.map +1 -1
  92. package/src/engine/metrics/GoogleAnalyticsMetrics.js +4 -39
  93. package/src/engine/notify/NotificationLog.d.ts +1 -2
  94. package/src/engine/notify/NotificationLog.d.ts.map +1 -1
  95. package/src/engine/notify/NotificationLog.js +33 -32
  96. package/src/core/geom/3d/mat4/allocate_transform_m4.d.ts.map +0 -1
  97. package/src/core/lang/reactive/nearley/Reactive.ne +0 -87
  98. package/src/engine/compression/CompressionService.d.ts +0 -19
  99. package/src/engine/compression/CompressionService.d.ts.map +0 -1
  100. package/src/engine/compression/CompressionService.js +0 -144
  101. package/src/engine/graphics/trail/CodeflowTrailMaterial.d.ts +0 -4
  102. package/src/engine/graphics/trail/CodeflowTrailMaterial.d.ts.map +0 -1
  103. package/src/engine/graphics/trail/CodeflowTrailMaterial.js +0 -134
  104. package/src/engine/graphics/trail/TemporalPath.d.ts +0 -39
  105. package/src/engine/graphics/trail/TemporalPath.d.ts.map +0 -1
  106. package/src/engine/graphics/trail/TemporalPath.js +0 -129
  107. package/src/engine/graphics/trail/TemporalPath.spec.d.ts +0 -2
  108. package/src/engine/graphics/trail/TemporalPath.spec.d.ts.map +0 -1
  109. package/src/engine/graphics/trail/TemporalPath.spec.js +0 -5
  110. package/src/engine/graphics/util/composeMatrix4RotationScale.d.ts +0 -9
  111. package/src/engine/graphics/util/composeMatrix4RotationScale.d.ts.map +0 -1
  112. package/src/engine/graphics/util/composeMatrix4RotationScale.js +0 -14
package/build/meep.cjs CHANGED
@@ -806,7 +806,7 @@ const MATRIX_BYTE_SIZE = 4 * 16;
806
806
  * custom Float32Array allocator, allocated memory in continuous chunks
807
807
  * @returns {Float32Array}
808
808
  */
809
- function allocate_transform_m4() {
809
+ function allocate_m4() {
810
810
  if (transform_bucket_cursor >= TRANSFORM_ALLOCATOR_BUCKET_CAPACITY) {
811
811
  transform_bucket = new ArrayBuffer(TRANSFORM_ALLOCATOR_BUCKET_CAPACITY * MATRIX_BYTE_SIZE);
812
812
  transform_bucket_cursor = 0;
@@ -2478,7 +2478,7 @@ let Vector3$1 = class Vector3 {
2478
2478
  }
2479
2479
 
2480
2480
  /**
2481
- * @param {number} [squaredError=0.01]
2481
+ * @param {number} [squaredError]
2482
2482
  * @return {boolean}
2483
2483
  */
2484
2484
  isNormalized(squaredError = 0.01) {
@@ -4705,7 +4705,7 @@ class Transform {
4705
4705
  * @readonly
4706
4706
  * @type {Float32Array}
4707
4707
  */
4708
- matrix = allocate_transform_m4();
4708
+ matrix = allocate_m4();
4709
4709
 
4710
4710
  /**
4711
4711
  * Various bit flags, see {@link TransformFlags}
@@ -47474,10 +47474,8 @@ function v2_dot(x0, y0, x1, y1) {
47474
47474
  class Vector2 {
47475
47475
  /**
47476
47476
  *
47477
- * @param {number} [x=0
47477
+ * @param {number} [x=0]
47478
47478
  * @param {number} [y=0]
47479
- * @property {number} x
47480
- * @property {number} y
47481
47479
  * @constructor
47482
47480
  */
47483
47481
  constructor(x = 0, y = 0) {
@@ -50398,6 +50396,7 @@ class Vector1 extends Number {
50398
50396
  * @param {number} x
50399
50397
  */
50400
50398
  setSilent(x) {
50399
+
50401
50400
  this.x = x;
50402
50401
  }
50403
50402
 
@@ -50637,93 +50636,6 @@ function computeHashIntegerArray(...value) {
50637
50636
  */
50638
50637
 
50639
50638
 
50640
- /**
50641
- *
50642
- * @param {number[]} result
50643
- * @param {number[]} input
50644
- * @param {number[]} mat4
50645
- */
50646
- function v4_applyMatrix4(result, input, mat4) {
50647
- const a0 = mat4[0];
50648
- const a1 = mat4[1];
50649
- const a2 = mat4[2];
50650
- const a3 = mat4[3];
50651
-
50652
- const b0 = mat4[4];
50653
- const b1 = mat4[5];
50654
- const b2 = mat4[6];
50655
- const b3 = mat4[7];
50656
-
50657
- const c0 = mat4[8];
50658
- const c1 = mat4[9];
50659
- const c2 = mat4[10];
50660
- const c3 = mat4[11];
50661
-
50662
- const d0 = mat4[12];
50663
- const d1 = mat4[13];
50664
- const d2 = mat4[14];
50665
- const d3 = mat4[15];
50666
-
50667
- const _x = input[0];
50668
- const _y = input[1];
50669
- const _z = input[2];
50670
- const _w = input[3];
50671
-
50672
- const x = a0 * _x + b0 * _y + c0 * _z + d0 * _w;
50673
- const y = a1 * _x + b1 * _y + c1 * _z + d1 * _w;
50674
- const z = a2 * _x + b2 * _y + c2 * _z + d2 * _w;
50675
- const w = a3 * _x + b3 * _y + c3 * _z + d3 * _w;
50676
-
50677
- result[0] = x;
50678
- result[1] = y;
50679
- result[2] = z;
50680
- result[3] = w;
50681
- }
50682
-
50683
- /**
50684
- *
50685
- * @param {number} x0
50686
- * @param {number} y0
50687
- * @param {number} z0
50688
- * @param {number} w0
50689
- * @param {number} x1
50690
- * @param {number} y1
50691
- * @param {number} z1
50692
- * @param {number} w1
50693
- * @returns {number}
50694
- */
50695
- function v4_dot(x0, y0, z0, w0, x1, y1, z1, w1) {
50696
- return (x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1);
50697
- }
50698
-
50699
- /**
50700
- *
50701
- * @param {number} x
50702
- * @param {number} y
50703
- * @param {number} z
50704
- * @param {number} w
50705
- * @returns {number}
50706
- */
50707
- function v4_length_sqr(x, y, z, w) {
50708
- return x * x + y * y + z * z + w * w;
50709
- }
50710
-
50711
- /**
50712
- *
50713
- * @param {number} x0
50714
- * @param {number} y0
50715
- * @param {number} z0
50716
- * @param {number} w0
50717
- * @param {number} x1
50718
- * @param {number} y1
50719
- * @param {number} z1
50720
- * @param {number} w1
50721
- * @returns {number}
50722
- */
50723
- function v4_distance_sqr(x0, y0, z0, w0, x1, y1, z1, w1) {
50724
- return v4_length_sqr(x0 - x1, y0 - y1, z0 - z1, w0 - w1);
50725
- }
50726
-
50727
50639
  class Vector4 {
50728
50640
  /**
50729
50641
  *
@@ -50808,7 +50720,10 @@ class Vector4 {
50808
50720
  this.w = w;
50809
50721
 
50810
50722
  if (this.onChanged.hasHandlers()) {
50811
- this.onChanged.dispatch(x, y, z, w, _x, _y, _z, _w);
50723
+ this.onChanged.send8(
50724
+ x, y, z, w,
50725
+ _x, _y, _z, _w
50726
+ );
50812
50727
  }
50813
50728
  }
50814
50729
 
@@ -50892,7 +50807,12 @@ class Vector4 {
50892
50807
  * @returns {Vector4}
50893
50808
  */
50894
50809
  add3(v3) {
50895
- return this.set(this.x + v3.x, this.y + v3.y, this.z + v3.z, this.w);
50810
+ return this.set(
50811
+ this.x + v3.x,
50812
+ this.y + v3.y,
50813
+ this.z + v3.z,
50814
+ this.w
50815
+ );
50896
50816
  }
50897
50817
 
50898
50818
  /**
@@ -83485,7 +83405,7 @@ class ModuleRegistry {
83485
83405
  * @param {TaskGroup|Task} t
83486
83406
  * @returns {boolean}
83487
83407
  */
83488
- function isGroup(t) {
83408
+ function isGroupTask(t) {
83489
83409
  return t.children instanceof Array;
83490
83410
  }
83491
83411
 
@@ -83493,7 +83413,12 @@ function isGroup(t) {
83493
83413
  * @class
83494
83414
  */
83495
83415
  class ConcurrentExecutor {
83416
+ /**
83417
+ * How many time-slice cycles have been executed this far. This is a monotonically increasing counter
83418
+ * @type {number}
83419
+ */
83496
83420
  #cycle_count = 0;
83421
+
83497
83422
  /**
83498
83423
  * Handle of the last scheduled `setTimeout`
83499
83424
  * @type {number}
@@ -83605,7 +83530,7 @@ class ConcurrentExecutor {
83605
83530
  const child = children[i];
83606
83531
  child.on.completed.add(subTaskCompleted);
83607
83532
  child.on.failed.add(subTaskFailed);
83608
- if (isGroup(child)) {
83533
+ if (isGroupTask(child)) {
83609
83534
  this.runGroup(child);
83610
83535
  } else {
83611
83536
  this.run(child);
@@ -83628,7 +83553,7 @@ class ConcurrentExecutor {
83628
83553
  for (let i = 0; i < n; i++) {
83629
83554
  const child = children[i];
83630
83555
 
83631
- if (isGroup(child)) {
83556
+ if (isGroupTask(child)) {
83632
83557
  this.removeGroup(child);
83633
83558
  } else {
83634
83559
  this.removeTask(child);
@@ -83725,7 +83650,7 @@ class ConcurrentExecutor {
83725
83650
  }
83726
83651
 
83727
83652
  /**
83728
- * Go through unresolved queue and move tasks who's dependencies have been completed to ready queue or fail them
83653
+ * Go through unresolved queue and move tasks whose dependencies have been completed to ready queue or fail them
83729
83654
  */
83730
83655
  resolveTasks() {
83731
83656
  const queueUnresolved = this.queueUnresolved;
@@ -83762,6 +83687,7 @@ class ConcurrentExecutor {
83762
83687
  /**
83763
83688
  *
83764
83689
  * @param {Task} task
83690
+ * @returns {boolean}
83765
83691
  */
83766
83692
  contains(task) {
83767
83693
  if (this.queueUnresolved.indexOf(task) !== -1) {
@@ -96292,6 +96218,7 @@ const source = typeof performance === "undefined" ? Date : performance;
96292
96218
  * @returns {number}
96293
96219
  */
96294
96220
  function current_time_in_seconds() {
96221
+ // time source produces value in milliseconds, we need to scale to seconds
96295
96222
  return source.now() * 1e-3;
96296
96223
  }
96297
96224
 
@@ -102796,50 +102723,51 @@ Notification.prototype.isNotification = true;
102796
102723
  */
102797
102724
 
102798
102725
 
102799
- function NotificationLog() {
102726
+ class NotificationLog {
102800
102727
  /**
102801
102728
  * @readonly
102802
102729
  * @type {List<Notification>}
102803
102730
  */
102804
- this.elements = new List();
102731
+ elements = new List();
102805
102732
 
102806
102733
  /**
102807
102734
  * Once number of entries in the log reaches this amount, the earliest entries will be removed to make space for new ones
102808
102735
  * @type {number}
102809
102736
  */
102810
- this.maxLength = 1000;
102811
- }
102737
+ maxLength = 1000;
102812
102738
 
102813
- /**
102814
- *
102815
- * @param {{}} options See Notification.constructor for details
102816
- * @returns {Notification}
102817
- */
102818
- NotificationLog.prototype.add = function (options) {
102819
- const notification = new Notification(options);
102739
+ /**
102740
+ *
102741
+ * @param {{}} options See {@link Notification.constructor} for details
102742
+ * @returns {Notification}
102743
+ */
102744
+ add(options) {
102745
+ const notification = new Notification(options);
102820
102746
 
102821
- this.addNotification(notification);
102747
+ this.addNotification(notification);
102822
102748
 
102823
- return notification;
102824
- };
102749
+ return notification;
102750
+ }
102825
102751
 
102826
- /**
102827
- *
102828
- * @param {Notification} notification
102829
- */
102830
- NotificationLog.prototype.addNotification = function (notification) {
102752
+ /**
102753
+ *
102754
+ * @param {Notification} notification
102755
+ */
102756
+ addNotification(notification) {
102831
102757
 
102832
- // Crop notification log to size
102833
- const length = this.elements.length;
102758
+ // Crop notification log to size
102759
+ const length = this.elements.length;
102834
102760
 
102835
- const target = this.maxLength - 1;
102761
+ const target = this.maxLength - 1;
102836
102762
 
102837
- if (length > target) {
102838
- this.elements.crop(length - target, length);
102839
- }
102763
+ if (length > target) {
102764
+ // too many elements, drop some
102765
+ this.elements.crop(length - target, length);
102766
+ }
102840
102767
 
102841
- this.elements.add(notification);
102842
- };
102768
+ this.elements.add(notification);
102769
+ }
102770
+ }
102843
102771
 
102844
102772
  class LogDisplay {
102845
102773
  /**
@@ -117807,6 +117735,100 @@ function v2_angle_between(x0, y0, x1, y1) {
117807
117735
  return Math.acos(theta);
117808
117736
  }
117809
117737
 
117738
+ /**
117739
+ *
117740
+ * @param {number[]} result
117741
+ * @param {number[]} input
117742
+ * @param {number[]} mat4
117743
+ */
117744
+ function v4_multiply_mat4(result, input, mat4) {
117745
+ const a0 = mat4[0];
117746
+ const a1 = mat4[1];
117747
+ const a2 = mat4[2];
117748
+ const a3 = mat4[3];
117749
+
117750
+ const b0 = mat4[4];
117751
+ const b1 = mat4[5];
117752
+ const b2 = mat4[6];
117753
+ const b3 = mat4[7];
117754
+
117755
+ const c0 = mat4[8];
117756
+ const c1 = mat4[9];
117757
+ const c2 = mat4[10];
117758
+ const c3 = mat4[11];
117759
+
117760
+ const d0 = mat4[12];
117761
+ const d1 = mat4[13];
117762
+ const d2 = mat4[14];
117763
+ const d3 = mat4[15];
117764
+
117765
+ const _x = input[0];
117766
+ const _y = input[1];
117767
+ const _z = input[2];
117768
+ const _w = input[3];
117769
+
117770
+ const x = a0 * _x + b0 * _y + c0 * _z + d0 * _w;
117771
+ const y = a1 * _x + b1 * _y + c1 * _z + d1 * _w;
117772
+ const z = a2 * _x + b2 * _y + c2 * _z + d2 * _w;
117773
+ const w = a3 * _x + b3 * _y + c3 * _z + d3 * _w;
117774
+
117775
+ result[0] = x;
117776
+ result[1] = y;
117777
+ result[2] = z;
117778
+ result[3] = w;
117779
+ }
117780
+
117781
+ /**
117782
+ *
117783
+ * @param {number} x0
117784
+ * @param {number} y0
117785
+ * @param {number} z0
117786
+ * @param {number} w0
117787
+ * @param {number} x1
117788
+ * @param {number} y1
117789
+ * @param {number} z1
117790
+ * @param {number} w1
117791
+ * @returns {number}
117792
+ */
117793
+ function v4_dot(
117794
+ x0, y0, z0, w0,
117795
+ x1, y1, z1, w1
117796
+ ) {
117797
+
117798
+ return (x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1);
117799
+ }
117800
+
117801
+ /**
117802
+ *
117803
+ * @param {number} x
117804
+ * @param {number} y
117805
+ * @param {number} z
117806
+ * @param {number} w
117807
+ * @returns {number}
117808
+ */
117809
+ function v4_length_sqr(x, y, z, w) {
117810
+ return x * x + y * y + z * z + w * w;
117811
+ }
117812
+
117813
+ /**
117814
+ *
117815
+ * @param {number} x0
117816
+ * @param {number} y0
117817
+ * @param {number} z0
117818
+ * @param {number} w0
117819
+ * @param {number} x1
117820
+ * @param {number} y1
117821
+ * @param {number} z1
117822
+ * @param {number} w1
117823
+ * @returns {number}
117824
+ */
117825
+ function v4_distance_sqr(
117826
+ x0, y0, z0, w0,
117827
+ x1, y1, z1, w1
117828
+ ) {
117829
+ return v4_length_sqr(x0 - x1, y0 - y1, z0 - z1, w0 - w1);
117830
+ }
117831
+
117810
117832
  exports.AmbientOcclusionPostProcessEffect = AmbientOcclusionPostProcessEffect;
117811
117833
  exports.Behavior = Behavior;
117812
117834
  exports.BehaviorStatus = BehaviorStatus;
@@ -117839,7 +117861,7 @@ exports.v2_distance = v2_distance;
117839
117861
  exports.v2_dot = v2_dot;
117840
117862
  exports.v2_length_sqr = v2_length_sqr;
117841
117863
  exports.v2_magnitude = v2_magnitude;
117842
- exports.v4_applyMatrix4 = v4_applyMatrix4;
117843
117864
  exports.v4_distance_sqr = v4_distance_sqr;
117844
117865
  exports.v4_dot = v4_dot;
117845
117866
  exports.v4_length_sqr = v4_length_sqr;
117867
+ exports.v4_multiply_mat4 = v4_multiply_mat4;