@woosh/meep-engine 2.119.131 → 2.120.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 (164) hide show
  1. package/editor/tools/v2/BlenderCameraOrientationGizmo.js +1 -1
  2. package/package.json +1 -1
  3. package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
  4. package/src/core/bvh2/bvh3/BVH.js +6 -29
  5. package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +1 -1
  6. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.d.ts +2 -2
  7. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.d.ts.map +1 -1
  8. package/src/core/bvh2/bvh3/ebvh_optimize_treelet.js +11 -3
  9. package/src/core/collection/RingBuffer.d.ts +5 -0
  10. package/src/core/collection/RingBuffer.d.ts.map +1 -1
  11. package/src/core/collection/RingBuffer.js +12 -2
  12. package/src/core/collection/list/List.js +1 -1
  13. package/src/core/collection/map/HashMap.d.ts.map +1 -1
  14. package/src/core/collection/map/HashMap.js +13 -0
  15. package/src/core/color/Color.d.ts.map +1 -1
  16. package/src/core/color/Color.js +1 -2
  17. package/src/core/color/oklab/linear_srgb_to_okhsv.d.ts.map +1 -1
  18. package/src/core/color/oklab/linear_srgb_to_okhsv.js +15 -4
  19. package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts.map +1 -1
  20. package/src/core/color/oklab/okhsv_to_linear_srgb.js +8 -1
  21. package/src/core/color/operations/color_darken.d.ts.map +1 -1
  22. package/src/core/color/operations/color_darken.js +6 -1
  23. package/src/core/geom/3d/mat4/apply_mat4_transform_to_direction_v3_array.d.ts.map +1 -0
  24. package/src/core/geom/3d/{apply_mat4_transform_to_direction_v3_array.js → mat4/apply_mat4_transform_to_direction_v3_array.js} +1 -1
  25. package/src/core/geom/3d/mat4/apply_mat4_transform_to_v3_array.d.ts.map +1 -0
  26. package/src/core/geom/3d/mat4/compose_matrix4_array.d.ts.map +1 -0
  27. package/src/core/geom/3d/mat4/decompose_matrix_4_array.d.ts.map +1 -0
  28. package/src/core/geom/3d/{decompose_matrix_4_array.js → mat4/decompose_matrix_4_array.js} +1 -1
  29. package/src/core/geom/3d/mat4/eulerAnglesFromMatrix.d.ts.map +1 -0
  30. package/src/core/geom/3d/{eulerAnglesFromMatrix.js → mat4/eulerAnglesFromMatrix.js} +1 -1
  31. package/src/core/geom/3d/mat4/m4_extract_scale.d.ts.map +1 -0
  32. package/src/core/geom/3d/{m4_extract_scale.js → mat4/m4_extract_scale.js} +1 -1
  33. package/src/core/geom/3d/ray/Ray3.d.ts.map +1 -0
  34. package/src/core/geom/3d/{Ray3.js → ray/Ray3.js} +8 -8
  35. package/src/core/geom/3d/shape/TransformedShape3D.js +1 -1
  36. package/src/core/geom/3d/sphere/compute_bounding_sphere_of_2_spheres.d.ts.map +1 -0
  37. package/src/core/geom/3d/{compute_bounding_sphere_of_2_spheres.js → sphere/compute_bounding_sphere_of_2_spheres.js} +3 -3
  38. package/src/core/geom/3d/tetrahedra/triangle/trace_triangular_depth_map.js +1 -1
  39. package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +1 -1
  40. package/src/core/geom/3d/topology/struct/TopoTriangle.js +1 -1
  41. package/src/core/geom/3d/topology/tm_face_normal.js +1 -1
  42. package/src/core/geom/3d/topology/tm_vertex_compute_normal.js +1 -1
  43. package/src/core/geom/3d/triangle/aabb3_compute_from_triangle.d.ts.map +1 -0
  44. package/src/core/geom/3d/{aabb3_compute_from_triangle.js → triangle/aabb3_compute_from_triangle.js} +2 -2
  45. package/src/core/geom/3d/triangle/compute_triangle_normal.d.ts.map +1 -0
  46. package/src/core/geom/3d/{compute_triangle_normal.js → triangle/compute_triangle_normal.js} +1 -1
  47. package/src/core/geom/3d/triangle/v3_compute_triangle_normal.d.ts +13 -13
  48. package/src/core/geom/3d/triangle/v3_compute_triangle_normal.js +21 -21
  49. package/src/core/geom/Quaternion.d.ts.map +1 -1
  50. package/src/core/geom/Quaternion.js +18 -3
  51. package/src/core/geom/Vector3.d.ts.map +1 -1
  52. package/src/core/geom/Vector3.js +3 -2
  53. package/src/core/geom/packing/miniball/Miniball.d.ts.map +1 -1
  54. package/src/core/geom/packing/miniball/Miniball.js +9 -5
  55. package/src/core/geom/packing/miniball/Subspan.d.ts +8 -7
  56. package/src/core/geom/packing/miniball/Subspan.d.ts.map +1 -1
  57. package/src/core/geom/packing/miniball/Subspan.js +42 -52
  58. package/src/core/geom/vec2/v2_bearing_angle_towards.d.ts +6 -5
  59. package/src/core/geom/vec2/v2_bearing_angle_towards.d.ts.map +1 -1
  60. package/src/core/geom/vec2/v2_bearing_angle_towards.js +12 -11
  61. package/src/core/geom/vec2/v2_distance.d.ts +6 -6
  62. package/src/core/geom/vec2/v2_distance.js +6 -6
  63. package/src/core/geom/vec3/v3_compute_interior_angle.d.ts.map +1 -0
  64. package/src/core/geom/{3d → vec3}/v3_compute_interior_angle.js +1 -1
  65. package/src/core/geom/vec3/v3_distance_above_plane.d.ts +8 -8
  66. package/src/core/geom/vec3/v3_distance_above_plane.d.ts.map +1 -1
  67. package/src/core/geom/vec3/v3_distance_above_plane.js +9 -9
  68. package/src/core/geom/vec3/v3_slerp.d.ts +11 -9
  69. package/src/core/geom/vec3/v3_slerp.d.ts.map +1 -1
  70. package/src/core/geom/vec3/v3_slerp.js +8 -8
  71. package/src/core/math/PI.d.ts +6 -0
  72. package/src/core/math/PI.d.ts.map +1 -0
  73. package/src/core/math/PI.js +5 -0
  74. package/src/core/math/linalg/lu_factor_linear_system.d.ts +6 -6
  75. package/src/core/math/linalg/lu_factor_linear_system.d.ts.map +1 -1
  76. package/src/core/math/linalg/lu_factor_linear_system.js +11 -6
  77. package/src/core/math/linalg/lu_solve_linear_system.d.ts +8 -8
  78. package/src/core/math/linalg/lu_solve_linear_system.d.ts.map +1 -1
  79. package/src/core/math/linalg/lu_solve_linear_system.js +11 -9
  80. package/src/core/math/random/randomGaussian.d.ts +2 -2
  81. package/src/core/math/random/randomGaussian.d.ts.map +1 -1
  82. package/src/core/math/random/randomGaussian.js +1 -1
  83. package/src/engine/animation/Tween.d.ts +27 -0
  84. package/src/engine/animation/Tween.d.ts.map +1 -0
  85. package/src/engine/animation/Tween.js +61 -52
  86. package/src/engine/animation/curve/binding/BoundPlainNumericPropertyWriter.d.ts +7 -1
  87. package/src/engine/animation/curve/binding/BoundPlainNumericPropertyWriter.d.ts.map +1 -1
  88. package/src/engine/animation/curve/binding/BoundPlainNumericPropertyWriter.js +6 -0
  89. package/src/engine/animation/curve/binding/BoundQuaternionWriter.d.ts +5 -1
  90. package/src/engine/animation/curve/binding/BoundQuaternionWriter.d.ts.map +1 -1
  91. package/src/engine/animation/curve/binding/BoundQuaternionWriter.js +4 -0
  92. package/src/engine/animation/curve/binding/BoundVector3Writer.d.ts +5 -1
  93. package/src/engine/animation/curve/binding/BoundVector3Writer.d.ts.map +1 -1
  94. package/src/engine/animation/curve/binding/BoundVector3Writer.js +4 -0
  95. package/src/engine/development/performance/MetricCollection.d.ts.map +1 -1
  96. package/src/engine/development/performance/MetricCollection.js +6 -7
  97. package/src/engine/ecs/System.d.ts +1 -0
  98. package/src/engine/ecs/animation/Animation.d.ts +5 -0
  99. package/src/engine/ecs/animation/Animation.d.ts.map +1 -1
  100. package/src/engine/ecs/animation/Animation.js +14 -1
  101. package/src/engine/ecs/animation/AnimationClip.d.ts +6 -0
  102. package/src/engine/ecs/animation/AnimationClip.d.ts.map +1 -1
  103. package/src/engine/ecs/animation/AnimationClip.js +34 -22
  104. package/src/engine/ecs/guid/UUID.d.ts +4 -0
  105. package/src/engine/ecs/guid/UUID.d.ts.map +1 -1
  106. package/src/engine/ecs/guid/UUID.js +4 -0
  107. package/src/engine/ecs/transform/Transform.js +2 -2
  108. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraController.js +1 -1
  109. package/src/engine/graphics/ecs/highlight/Highlight.d.ts.map +1 -1
  110. package/src/engine/graphics/ecs/highlight/Highlight.js +4 -0
  111. package/src/engine/graphics/geometry/bvh/buffered/bvh32_set_leaf_from_triangle.js +1 -1
  112. package/src/engine/graphics/impostors/octahedral/bake/compute_bounding_sphere.js +1 -1
  113. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +1 -1
  114. package/src/engine/graphics/render/gizmo/GizmoShapeRenderingInterface.js +1 -1
  115. package/src/engine/graphics/sh3/lpv/PathTracerProbeRenderer.js +1 -1
  116. package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map.js +1 -1
  117. package/src/engine/graphics/sh3/lpv/depth/octahedral/bake_octahedral_depth_map_fibonacci.js +1 -1
  118. package/src/engine/graphics/sh3/lpv/depth/sh3_bake_depth.js +1 -1
  119. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts +1 -1
  120. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.d.ts.map +1 -1
  121. package/src/engine/graphics/sh3/path_tracer/PathTracedMesh.js +2 -2
  122. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts +1 -1
  123. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.d.ts.map +1 -1
  124. package/src/engine/graphics/sh3/path_tracer/PathTracedScene.js +1 -1
  125. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts +1 -1
  126. package/src/engine/graphics/sh3/path_tracer/PathTracer.d.ts.map +1 -1
  127. package/src/engine/graphics/sh3/path_tracer/PathTracer.js +1 -1
  128. package/src/engine/graphics/sh3/path_tracer/prototypePathTracer.js +1 -1
  129. package/src/engine/graphics/sh3/prototypeSH3Probe.js +1 -1
  130. package/src/engine/graphics/util/composeMatrix4.js +1 -1
  131. package/src/engine/physics/computeInterceptPoint.d.ts +11 -1
  132. package/src/engine/physics/computeInterceptPoint.d.ts.map +1 -1
  133. package/src/engine/physics/computeInterceptPoint.js +29 -12
  134. package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts.map +1 -1
  135. package/src/engine/physics/gjk/expanding_polytope_algorithm.js +19 -59
  136. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts +3 -2
  137. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -1
  138. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +3 -2
  139. package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts.map +1 -1
  140. package/src/engine/physics/inverse_kinematics/two_joint_ik.js +1 -1
  141. package/src/core/geom/3d/Ray3.d.ts.map +0 -1
  142. package/src/core/geom/3d/aabb3_compute_from_triangle.d.ts.map +0 -1
  143. package/src/core/geom/3d/apply_mat4_transform_to_direction_v3_array.d.ts.map +0 -1
  144. package/src/core/geom/3d/apply_mat4_transform_to_v3_array.d.ts.map +0 -1
  145. package/src/core/geom/3d/compose_matrix4_array.d.ts.map +0 -1
  146. package/src/core/geom/3d/compute_bounding_sphere_of_2_spheres.d.ts.map +0 -1
  147. package/src/core/geom/3d/compute_triangle_normal.d.ts.map +0 -1
  148. package/src/core/geom/3d/decompose_matrix_4_array.d.ts.map +0 -1
  149. package/src/core/geom/3d/eulerAnglesFromMatrix.d.ts.map +0 -1
  150. package/src/core/geom/3d/m4_extract_scale.d.ts.map +0 -1
  151. package/src/core/geom/3d/v3_compute_interior_angle.d.ts.map +0 -1
  152. /package/src/core/geom/3d/{apply_mat4_transform_to_direction_v3_array.d.ts → mat4/apply_mat4_transform_to_direction_v3_array.d.ts} +0 -0
  153. /package/src/core/geom/3d/{apply_mat4_transform_to_v3_array.d.ts → mat4/apply_mat4_transform_to_v3_array.d.ts} +0 -0
  154. /package/src/core/geom/3d/{apply_mat4_transform_to_v3_array.js → mat4/apply_mat4_transform_to_v3_array.js} +0 -0
  155. /package/src/core/geom/3d/{compose_matrix4_array.d.ts → mat4/compose_matrix4_array.d.ts} +0 -0
  156. /package/src/core/geom/3d/{compose_matrix4_array.js → mat4/compose_matrix4_array.js} +0 -0
  157. /package/src/core/geom/3d/{decompose_matrix_4_array.d.ts → mat4/decompose_matrix_4_array.d.ts} +0 -0
  158. /package/src/core/geom/3d/{eulerAnglesFromMatrix.d.ts → mat4/eulerAnglesFromMatrix.d.ts} +0 -0
  159. /package/src/core/geom/3d/{m4_extract_scale.d.ts → mat4/m4_extract_scale.d.ts} +0 -0
  160. /package/src/core/geom/3d/{Ray3.d.ts → ray/Ray3.d.ts} +0 -0
  161. /package/src/core/geom/3d/{compute_bounding_sphere_of_2_spheres.d.ts → sphere/compute_bounding_sphere_of_2_spheres.d.ts} +0 -0
  162. /package/src/core/geom/3d/{aabb3_compute_from_triangle.d.ts → triangle/aabb3_compute_from_triangle.d.ts} +0 -0
  163. /package/src/core/geom/3d/{compute_triangle_normal.d.ts → triangle/compute_triangle_normal.d.ts} +0 -0
  164. /package/src/core/geom/{3d → vec3}/v3_compute_interior_angle.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { mat4 } from "gl-matrix";
2
2
  import { Color } from "../../../src/core/color/Color.js";
3
3
  import Signal from "../../../src/core/events/signal/Signal.js";
4
- import { compose_matrix4_array } from "../../../src/core/geom/3d/compose_matrix4_array.js";
4
+ import { compose_matrix4_array } from "../../../src/core/geom/3d/mat4/compose_matrix4_array.js";
5
5
  import Quaternion from "../../../src/core/geom/Quaternion.js";
6
6
  import { v2_distance } from "../../../src/core/geom/vec2/v2_distance.js";
7
7
  import Vector2 from "../../../src/core/geom/Vector2.js";
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.119.131",
8
+ "version": "2.120.0",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -1 +1 @@
1
- {"version":3,"file":"BVH.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/BVH.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BVH.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/BVH.js"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { assert } from "../../assert.js";
2
2
  import { UINT32_MAX } from "../../binary/UINT32_MAX.js";
3
3
  import { array_copy } from "../../collection/array/array_copy.js";
4
4
  import { array_buffer_copy } from "../../collection/array/typed/array_buffer_copy.js";
5
+ import { aabb3_array_combine } from "../../geom/3d/aabb/aabb3_array_combine.js";
5
6
  import { aabb3_compute_surface_area } from "../../geom/3d/aabb/aabb3_compute_surface_area.js";
6
7
  import { max2 } from "../../math/max2.js";
7
8
  import { min2 } from "../../math/min2.js";
@@ -605,35 +606,11 @@ export class BVH {
605
606
 
606
607
  const float32 = this.__data_float32;
607
608
 
608
- const a_x0 = float32[address_a];
609
- const a_y0 = float32[address_a + 1];
610
- const a_z0 = float32[address_a + 2];
611
- const a_x1 = float32[address_a + 3];
612
- const a_y1 = float32[address_a + 4];
613
- const a_z1 = float32[address_a + 5];
614
-
615
- const b_x0 = float32[address_b];
616
- const b_y0 = float32[address_b + 1];
617
- const b_z0 = float32[address_b + 2];
618
- const b_x1 = float32[address_b + 3];
619
- const b_y1 = float32[address_b + 4];
620
- const b_z1 = float32[address_b + 5];
621
-
622
- const x0 = min2(a_x0, b_x0);
623
- const y0 = min2(a_y0, b_y0);
624
- const z0 = min2(a_z0, b_z0);
625
- const x1 = max2(a_x1, b_x1);
626
- const y1 = max2(a_y1, b_y1);
627
- const z1 = max2(a_z1, b_z1);
628
-
629
-
630
- float32[address_destination] = x0;
631
- float32[address_destination + 1] = y0;
632
- float32[address_destination + 2] = z0;
633
-
634
- float32[address_destination + 3] = x1;
635
- float32[address_destination + 4] = y1;
636
- float32[address_destination + 5] = z1;
609
+ aabb3_array_combine(
610
+ float32, address_destination,
611
+ float32, address_a,
612
+ float32, address_b,
613
+ );
637
614
  }
638
615
 
639
616
  /**
@@ -3,7 +3,7 @@ import { array_quick_sort_by_lookup_uint } from "../../collection/array/array_qu
3
3
  import { typed_array_copy } from "../../collection/array/typed/typed_array_copy.js";
4
4
  import { AABB3 } from "../../geom/3d/aabb/AABB3.js";
5
5
  import { aabb3_from_v3_array } from "../../geom/3d/aabb/aabb3_from_v3_array.js";
6
- import { aabb3_compute_from_triangle } from "../../geom/3d/aabb3_compute_from_triangle.js";
6
+ import { aabb3_compute_from_triangle } from "../../geom/3d/triangle/aabb3_compute_from_triangle.js";
7
7
  import { max2 } from "../../math/max2.js";
8
8
  import { build_triangle_morton_codes } from "./build_triangle_morton_codes.js";
9
9
  import { COLUMN_CHILD_1, COLUMN_HEIGHT, COLUMN_USER_DATA, ELEMENT_WORD_COUNT, NULL_NODE } from "./BVH.js";
@@ -3,8 +3,8 @@
3
3
  * Note that the root does not move, but everything below the root is subject to change
4
4
  * @see "Fast Parallel Construction of High-Quality Bounding Volume Hierarchies" by Kerras, NVIDIA 2013
5
5
  * @param {BVH} bvh
6
- * @param {number} root
7
- * @param {number} [treelet_size]
6
+ * @param {number} root where to start optimization, only nodes below this one will be considered
7
+ * @param {number} [treelet_size] the larger the size - the more optimization opportunities, but it gets exponentially slower
8
8
  */
9
9
  export function ebvh_optimize_treelet(bvh: BVH, root: number, treelet_size?: number): void;
10
10
  //# sourceMappingURL=ebvh_optimize_treelet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ebvh_optimize_treelet.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_optimize_treelet.js"],"names":[],"mappings":"AAgNA;;;;;;;GAOG;AACH,2CAJW,GAAG,QACH,MAAM,iBACN,MAAM,QA0IhB"}
1
+ {"version":3,"file":"ebvh_optimize_treelet.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_optimize_treelet.js"],"names":[],"mappings":"AAoNA;;;;;;;GAOG;AACH,2CAJW,GAAG,QACH,MAAM,iBACN,MAAM,QA8IhB"}
@@ -136,6 +136,10 @@ function optimize_treelet(bvh, root, leaves, leaf_count) {
136
136
  * @param {number} treelet_max_size
137
137
  */
138
138
  function optimize_at_node(bvh, root, treelet_max_size) {
139
+ if(root === NULL_NODE){
140
+ return;
141
+ }
142
+
139
143
  if (bvh.node_is_leaf(root)) {
140
144
  return;
141
145
  }
@@ -211,10 +215,14 @@ const CAME_FROM_TYPE_CHILD_2 = 2;
211
215
  * Note that the root does not move, but everything below the root is subject to change
212
216
  * @see "Fast Parallel Construction of High-Quality Bounding Volume Hierarchies" by Kerras, NVIDIA 2013
213
217
  * @param {BVH} bvh
214
- * @param {number} root
215
- * @param {number} [treelet_size]
218
+ * @param {number} root where to start optimization, only nodes below this one will be considered
219
+ * @param {number} [treelet_size] the larger the size - the more optimization opportunities, but it gets exponentially slower
216
220
  */
217
- export function ebvh_optimize_treelet(bvh, root, treelet_size = 7) {
221
+ export function ebvh_optimize_treelet(
222
+ bvh,
223
+ root,
224
+ treelet_size = 7
225
+ ) {
218
226
  assert.isNonNegativeInteger(treelet_size, 'treelet_size');
219
227
  assert.lessThanOrEqual(treelet_size, 8, 'limit is 8');
220
228
 
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Fixed-sized container structure, where ends are connected into a circle/ring
3
+ * This is a FIFO structure (first in, first out)
4
+ * @see https://en.wikipedia.org/wiki/Circular_buffer
5
+ */
1
6
  export class RingBuffer {
2
7
  /**
3
8
  * @template V
@@ -1 +1 @@
1
- {"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;IACI;;;;OAIG;IACH,kBAHW,MAAM,EAqChB;IA7BG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAkBhB;IAED;;;OAGG;IACH,WAFY,CAAC,CAIZ;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,CAAC,CAUb;IAED,cAIC;IAED;;;OAGG;IACH,cAFW,CAAC,QAuBX;IAED;;;OAGG;IACH,SAFa,CAAC,GAAC,SAAS,CAcvB;IAED;;;OAGG;IACH,4BAFW,MAAM,QAuBhB;IAED;;;;;OAKG;IACH,oBAJW,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,YACnB,GAAC,GACC,CAAC,GAAC,SAAS,CAoBvB;IAED;;;;OAIG;IACH,iBAHW,CAAS,IAAC,EAAD,CAAC,QAAC,YACX,GAAC,QAgBX;IAED;;;;OAIG;IACH,gBAHW,CAAC,GACC,OAAO,CAInB;CACJ"}
1
+ {"version":3,"file":"RingBuffer.d.ts","sourceRoot":"","sources":["../../../../src/core/collection/RingBuffer.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH;IACI;;;;OAIG;IACH,kBAHW,MAAM,EAqChB;IA7BG;;;OAGG;IACH,MAFU,MAAM,CAEA;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,OAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,MAFU,CAAC,EAAE,CAEc;IAG/B;;;OAGG;IACH,iBAFW,MAAM,QAkBhB;IAED;;;OAGG;IACH,WAFY,CAAC,CAIZ;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,CAAC,CAUb;IAED,cAIC;IAED;;;OAGG;IACH,cAFW,CAAC,QAuBX;IAED;;;OAGG;IACH,SAFa,CAAC,GAAC,SAAS,CAcvB;IAED;;;OAGG;IACH,4BAFW,MAAM,QA4BhB;IAED;;;;;OAKG;IACH,oBAJW,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,YACnB,GAAC,GACC,CAAC,GAAC,SAAS,CAoBvB;IAED;;;;OAIG;IACH,iBAHW,CAAS,IAAC,EAAD,CAAC,QAAC,YACX,GAAC,QAgBX;IAED;;;;OAIG;IACH,gBAHW,CAAC,GACC,OAAO,CAInB;CACJ"}
@@ -1,6 +1,11 @@
1
1
  import { assert } from "../assert.js";
2
2
  import { min2 } from "../math/min2.js";
3
3
 
4
+ /**
5
+ * Fixed-sized container structure, where ends are connected into a circle/ring
6
+ * This is a FIFO structure (first in, first out)
7
+ * @see https://en.wikipedia.org/wiki/Circular_buffer
8
+ */
4
9
  export class RingBuffer {
5
10
  /**
6
11
  * @template V
@@ -162,7 +167,12 @@ export class RingBuffer {
162
167
  this.data[j] = this.data[k];
163
168
  }
164
169
 
165
- this.head--;
170
+ // Clear the last element (important for GC if holding objects)
171
+ this.data[(tail + count - 1) % size] = undefined;
172
+
173
+ // update head and handle underflow
174
+ this.head = (this.head - 1 + size) % size;
175
+
166
176
  this.count--;
167
177
  }
168
178
 
@@ -185,7 +195,7 @@ export class RingBuffer {
185
195
 
186
196
  if (condition.call(thisArg, el)) {
187
197
 
188
- this.removeElementByIndex(index);
198
+ this.removeElementByIndex(i);
189
199
 
190
200
  return el;
191
201
  }
@@ -900,8 +900,8 @@ class List {
900
900
  * @returns {number}
901
901
  */
902
902
  hash() {
903
- let hash = 0;
904
903
  const length = this.length;
904
+ let hash = length;
905
905
 
906
906
  for (let i = 0; i < length; i++) {
907
907
  const datum = this.data[i];
@@ -1 +1 @@
1
- {"version":3,"file":"HashMap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/map/HashMap.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;GAYG;AACH,uFAIC;AA8FD;;;;;;;GAOG;AACH,qBAHa,CAAC,EAAC,CAAC;IAkEZ;;;;;;OAMG;IACH,6EALW,CAAS,IAAC,EAAD,GAAC,KAAE,MAAM,EAsC5B;IAtGD;;;;OAIG;IACH,QAFU,WAAW,CAED;IAEpB;;;OAGG;IACH,WAFU,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAET;IAEzB;;;OAGG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX,oBAAgB;IAEhB;;;OAGG;IACH,2BAFU,MAAM,CAEc;IAE9B,iCAA6B;IAE7B,qCAAiC;IAEjC;;;OAGG;IACH,kBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAAoC;IAEpC;;;OAGG;IACH,WAFU,MAAM,CAEF;IAwBV;;;;;OAKG;IACH,iCAAsC;IACtC;;;;;OAKG;IACH,qCAA8C;IAOlD,mBAEC;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IA2CD;;;;;OAKG;IACH,0BAUC;IAsGD;;;;OAIG;IACH,SAHW,CAAC,SACD,CAAC,QA0EX;IAED;;;;OAIG;IACH,SAHW,CAAC,GACC,CAAC,GAAC,SAAS,CA+BvB;IAED;;;;;;;;OAQG;IACH,kBALW,CAAC,WACD,CAAS,IAAC,EAAD,CAAC,KAAE,CAAC,oBACb,GAAC,GACA,CAAC,CAgBZ;IAED;;;;;OAKG;IACH,cAJW,CAAC,SACD,CAAC,GACA,CAAC,CAaZ;IAwBD;;;;OAIG;IACH,YAHW,CAAC,GACC,OAAO,CA+CnB;IAED;;;;;OAKG;IACH,sCAHW,GAAC,GACC,OAAO,CA+BnB;IAOD;;OAEG;IACH,gBA0DC;IAmBD,2CA0BC;IAED;;;;OAIG;IACH,SAHW,CAAC,GACC,OAAO,CAInB;IAED;;OAEG;IACH,cA6BC;IA+BD;;;OAGG;IACH,UAFa,QAAQ,CAAC,CAAC,CAAC,CAOvB;IAED;;;OAGG;IACH,QAFa,QAAQ,CAAC,CAAC,CAAC,CAMvB;IAhDD,yDA2BC;;CAsBJ;AAl1BD;;GAEG;AACH,2BAFa,CAAC,EAAC,CAAC;IAGZ;;;;;OAKG;IACH,iBAJW,CAAC,SACD,CAAC,QACD,MAAM,EAsBhB;IAlBG;;;OAGG;IACH,KAFU,CAAC,CAEG;IAEd;;;OAGG;IACH,OAFU,CAAC,CAEO;IAElB;;;OAGG;IACH,MAFU,MAAM,CAEA;CAGvB"}
1
+ {"version":3,"file":"HashMap.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/map/HashMap.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;GAYG;AACH,uFAIC;AAgGD;;;;;;;GAOG;AACH,qBAHa,CAAC,EAAC,CAAC;IAkEZ;;;;;;OAMG;IACH,6EALW,CAAS,IAAC,EAAD,GAAC,KAAE,MAAM,EAsC5B;IAtGD;;;;OAIG;IACH,QAFU,WAAW,CAED;IAEpB;;;OAGG;IACH,WAFU,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAET;IAEzB;;;OAGG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,iBAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,QAFU,MAAM,CAEL;IAEX,oBAAgB;IAEhB;;;OAGG;IACH,2BAFU,MAAM,CAEc;IAE9B,iCAA6B;IAE7B,qCAAiC;IAEjC;;;OAGG;IACH,kBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAAoC;IAEpC;;;OAGG;IACH,WAFU,MAAM,CAEF;IAwBV;;;;;OAKG;IACH,iCAAsC;IACtC;;;;;OAKG;IACH,qCAA8C;IAOlD,mBAEC;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IA2CD;;;;;OAKG;IACH,0BAUC;IAuGD;;;;OAIG;IACH,SAHW,CAAC,SACD,CAAC,QA0EX;IAED;;;;OAIG;IACH,SAHW,CAAC,GACC,CAAC,GAAC,SAAS,CA+BvB;IAED;;;;;;;;OAQG;IACH,kBALW,CAAC,WACD,CAAS,IAAC,EAAD,CAAC,KAAE,CAAC,oBACb,GAAC,GACA,CAAC,CAgBZ;IAED;;;;;OAKG;IACH,cAJW,CAAC,SACD,CAAC,GACA,CAAC,CAaZ;IAwBD;;;;OAIG;IACH,YAHW,CAAC,GACC,OAAO,CA+CnB;IAED;;;;;OAKG;IACH,sCAHW,GAAC,GACC,OAAO,CA+BnB;IAOD;;OAEG;IACH,gBA0DC;IAmBD,2CA0BC;IAED;;;;OAIG;IACH,SAHW,CAAC,GACC,OAAO,CAInB;IAED;;OAEG;IACH,cA6BC;IA+BD;;;OAGG;IACH,WAFa,QAAQ,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAM3B;IAED;;;OAGG;IACH,UAFa,QAAQ,CAAC,CAAC,CAAC,CAOvB;IAED;;;OAGG;IACH,QAFa,QAAQ,CAAC,CAAC,CAAC,CAMvB;IA1DD,yDA2BC;;CAgCJ;AA/1BD;;GAEG;AACH,2BAFa,CAAC,EAAC,CAAC;IAGZ;;;;;OAKG;IACH,iBAJW,CAAC,SACD,CAAC,QACD,MAAM,EAsBhB;IAlBG;;;OAGG;IACH,KAFU,CAAC,CAEG;IAEd;;;OAGG;IACH,OAFU,CAAC,CAEO;IAElB;;;OAGG;IACH,MAFU,MAAM,CAEA;IAKxB,wBAAqC;CAFpC"}
@@ -67,6 +67,8 @@ class HashMapEntry {
67
67
  }
68
68
  }
69
69
 
70
+ HashMapEntry.prototype.isHashMapEntry = true;
71
+
70
72
  /**
71
73
  * @readonly
72
74
  * @type {number}
@@ -361,6 +363,7 @@ export class HashMap {
361
363
  const existing_entry = this.__entries[i];
362
364
 
363
365
  if (existing_entry !== undefined) {
366
+ assert.equal(existing_entry.isHashMapEntry, true, 'existing_entry.isHashMapEntry !== true');
364
367
 
365
368
  // entry exists, let's reuse it
366
369
 
@@ -864,6 +867,16 @@ export class HashMap {
864
867
 
865
868
  }
866
869
 
870
+ /**
871
+ *
872
+ * @returns {Iterator<[K,V]>}
873
+ */
874
+ * entries(){
875
+ for (const e of this){
876
+ yield e;
877
+ }
878
+ }
879
+
867
880
  /**
868
881
  *
869
882
  * @returns {Iterator<V>}
@@ -1 +1 @@
1
- {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Color.d.ts","sourceRoot":"","sources":["../../../../src/core/color/Color.js"],"names":[],"mappings":"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"}
@@ -501,8 +501,7 @@ export class Color {
501
501
  * @param {Color} other
502
502
  */
503
503
  copy(other) {
504
- this.a = other.a;
505
- this.setRGB(other.r, other.g, other.b);
504
+ this.set(other.r, other.g, other.b, other.a);
506
505
  }
507
506
 
508
507
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"linear_srgb_to_okhsv.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/linear_srgb_to_okhsv.js"],"names":[],"mappings":"AAkBA;;;;;;GAMG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,QAkDhB"}
1
+ {"version":3,"file":"linear_srgb_to_okhsv.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/linear_srgb_to_okhsv.js"],"names":[],"mappings":"AAmBA;;;;;;GAMG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,QA4DhB"}
@@ -1,3 +1,4 @@
1
+ import { v2_length } from "../../geom/vec2/v2_length.js";
1
2
  import { find_cusp } from "./find_cusp.js";
2
3
  import { linear_srgb_to_oklab } from "./linear_srgb_to_oklab.js";
3
4
  import { oklab_to_linear_srgb } from "./oklab_to_linear_srgb.js";
@@ -27,11 +28,21 @@ export function linear_srgb_to_okhsv(output, r, g, b) {
27
28
 
28
29
  linear_srgb_to_oklab(Lab, r, g, b)
29
30
 
30
- let C = Math.sqrt(Lab[1] * Lab[1] + Lab[2] * Lab[2]);
31
- const a_ = Lab[1] / C;
32
- const b_ = Lab[2] / C;
33
-
34
31
  let L = Lab[0];
32
+
33
+ if(L === 0){
34
+ // going to be all 0s
35
+ output[0] = 0;
36
+ output[1] = 0;
37
+ output[2] = 0;
38
+ return ;
39
+ }
40
+
41
+ let C = v2_length(Lab[1], Lab[2]);
42
+
43
+ let a_ = Lab[1] / C;
44
+ let b_ = Lab[2] / C;
45
+
35
46
  const h = 0.5 + 0.5 * Math.atan2(-Lab[2], -Lab[1]) / Math.PI;
36
47
 
37
48
  find_cusp(cusp, a_, b_);
@@ -1 +1 @@
1
- {"version":3,"file":"okhsv_to_linear_srgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/okhsv_to_linear_srgb.js"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,QAsChB"}
1
+ {"version":3,"file":"okhsv_to_linear_srgb.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/oklab/okhsv_to_linear_srgb.js"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,6CALW,MAAM,EAAE,KACR,MAAM,KACN,MAAM,KACN,MAAM,QA6ChB"}
@@ -46,7 +46,14 @@ export function okhsv_to_linear_srgb(output, h, s, v) {
46
46
  const C_vt = C_v * L_vt / L_v;
47
47
 
48
48
  const L_new = toe_inv(L);
49
- C = C * L_new / L;
49
+
50
+ if(L !== 0) {
51
+ C = C * L_new / L;
52
+ }else{
53
+ // avoid division by 0
54
+ C = 0;
55
+ }
56
+
50
57
  L = L_new;
51
58
 
52
59
  oklab_to_linear_srgb(rgb_scale, L_vt, a_ * C_vt, b_ * C_vt);
@@ -1 +1 @@
1
- {"version":3,"file":"color_darken.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/operations/color_darken.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,oCAJW,KAAK,WACL,MAAM,GACJ,KAAK,CAejB;sBAzBqB,aAAa"}
1
+ {"version":3,"file":"color_darken.d.ts","sourceRoot":"","sources":["../../../../../src/core/color/operations/color_darken.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,oCAJW,KAAK,WACL,MAAM,GACJ,KAAK,CAoBjB;sBA9BqB,aAAa"}
@@ -16,11 +16,16 @@ export function color_darken(input, amount = 1) {
16
16
  assert.isNumber(amount, 'amount');
17
17
  assert.greaterThanOrEqual(amount, 0, 'amount');
18
18
 
19
+ if(amount === 0){
20
+ // skip allocation
21
+ return input;
22
+ }
23
+
19
24
  const r = new Color();
20
25
 
21
26
  linear_srgb_to_okhsv(hsv, input.r, input.g, input.b);
22
27
 
23
- hsv[2] = clamp01(hsv[2] * (1 - amount));
28
+ hsv[2] = clamp01(hsv[2] * clamp01(1 - amount));
24
29
 
25
30
  okhsv_to_linear_srgb(r, ...hsv);
26
31
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply_mat4_transform_to_direction_v3_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/apply_mat4_transform_to_direction_v3_array.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,mEAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,eACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,sBAClC,MAAM,gBACN,MAAM,QACN,MAAK,MAAM,EAAE,GAAC,YAAY,QA4CpC"}
@@ -1,4 +1,4 @@
1
- import { v3_length } from "../vec3/v3_length.js";
1
+ import { v3_length } from "../../vec3/v3_length.js";
2
2
 
3
3
  /**
4
4
  * Matrix-transform an array of 3d direction vectors
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply_mat4_transform_to_v3_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/apply_mat4_transform_to_v3_array.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,yDAPW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,eACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,sBAClC,MAAM,gBACN,MAAM,QACN,MAAK,MAAM,EAAE,GAAC,YAAY,QA8CpC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose_matrix4_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/compose_matrix4_array.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,8CALW,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,YACzB;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAE,YAChC;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAE,SAC1C;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAE,QA+C3C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompose_matrix_4_array.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/decompose_matrix_4_array.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,+CALW,MAAM,EAAE,YACR,OAAO,YACP,UAAU,SACV,OAAO,QA0DjB"}
@@ -1,4 +1,4 @@
1
- import { v3_length } from "../vec3/v3_length.js";
1
+ import { v3_length } from "../../vec3/v3_length.js";
2
2
 
3
3
  /**
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eulerAnglesFromMatrix.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/eulerAnglesFromMatrix.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,2CANW,MAAM,EAAE,MACR,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,MAC1B,MAAM,MACN,MAAM,MACN,MAAM,QA2EhB"}
@@ -1,4 +1,4 @@
1
- import { v2_length } from "../vec2/v2_length.js";
1
+ import { v2_length } from "../../vec2/v2_length.js";
2
2
 
3
3
 
4
4
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"m4_extract_scale.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/mat4/m4_extract_scale.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,sCAJW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,QACN,MAAM,EAAE,GAAC,YAAY,QA6B/B"}
@@ -1,4 +1,4 @@
1
- import { v3_length } from "../vec3/v3_length.js";
1
+ import { v3_length } from "../../vec3/v3_length.js";
2
2
 
3
3
  /**
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Ray3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/ray/Ray3.js"],"names":[],"mappings":"AASA;;;GAGG;AACH;IA0MI;;;;;;;;;;OAUG;IACH,sBATW,MAAM,YACN,MAAM,YACN,MAAM,eACN,MAAM,eACN,MAAM,eACN,MAAM,UACN,MAAM,GACL,IAAI,CAqBf;IAvOD,cAKC;IAMD,iBAEC;IAND,gBAEC;IAGG,OAAW;IAOf;;;OAGG;IACH,cAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,cAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAUD,uBAEC;IAED,uBAEC;IAED,uBAEC;IAGD;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAQf;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,YAAY,EAI/B;IAVD,iBAMW,MAAM,EAAE,GAAC,YAAY,CAJ/B;IAWD,0BAEC;IAED,0BAEC;IAED,0BAEC;IAED;;;;;OAKG;IACH,gBAJW,MAAM,KACN,MAAM,KACN,MAAM,QAUhB;IAHG,UAAW;IACX,UAAW;IACX,UAAW;IAGf,2BAEC;IAED;;;;;;;OAOG;IACH,gCANW,MAAM,KACN,MAAM,KACN,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,sBAC1B,MAAM,EAAE,GAAC,YAAY,GAAC,IAAI,QA6BpC;IAED;;;OAGG;IACH,uBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,iBAFW,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,QAepC;IAED;;;OAGG;IACH,SAFa,IAAI,CAQhB;IAED;;;OAGG;IACH,YAFW,IAAI,QAId;IAED,eAEC;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CAInB;CAiCJ"}
@@ -1,11 +1,11 @@
1
- import { assert } from "../../assert.js";
2
- import { array_copy } from "../../collection/array/array_copy.js";
3
- import { array_range_equal_strict } from "../../collection/array/array_range_equal_strict.js";
4
- import { computeHashFloatArray } from "../../math/hash/computeHashFloatArray.js";
5
- import { v3_array_matrix4_rotate } from "../vec3/v3_array_matrix4_rotate.js";
6
- import { v3_array_normalize } from "../vec3/v3_array_normalize.js";
7
- import { v3_matrix4_multiply } from "../vec3/v3_matrix4_multiply.js";
8
- import { ray3_interval_array_apply_matrix4 } from "./ray/ray3_interval_array_apply_matrix4.js";
1
+ import { assert } from "../../../assert.js";
2
+ import { array_copy } from "../../../collection/array/array_copy.js";
3
+ import { array_range_equal_strict } from "../../../collection/array/array_range_equal_strict.js";
4
+ import { computeHashFloatArray } from "../../../math/hash/computeHashFloatArray.js";
5
+ import { v3_array_matrix4_rotate } from "../../vec3/v3_array_matrix4_rotate.js";
6
+ import { v3_array_normalize } from "../../vec3/v3_array_normalize.js";
7
+ import { v3_matrix4_multiply } from "../../vec3/v3_matrix4_multiply.js";
8
+ import { ray3_interval_array_apply_matrix4 } from "./ray3_interval_array_apply_matrix4.js";
9
9
 
10
10
  /**
11
11
  * 3D ray
@@ -6,7 +6,7 @@ import { sign } from "../../../math/sign.js";
6
6
  import { v3_length } from "../../vec3/v3_length.js";
7
7
  import { v3_matrix4_multiply } from "../../vec3/v3_matrix4_multiply.js";
8
8
  import { aabb3_matrix4_project } from "../aabb/aabb3_matrix4_project.js";
9
- import { m4_extract_scale } from "../m4_extract_scale.js";
9
+ import { m4_extract_scale } from "../mat4/m4_extract_scale.js";
10
10
  import { m4_invert } from "../mat4/m4_invert.js";
11
11
  import { AbstractShape3D } from "./AbstractShape3D.js";
12
12
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute_bounding_sphere_of_2_spheres.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/sphere/compute_bounding_sphere_of_2_spheres.js"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH,6DAJW,YAAY,GAAC,IAAI,GAAC,MAAM,EAAE,KAC1B,YAAY,GAAC,IAAI,GAAC,MAAM,EAAE,KAC1B,YAAY,GAAC,IAAI,GAAC,MAAM,EAAE,QAoDpC"}
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
  import { vec3 } from "gl-matrix";
5
- import { Miniball } from "../packing/miniball/Miniball.js";
6
- import { PointSet } from "../packing/miniball/PointSet.js";
7
- import { max2 } from "../../math/max2.js";
5
+ import { max2 } from "../../../math/max2.js";
6
+ import { Miniball } from "../../packing/miniball/Miniball.js";
7
+ import { PointSet } from "../../packing/miniball/PointSet.js";
8
8
 
9
9
  /**
10
10
  *
@@ -1,6 +1,6 @@
1
1
  import { v3_length } from "../../../vec3/v3_length.js";
2
+ import { Ray3 } from "../../ray/Ray3.js";
2
3
  import { ray3_array_compose } from "../../ray/ray3_array_compose.js";
3
- import { Ray3 } from "../../Ray3.js";
4
4
 
5
5
  const scratch = [];
6
6
  const ray = new Ray3();
@@ -2,7 +2,7 @@ import { vec3 } from "gl-matrix";
2
2
  import { EPSILON } from "../../../../../math/EPSILON.js";
3
3
  import { fabsf } from "../../../../../math/fabsf.js";
4
4
  import { v3_dot } from "../../../../vec3/v3_dot.js";
5
- import { compute_triangle_normal } from "../../../compute_triangle_normal.js";
5
+ import { compute_triangle_normal } from "../../../triangle/compute_triangle_normal.js";
6
6
 
7
7
  const scratch_v3 = new Float32Array(3);
8
8
  const scratch_m3 = new Float32Array(9);
@@ -3,7 +3,7 @@ import { assert } from "../../../../assert.js";
3
3
  import { array_push_if_unique } from "../../../../collection/array/array_push_if_unique.js";
4
4
  import { array_remove_first } from "../../../../collection/array/array_remove_first.js";
5
5
  import { array_replace_all } from "../../../../collection/array/array_replace_all.js";
6
- import { compute_triangle_normal } from "../../compute_triangle_normal.js";
6
+ import { compute_triangle_normal } from "../../triangle/compute_triangle_normal.js";
7
7
  import { TopoEdge } from "./TopoEdge.js";
8
8
  import { TopoVertex } from "./TopoVertex.js";
9
9
 
@@ -1,4 +1,4 @@
1
- import { compute_triangle_normal } from "../compute_triangle_normal.js";
1
+ import { compute_triangle_normal } from "../triangle/compute_triangle_normal.js";
2
2
 
3
3
  /**
4
4
  *
@@ -1,5 +1,5 @@
1
1
  import { v3_length } from "../../vec3/v3_length.js";
2
- import { compute_triangle_normal } from "../compute_triangle_normal.js";
2
+ import { compute_triangle_normal } from "../triangle/compute_triangle_normal.js";
3
3
  //
4
4
 
5
5
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aabb3_compute_from_triangle.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/triangle/aabb3_compute_from_triangle.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,oDAPW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,YACN,MAAM,EAAE,GAAC,YAAY,WACrB,MAAM,WACN,MAAM,WACN,MAAM,QAgChB"}
@@ -1,5 +1,5 @@
1
- import { max3 } from "../../math/max3.js";
2
- import { min3 } from "../../math/min3.js";
1
+ import { max3 } from "../../../math/max3.js";
2
+ import { min3 } from "../../../math/min3.js";
3
3
 
4
4
  /**
5
5
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compute_triangle_normal.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/triangle/compute_triangle_normal.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,gDALW,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,GAAC,YAAY,MACvC,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,GAAC,YAAY,GAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAC,MACtE,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,GAAC,YAAY,GAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAC,MACtE,MAAM,EAAE,GAAC,IAAI,GAAC,YAAY,GAAC,YAAY,GAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAA;CAAC,QAiBhF"}
@@ -1,4 +1,4 @@
1
- import { v3_compute_triangle_normal } from "./triangle/v3_compute_triangle_normal.js";
1
+ import { v3_compute_triangle_normal } from "./v3_compute_triangle_normal.js";
2
2
 
3
3
  /**
4
4
  *
@@ -1,16 +1,16 @@
1
1
  /**
2
- *
3
- * @param {number[]|Float32Array} result
4
- * @param {number} result_offset
5
- * @param {number} vAx
6
- * @param {number} vAy
7
- * @param {number} vAz
8
- * @param {number} vBx
9
- * @param {number} vBy
10
- * @param {number} vBz
11
- * @param {number} vCx
12
- * @param {number} vCy
13
- * @param {number} vCz
2
+ * Compute face normal for a triangle
3
+ * @param {number[]|Float32Array} result X,Y,Z normalized vector is written here
4
+ * @param {number} result_offset offset into result array where to start writing
5
+ * @param {number} a_x
6
+ * @param {number} a_y
7
+ * @param {number} a_z
8
+ * @param {number} b_x
9
+ * @param {number} b_y
10
+ * @param {number} b_z
11
+ * @param {number} c_x
12
+ * @param {number} c_y
13
+ * @param {number} c_z
14
14
  */
15
- export function v3_compute_triangle_normal(result: number[] | Float32Array, result_offset: number, vAx: number, vAy: number, vAz: number, vBx: number, vBy: number, vBz: number, vCx: number, vCy: number, vCz: number): void;
15
+ export function v3_compute_triangle_normal(result: number[] | Float32Array, result_offset: number, a_x: number, a_y: number, a_z: number, b_x: number, b_y: number, b_z: number, c_x: number, c_y: number, c_z: number): void;
16
16
  //# sourceMappingURL=v3_compute_triangle_normal.d.ts.map