@woosh/meep-engine 2.110.8 → 2.110.10

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 (210) hide show
  1. package/build/bundle-worker-terrain.js +1 -1
  2. package/build/meep.cjs +116 -107
  3. package/build/meep.min.js +1 -1
  4. package/build/meep.module.js +116 -107
  5. package/editor/tools/v2/TransformControls.js +11 -6
  6. package/package.json +2 -1
  7. package/src/core/UUID.d.ts +3 -0
  8. package/src/core/UUID.d.ts.map +1 -1
  9. package/src/core/UUID.js +9 -7
  10. package/src/core/collection/array/arraySetDiff.d.ts.map +1 -1
  11. package/src/core/collection/array/arraySetDiff.js +0 -1
  12. package/src/core/collection/array/binarySearchHighIndex.d.ts.map +1 -1
  13. package/src/core/collection/array/binarySearchHighIndex.js +7 -1
  14. package/src/core/collection/array/computeHashArray.d.ts.map +1 -1
  15. package/src/core/collection/array/computeHashArray.js +3 -2
  16. package/src/core/collection/array/fastArrayEquals.d.ts +1 -0
  17. package/src/core/collection/array/fastArrayEquals.d.ts.map +1 -1
  18. package/src/core/collection/array/fastArrayEquals.js +1 -0
  19. package/src/core/collection/array/isArrayEqual.d.ts.map +1 -1
  20. package/src/core/collection/array/isArrayEqual.js +9 -12
  21. package/src/core/collection/array/isArrayEqual.spec.d.ts +2 -0
  22. package/src/core/collection/array/isArrayEqual.spec.d.ts.map +1 -0
  23. package/src/core/collection/array/isArrayEqual.spec.js +25 -0
  24. package/src/core/collection/array/typed/is_typed_array_equals.d.ts.map +1 -1
  25. package/src/core/collection/array/typed/is_typed_array_equals.js +1 -0
  26. package/src/core/function/makeSequenceLoop.d.ts.map +1 -0
  27. package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
  28. package/src/core/geom/2d/aabb/AABB2.js +27 -1
  29. package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
  30. package/src/core/geom/3d/shape/AbstractShape3D.js +14 -0
  31. package/src/core/geom/3d/shape/PointShape3D.d.ts +9 -0
  32. package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -0
  33. package/src/core/geom/3d/shape/PointShape3D.js +14 -0
  34. package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
  35. package/src/core/geom/3d/shape/TransformedShape3D.js +26 -8
  36. package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
  37. package/src/core/geom/3d/shape/UnionShape3D.js +33 -4
  38. package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
  39. package/src/core/geom/3d/shape/UnitCubeShape3D.js +13 -6
  40. package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
  41. package/src/core/geom/3d/shape/UnitSphereShape3D.js +10 -0
  42. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +15 -8
  43. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
  44. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +33 -9
  45. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.d.ts +1 -1
  46. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.d.ts.map +1 -1
  47. package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +7 -7
  48. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.d.ts +2 -0
  49. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.d.ts.map +1 -0
  50. package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +61 -0
  51. package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.d.ts +9 -0
  52. package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.d.ts.map +1 -0
  53. package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.js +18 -0
  54. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts +9 -0
  55. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts.map +1 -0
  56. package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.js +21 -0
  57. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts +2 -10
  58. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts.map +1 -1
  59. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +3 -40
  60. package/src/core/geom/3d/v3_compute_triangle_normal.js +1 -1
  61. package/src/core/geom/3d/v3_negate_array.d.ts +9 -0
  62. package/src/core/geom/3d/v3_negate_array.d.ts.map +1 -0
  63. package/src/core/geom/3d/v3_negate_array.js +16 -0
  64. package/src/core/geom/Quaternion.d.ts.map +1 -1
  65. package/src/core/geom/Quaternion.js +30 -77
  66. package/src/core/geom/Vector3.d.ts +4 -0
  67. package/src/core/geom/Vector3.js +4 -4
  68. package/src/core/geom/mat3/m3_cm_invert.d.ts +7 -0
  69. package/src/core/geom/mat3/m3_cm_invert.d.ts.map +1 -0
  70. package/src/core/geom/mat3/m3_cm_invert.js +45 -0
  71. package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts +10 -0
  72. package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts.map +1 -0
  73. package/src/core/geom/vec2/v2_matrix3_cm_multiply.js +20 -0
  74. package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts +10 -0
  75. package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts.map +1 -0
  76. package/src/core/geom/vec2/v2_matrix3_rm_multiply.js +21 -0
  77. package/src/core/geom/vec3/v3_cross_array.d.ts +11 -0
  78. package/src/core/geom/vec3/v3_cross_array.d.ts.map +1 -0
  79. package/src/core/geom/vec3/v3_cross_array.js +31 -0
  80. package/src/core/geom/vec3/v3_displace_in_direction.js +3 -2
  81. package/src/core/geom/vec3/v3_displace_in_direction_array.d.ts +12 -0
  82. package/src/core/geom/vec3/v3_displace_in_direction_array.d.ts.map +1 -0
  83. package/src/core/geom/vec3/v3_displace_in_direction_array.js +22 -0
  84. package/src/core/geom/vec3/v3_dot_array_array.d.ts.map +1 -1
  85. package/src/core/geom/vec3/v3_dot_array_array.js +4 -1
  86. package/src/core/geom/vec3/v3_normalize_array.d.ts +3 -3
  87. package/src/core/geom/vec3/v3_normalize_array.d.ts.map +1 -1
  88. package/src/core/geom/vec3/v3_normalize_array.js +3 -3
  89. package/src/core/math/copysign.d.ts +1 -1
  90. package/src/core/math/copysign.js +1 -1
  91. package/src/core/math/epsilonEquals.d.ts.map +1 -1
  92. package/src/core/math/epsilonEquals.js +3 -2
  93. package/src/core/math/linalg/README.md +1 -1
  94. package/src/core/math/random/randomGaussian.spec.js +1 -1
  95. package/src/core/math/spline/spline_hermite3.d.ts +1 -1
  96. package/src/core/math/spline/spline_hermite3.js +3 -2
  97. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts +12 -0
  98. package/src/core/math/spline/spline_hermite3_to_bezier.d.ts.map +1 -0
  99. package/src/core/math/spline/spline_hermite3_to_bezier.js +24 -0
  100. package/src/core/process/delay.d.ts +6 -1
  101. package/src/core/process/delay.d.ts.map +1 -1
  102. package/src/core/process/delay.js +6 -1
  103. package/src/core/process/undo/Mark.d.ts +5 -5
  104. package/src/core/process/undo/Mark.d.ts.map +1 -1
  105. package/src/core/process/undo/Mark.js +6 -5
  106. package/src/core/process/worker/WorkerBuilder.d.ts +13 -2
  107. package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
  108. package/src/core/process/worker/WorkerBuilder.js +8 -0
  109. package/src/core/process/worker/WorkerProxy.d.ts +16 -6
  110. package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
  111. package/src/core/process/worker/WorkerProxy.js +24 -5
  112. package/src/engine/EngineHarness.d.ts +7 -1
  113. package/src/engine/EngineHarness.d.ts.map +1 -1
  114. package/src/engine/EngineHarness.js +12 -1
  115. package/src/engine/animation/clip/AnimationTrack.d.ts.map +1 -1
  116. package/src/engine/animation/clip/AnimationTrack.js +4 -1
  117. package/src/engine/animation/clip/bind_property_writer.d.ts +2 -2
  118. package/src/engine/animation/clip/bind_property_writer.d.ts.map +1 -1
  119. package/src/engine/animation/clip/bind_property_writer.js +22 -13
  120. package/src/engine/animation/clip/curve_from_track_data.d.ts.map +1 -1
  121. package/src/engine/animation/clip/curve_from_track_data.js +9 -1
  122. package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
  123. package/src/engine/animation/clip/ecd_bind_animation_curve.js +6 -5
  124. package/src/engine/animation/curve/AnimationCurve.d.ts +32 -0
  125. package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
  126. package/src/engine/animation/curve/AnimationCurve.js +94 -19
  127. package/src/engine/animation/curve/AnimationCurve.spec.js +67 -0
  128. package/src/engine/animation/curve/Keyframe.d.ts +24 -3
  129. package/src/engine/animation/curve/Keyframe.d.ts.map +1 -1
  130. package/src/engine/animation/curve/Keyframe.js +49 -3
  131. package/src/engine/animation/curve/Keyframe.spec.js +11 -0
  132. package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts +7 -0
  133. package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts.map +1 -0
  134. package/src/engine/animation/curve/{compute_curve_aabb.js → animation_curve_compute_aabb.js} +1 -1
  135. package/src/engine/animation/curve/animation_curve_optimize.d.ts +8 -0
  136. package/src/engine/animation/curve/animation_curve_optimize.d.ts.map +1 -0
  137. package/src/engine/animation/curve/animation_curve_optimize.js +89 -0
  138. package/src/engine/animation/curve/animation_curve_optimize.spec.d.ts +2 -0
  139. package/src/engine/animation/curve/animation_curve_optimize.spec.d.ts.map +1 -0
  140. package/src/engine/animation/curve/animation_curve_optimize.spec.js +50 -0
  141. package/src/engine/animation/curve/draw/build_curve_editor.d.ts.map +1 -1
  142. package/src/engine/animation/curve/draw/build_curve_editor.js +17 -11
  143. package/src/engine/animation/curve/evaluate_two_key_curve.d.ts +9 -0
  144. package/src/engine/animation/curve/evaluate_two_key_curve.d.ts.map +1 -0
  145. package/src/engine/animation/curve/evaluate_two_key_curve.js +23 -0
  146. package/src/engine/animation/curve/prototypeGLTF.js +14 -14
  147. package/src/engine/animation/curve/view/AnimationCurveView.d.ts +47 -0
  148. package/src/engine/animation/curve/view/AnimationCurveView.d.ts.map +1 -0
  149. package/src/engine/animation/curve/view/AnimationCurveView.js +343 -0
  150. package/src/engine/animation/curve/view/prototype.d.ts +2 -0
  151. package/src/engine/animation/curve/view/prototype.d.ts.map +1 -0
  152. package/src/engine/animation/curve/view/prototype.js +86 -0
  153. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts +6 -1
  154. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
  155. package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +11 -6
  156. package/src/engine/ecs/guid/{GUID.d.ts → UUID.d.ts} +27 -15
  157. package/src/engine/ecs/guid/UUID.d.ts.map +1 -0
  158. package/src/engine/ecs/guid/{GUID.js → UUID.js} +52 -17
  159. package/src/engine/ecs/guid/UUID.spec.d.ts +2 -0
  160. package/src/engine/ecs/guid/UUID.spec.d.ts.map +1 -0
  161. package/src/engine/ecs/guid/{GUID.spec.js → UUID.spec.js} +25 -12
  162. package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts +18 -0
  163. package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts.map +1 -0
  164. package/src/engine/ecs/guid/{GUIDSerializationAdapter.js → UUIDSerializationAdapter.js} +5 -5
  165. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts +2 -0
  166. package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts.map +1 -0
  167. package/src/engine/ecs/guid/{GUIDSerializationAdapter.spec.js → UUIDSerializationAdapter.spec.js} +5 -5
  168. package/src/engine/ecs/ik/InverseKinematics.js +3 -3
  169. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
  170. package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +1 -140
  171. package/src/engine/input/ecs/systems/InputControllerSystem.js +1 -1
  172. package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.d.ts +1 -1
  173. package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.js +4 -4
  174. package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts +13 -0
  175. package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts.map +1 -0
  176. package/src/engine/physics/gjk/expanding_polytope_algorithm.js +395 -0
  177. package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.d.ts +2 -0
  178. package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.d.ts.map +1 -0
  179. package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.js +46 -0
  180. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.d.ts +18 -0
  181. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.d.ts.map +1 -0
  182. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.js +277 -0
  183. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.d.ts +2 -0
  184. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.d.ts.map +1 -0
  185. package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.js +43 -0
  186. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts +12 -0
  187. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -0
  188. package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +100 -0
  189. package/src/engine/physics/inverse_kinematics/fabrik/prototype.d.ts +2 -0
  190. package/src/engine/physics/inverse_kinematics/fabrik/prototype.d.ts.map +1 -0
  191. package/src/engine/physics/inverse_kinematics/fabrik/prototype.js +112 -0
  192. package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts +16 -0
  193. package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts.map +1 -0
  194. package/src/engine/physics/inverse_kinematics/two_joint_ik.js +127 -0
  195. package/src/view/elements/DropDownSelectionView.js +2 -2
  196. package/src/view/elements/tiles2d/Tile.d.ts +1 -1
  197. package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
  198. package/src/view/elements/tiles2d/Tile.js +3 -3
  199. package/src/core/math/makeSequenceLoop.d.ts.map +0 -1
  200. package/src/engine/animation/curve/compute_curve_aabb.d.ts +0 -7
  201. package/src/engine/animation/curve/compute_curve_aabb.d.ts.map +0 -1
  202. package/src/engine/ecs/guid/GUID.d.ts.map +0 -1
  203. package/src/engine/ecs/guid/GUID.spec.d.ts +0 -2
  204. package/src/engine/ecs/guid/GUID.spec.d.ts.map +0 -1
  205. package/src/engine/ecs/guid/GUIDSerializationAdapter.d.ts +0 -18
  206. package/src/engine/ecs/guid/GUIDSerializationAdapter.d.ts.map +0 -1
  207. package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts +0 -2
  208. package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts.map +0 -1
  209. /package/src/core/{math → function}/makeSequenceLoop.d.ts +0 -0
  210. /package/src/core/{math → function}/makeSequenceLoop.js +0 -0
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cross product
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number[]|Float32Array} a
6
+ * @param {number} a_offset
7
+ * @param {number[]|Float32Array} b
8
+ * @param {number} b_offset
9
+ */
10
+ export function v3_cross_array(output: number[] | Float32Array, output_offset: number, a: number[] | Float32Array, a_offset: number, b: number[] | Float32Array, b_offset: number): void;
11
+ //# sourceMappingURL=v3_cross_array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3_cross_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_cross_array.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,uCAPW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,KACN,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,KACN,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,QAuBhB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Cross product
3
+ * @param {number[]|Float32Array} output
4
+ * @param {number} output_offset
5
+ * @param {number[]|Float32Array} a
6
+ * @param {number} a_offset
7
+ * @param {number[]|Float32Array} b
8
+ * @param {number} b_offset
9
+ */
10
+ export function v3_cross_array(
11
+ output, output_offset,
12
+ a, a_offset,
13
+ b, b_offset,
14
+ ) {
15
+
16
+ const ax = a[a_offset];
17
+ const ay = a[a_offset + 1];
18
+ const az = a[a_offset + 2];
19
+
20
+ const bx = b[b_offset];
21
+ const by = b[b_offset + 1];
22
+ const bz = b[b_offset + 2];
23
+
24
+ const x = ay * bz - az * by;
25
+ const y = az * bx - ax * bz;
26
+ const z = ax * by - ay * bx;
27
+
28
+ output[output_offset] = x;
29
+ output[output_offset + 1] = y;
30
+ output[output_offset + 2] = z;
31
+ }
@@ -16,7 +16,7 @@ export function v3_displace_in_direction(
16
16
  origin_x, source_y, source_z,
17
17
  direction_x, direction_y, direction_z
18
18
  ) {
19
-
19
+
20
20
  if (distance === 0) {
21
21
  result.set(origin_x, source_y, source_z);
22
22
  return true;
@@ -43,4 +43,5 @@ export function v3_displace_in_direction(
43
43
  result.set(x, y, z);
44
44
 
45
45
  return true;
46
- }
46
+ }
47
+
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Direction vector must be normalized
3
+ * @param {number[]|Float32Array} result
4
+ * @param {number} result_offset
5
+ * @param {number[]|Float32Array} origin
6
+ * @param {number} origin_offset
7
+ * @param {number[]|Float32Array} direction Must be normalized
8
+ * @param {number} direction_offset
9
+ * @param {number} distance
10
+ */
11
+ export function v3_displace_in_direction_array(result: number[] | Float32Array, result_offset: number, origin: number[] | Float32Array, origin_offset: number, direction: number[] | Float32Array, direction_offset: number, distance: number): void;
12
+ //# sourceMappingURL=v3_displace_in_direction_array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v3_displace_in_direction_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_displace_in_direction_array.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,uDARW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,oBACrB,MAAM,YACN,MAAM,QAahB"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Direction vector must be normalized
3
+ * @param {number[]|Float32Array} result
4
+ * @param {number} result_offset
5
+ * @param {number[]|Float32Array} origin
6
+ * @param {number} origin_offset
7
+ * @param {number[]|Float32Array} direction Must be normalized
8
+ * @param {number} direction_offset
9
+ * @param {number} distance
10
+ */
11
+ export function v3_displace_in_direction_array(
12
+ result, result_offset,
13
+ origin, origin_offset,
14
+ direction, direction_offset,
15
+ distance
16
+ ) {
17
+
18
+ result[result_offset] = origin[origin_offset] + direction[direction_offset + 0] * distance;
19
+ result[result_offset + 1] = origin[origin_offset + 1] + direction[direction_offset + 1] * distance;
20
+ result[result_offset + 2] = origin[origin_offset + 2] + direction[direction_offset + 2] * distance;
21
+
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"v3_dot_array_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_dot_array_array.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,sCANW,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,KACN,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,GACJ,MAAM,CAalB"}
1
+ {"version":3,"file":"v3_dot_array_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_dot_array_array.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,sCANW,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,KACN,MAAM,EAAE,GAAC,YAAY,YACrB,MAAM,GACJ,MAAM,CAgBlB"}
@@ -6,7 +6,10 @@
6
6
  * @param {number} b_offset
7
7
  * @returns {number}
8
8
  */
9
- export function v3_dot_array_array(a, a_offset, b, b_offset) {
9
+ export function v3_dot_array_array(
10
+ a, a_offset,
11
+ b, b_offset
12
+ ) {
10
13
 
11
14
  const a_x = a[a_offset];
12
15
  const a_y = a[a_offset + 1];
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  *
3
- * @param {number[]|Float32Array} input
4
- * @param {number} input_offset
5
3
  * @param {number[]|Float32Array} output
6
4
  * @param {number} output_offset
5
+ * @param {number[]|Float32Array} input
6
+ * @param {number} input_offset
7
7
  */
8
- export function v3_normalize_array(input: number[] | Float32Array, input_offset: number, output: number[] | Float32Array, output_offset: number): void;
8
+ export function v3_normalize_array(output: number[] | Float32Array, output_offset: number, input: number[] | Float32Array, input_offset: number): void;
9
9
  //# sourceMappingURL=v3_normalize_array.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"v3_normalize_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_normalize_array.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,0CALW,MAAM,EAAE,GAAC,YAAY,gBACrB,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,QAqBhB"}
1
+ {"version":3,"file":"v3_normalize_array.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec3/v3_normalize_array.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,2CALW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,SACN,MAAM,EAAE,GAAC,YAAY,gBACrB,MAAM,QAqBhB"}
@@ -2,14 +2,14 @@ import { v3_length } from "./v3_length.js";
2
2
 
3
3
  /**
4
4
  *
5
- * @param {number[]|Float32Array} input
6
- * @param {number} input_offset
7
5
  * @param {number[]|Float32Array} output
8
6
  * @param {number} output_offset
7
+ * @param {number[]|Float32Array} input
8
+ * @param {number} input_offset
9
9
  */
10
10
  export function v3_normalize_array(
11
+ output, output_offset,
11
12
  input, input_offset,
12
- output, output_offset
13
13
  ) {
14
14
 
15
15
 
@@ -2,7 +2,7 @@
2
2
  * Returns a value with the magnitude of x and the sign of y.
3
3
  * NOTE: a port of c++ method from tgmath.h
4
4
  * @param {number} x
5
- * @param {number} y
5
+ * @param {number} y take sign from this value
6
6
  * @returns {number}
7
7
  */
8
8
  export function copysign(x: number, y: number): number;
@@ -2,7 +2,7 @@
2
2
  * Returns a value with the magnitude of x and the sign of y.
3
3
  * NOTE: a port of c++ method from tgmath.h
4
4
  * @param {number} x
5
- * @param {number} y
5
+ * @param {number} y take sign from this value
6
6
  * @returns {number}
7
7
  */
8
8
  export function copysign(x, y) {
@@ -1 +1 @@
1
- {"version":3,"file":"epsilonEquals.d.ts","sourceRoot":"","sources":["../../../../src/core/math/epsilonEquals.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,iCALW,MAAM,KACN,MAAM,aACN,MAAM,GACJ,OAAO,CASnB"}
1
+ {"version":3,"file":"epsilonEquals.d.ts","sourceRoot":"","sources":["../../../../src/core/math/epsilonEquals.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,iCALW,MAAM,KACN,MAAM,cACN,MAAM,GACJ,OAAO,CASnB"}
@@ -1,13 +1,14 @@
1
1
  import { assert } from "../assert.js";
2
+ import { EPSILON } from "./EPSILON.js";
2
3
 
3
4
  /**
4
5
  * Comparison of two numbers with a given tolerance
5
6
  * @param {number} a
6
7
  * @param {number} b
7
- * @param {number} tolerance
8
+ * @param {number} [tolerance]
8
9
  * @returns {boolean}
9
10
  */
10
- export function epsilonEquals(a, b, tolerance) {
11
+ export function epsilonEquals(a, b, tolerance = EPSILON) {
11
12
  assert.isNumber(a, 'a');
12
13
  assert.isNumber(b, 'b');
13
14
  assert.isNumber(tolerance, 'tolerance');
@@ -1 +1 @@
1
- Linear Argebra package
1
+ # Linear Algebra package
@@ -1,4 +1,4 @@
1
- import { makeSequenceLoop } from "../makeSequenceLoop.js";
1
+ import { makeSequenceLoop } from "../../function/makeSequenceLoop.js";
2
2
  import { randomGaussian } from "./randomGaussian.js";
3
3
 
4
4
  test("sample is average of rolls", () => {
@@ -4,7 +4,7 @@
4
4
  * @param {number} t normalized interpolation position in interval [0,1]
5
5
  * @param {number} p0 first value
6
6
  * @param {number} p1 second value
7
- * @param {number} m0 first tangent (tangent existing from first value)
7
+ * @param {number} m0 first tangent (tangent exiting from first value)
8
8
  * @param {number} m1 second tangent (tangent entering into second value)
9
9
  * @return {number}
10
10
  */
@@ -4,7 +4,7 @@
4
4
  * @param {number} t normalized interpolation position in interval [0,1]
5
5
  * @param {number} p0 first value
6
6
  * @param {number} p1 second value
7
- * @param {number} m0 first tangent (tangent existing from first value)
7
+ * @param {number} m0 first tangent (tangent exiting from first value)
8
8
  * @param {number} m1 second tangent (tangent entering into second value)
9
9
  * @return {number}
10
10
  */
@@ -19,4 +19,5 @@ export function spline_hermite3(t, p0, p1, m0, m1) {
19
19
  const d = -2 * t3 + 3 * t2;
20
20
 
21
21
  return a * p0 + b * m0 + c * m1 + d * p1;
22
- }
22
+ }
23
+
@@ -0,0 +1,12 @@
1
+ /**
2
+ * TODO: not tested
3
+ * @param {Float32Array|number[]} result
4
+ * @param {number} result_offset
5
+ * @param {number} result_stride
6
+ * @param {number} p0
7
+ * @param {number} p1
8
+ * @param {number} m0
9
+ * @param {number} m1
10
+ */
11
+ export function spline_hermite3_to_bezier(result: Float32Array | number[], result_offset: number, result_stride: number, p0: number, p1: number, m0: number, m1: number): void;
12
+ //# sourceMappingURL=spline_hermite3_to_bezier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spline_hermite3_to_bezier.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3_to_bezier.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,kDARW,YAAY,GAAC,MAAM,EAAE,iBACrB,MAAM,iBACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAehB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * TODO: not tested
3
+ * @param {Float32Array|number[]} result
4
+ * @param {number} result_offset
5
+ * @param {number} result_stride
6
+ * @param {number} p0
7
+ * @param {number} p1
8
+ * @param {number} m0
9
+ * @param {number} m1
10
+ */
11
+ export function spline_hermite3_to_bezier(result, result_offset, result_stride, p0, p1, m0, m1) {
12
+
13
+ // see https://stackoverflow.com/questions/42574940/draw-hermite-curve-on-browser-canvas-javascript
14
+ // see https://pomax.github.io/bezierinfo/#catmullconv
15
+
16
+ const tension = 1;
17
+ const tension_factor = 2 * tension;
18
+
19
+ result[result_offset + 0 * result_stride] = p0;
20
+ result[result_offset + 1 * result_stride] = p0 + m0 / tension_factor;
21
+ result[result_offset + 2 * result_stride] = p1 - m1 / tension_factor;
22
+ result[result_offset + 3 * result_stride] = p1;
23
+
24
+ }
@@ -1,2 +1,7 @@
1
- export function delay(timeout_ms: any): Promise<any>;
1
+ /**
2
+ *
3
+ * @param {number} timeout_ms in milliseconds
4
+ * @return {Promise<unknown>}
5
+ */
6
+ export function delay(timeout_ms: number): Promise<unknown>;
2
7
  //# sourceMappingURL=delay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../../src/core/process/delay.js"],"names":[],"mappings":"AAAA,qDAIC"}
1
+ {"version":3,"file":"delay.d.ts","sourceRoot":"","sources":["../../../../src/core/process/delay.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,kCAHW,MAAM,GACL,QAAQ,OAAO,CAAC,CAM3B"}
@@ -1,4 +1,9 @@
1
- export function delay(timeout_ms) {
1
+ /**
2
+ *
3
+ * @param {number} timeout_ms in milliseconds
4
+ * @return {Promise<unknown>}
5
+ */
6
+ export function delay(timeout_ms) {
2
7
  return new Promise((resolve, reject) => {
3
8
  setTimeout(resolve, timeout_ms);
4
9
  });
@@ -10,16 +10,16 @@ export class Mark {
10
10
  *
11
11
  * @type {number}
12
12
  */
13
- index: number;
13
+ memoryUsage: number;
14
14
  /**
15
15
  *
16
- * @type {D}
16
+ * @type {number}
17
17
  */
18
- description: D;
18
+ index: number;
19
19
  /**
20
20
  *
21
- * @type {number}
21
+ * @type {D}
22
22
  */
23
- memoryUsage: number;
23
+ description: D;
24
24
  }
25
25
  //# sourceMappingURL=Mark.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mark.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/undo/Mark.js"],"names":[],"mappings":"AAEA;IACI;;;;;OAKG;IACH,mBAJW,MAAM,kBAwBhB;IAjBG;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAA8B;IAE9B;;;OAGG;IACH,aAFU,MAAM,CAEI;CAE3B"}
1
+ {"version":3,"file":"Mark.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/undo/Mark.js"],"names":[],"mappings":"AAEA;IAOI;;;;;OAKG;IACH,mBAJW,MAAM,kBAmBhB;IA3BD;;;OAGG;IACH,aAFU,MAAM,CAEA;IAWZ;;;OAGG;IACH,OAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAA8B;CAGrC"}
@@ -1,6 +1,12 @@
1
1
  import { assert } from "../../assert.js";
2
2
 
3
3
  export class Mark {
4
+ /**
5
+ *
6
+ * @type {number}
7
+ */
8
+ memoryUsage = 0;
9
+
4
10
  /**
5
11
  * @template D
6
12
  * @param {number} index
@@ -22,10 +28,5 @@ export class Mark {
22
28
  */
23
29
  this.description = description;
24
30
 
25
- /**
26
- *
27
- * @type {number}
28
- */
29
- this.memoryUsage = 0;
30
31
  }
31
32
  }
@@ -1,8 +1,19 @@
1
1
  export default WorkerBuilder;
2
2
  declare class WorkerBuilder {
3
- imports: any[];
3
+ /**
4
+ *
5
+ * @type {string[]}
6
+ */
7
+ imports: string[];
4
8
  methods: {};
5
- functions: any[];
9
+ /**
10
+ *
11
+ * @type {{f:function, name:string}[]}
12
+ */
13
+ functions: {
14
+ f: Function;
15
+ name: string;
16
+ }[];
6
17
  preamble: LineBuilder;
7
18
  /**
8
19
  *
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/worker/WorkerBuilder.js"],"names":[],"mappings":";AAQA;IAEI,eAAa;IACb,YAAa;IACb,iBAAe;IACf,sBAA6B;IAE7B;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,UACN,WAAS,MAAM,QAIzB;IAED;;;;;OAKG;IACH,6CAKC;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,SAFa,WAAW,CAyGvB;CACJ;wBAjKuB,8BAA8B;wBAC9B,kBAAkB"}
1
+ {"version":3,"file":"WorkerBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/worker/WorkerBuilder.js"],"names":[],"mappings":";AAQA;IAEI;;;OAGG;IACH,SAFU,MAAM,EAAE,CAEL;IACb,YAAa;IACb;;;OAGG;IACH,WAFU;QAAC,CAAC,WAAU;QAAC,MAAK,MAAM,CAAA;KAAC,EAAE,CAEtB;IACf,sBAA6B;IAE7B;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;;OAIG;IACH,gBAHW,MAAM,UACN,WAAS,MAAM,QAIzB;IAED;;;;;OAKG;IACH,6CAKC;IAED;;;OAGG;IACH,mBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,SAFa,WAAW,CAyGvB;CACJ;wBAzKuB,8BAA8B;wBAC9B,kBAAkB"}
@@ -8,8 +8,16 @@ const RxMatchFunctionName = /(function\s*)([a-zA-Z0-9_]+)?(\s*\([^\]]*\)\s*\{.*)
8
8
 
9
9
  class WorkerBuilder {
10
10
 
11
+ /**
12
+ *
13
+ * @type {string[]}
14
+ */
11
15
  imports = [];
12
16
  methods = {};
17
+ /**
18
+ *
19
+ * @type {{f:function, name:string}[]}
20
+ */
13
21
  functions = [];
14
22
  preamble = new LineBuilder();
15
23
 
@@ -1,7 +1,12 @@
1
1
  export default WorkerProxy;
2
2
  declare class WorkerProxy {
3
3
  constructor(url: any, methods: any);
4
- __pending: {};
4
+ /**
5
+ *
6
+ * @type {{}}
7
+ * @private
8
+ */
9
+ private __pending;
5
10
  __isRunning: boolean;
6
11
  /**
7
12
  *
@@ -20,12 +25,17 @@ declare class WorkerProxy {
20
25
  /**
21
26
  * Invoke a given method on the worker, as defined by the `WorkerBuilder`
22
27
  * @template T
23
- * @param {number} name Method's name
28
+ * @param {string} name Method's name
24
29
  * @param {Array} args
25
30
  * @return {Promise<T>} eventual result of the invoked method
26
31
  */
27
- $submitRequest<T>(name: number, args: any[]): Promise<T>;
28
- __makeMethod(name: any): void;
32
+ $submitRequest<T>(name: string, args: any[]): Promise<T>;
33
+ /**
34
+ *
35
+ * @param {string} name
36
+ * @private
37
+ */
38
+ private __makeMethod;
29
39
  __generateAPI(): void;
30
40
  /**
31
41
  *
@@ -38,10 +48,10 @@ declare class WorkerProxy {
38
48
  /**
39
49
  *
40
50
  * @param {number} id
41
- * @param {string} methodName
51
+ * @param {string} method_name
42
52
  * @returns {boolean}
43
53
  */
44
- cancelRequest(id: number, methodName: string): boolean;
54
+ cancelRequest(id: number, method_name: string): boolean;
45
55
  sendPendingRequests(): void;
46
56
  start(): void;
47
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WorkerProxy.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/worker/WorkerProxy.js"],"names":[],"mappings":";AAmCA;IAoBI,oCAKC;IAvBD,cAAe;IACf,qBAAoB;IAEpB;;;;OAIG;IACH,iBAAgB;IAEhB;;;;OAIG;IACH,qBAAiB;IAIb,SAAc;IACd,aAAsB;IAK1B;;;;;;OAMG;IACH,wBAJW,MAAM,2BAiDhB;IAED,8BAaC;IAED,sBAQC;IAED;;;;OAIG;IACH,wBAqCC;IAED,qBAEC;IAED,aAOC;IAED;;;;;OAKG;IACH,kBAJW,MAAM,cACN,MAAM,GACJ,OAAO,CAgCnB;IAED,4BAmBC;IAED,cAiBC;CACJ"}
1
+ {"version":3,"file":"WorkerProxy.d.ts","sourceRoot":"","sources":["../../../../../src/core/process/worker/WorkerProxy.js"],"names":[],"mappings":";AAqCA;IA0BI,oCAKC;IA7BD;;;;OAIG;IACH,kBAAe;IAEf,qBAAoB;IAEpB;;;;OAIG;IACH,iBAAgB;IAEhB;;;;OAIG;IACH,qBAAiB;IAIb,SAAc;IACd,aAAsB;IAK1B;;;;;;OAMG;IACH,wBAJW,MAAM,2BAmDhB;IAED;;;;OAIG;IACH,qBAeC;IAED,sBAQC;IAED;;;;OAIG;IACH,wBAqCC;IAED,qBAEC;IAED,aAOC;IAED;;;;;OAKG;IACH,kBAJW,MAAM,eACN,MAAM,GACJ,OAAO,CAkCnB;IAED,4BAmBC;IAED,cAiBC;CACJ"}
@@ -1,3 +1,5 @@
1
+ import { assert } from "../../assert.js";
2
+
1
3
  /**
2
4
  *
3
5
  * @param {Worker} worker
@@ -35,7 +37,13 @@ function needsSerialization(value) {
35
37
 
36
38
  class WorkerProxy {
37
39
 
40
+ /**
41
+ *
42
+ * @type {{}}
43
+ * @private
44
+ */
38
45
  __pending = {};
46
+
39
47
  __isRunning = false;
40
48
 
41
49
  /**
@@ -63,11 +71,13 @@ class WorkerProxy {
63
71
  /**
64
72
  * Invoke a given method on the worker, as defined by the `WorkerBuilder`
65
73
  * @template T
66
- * @param {number} name Method's name
74
+ * @param {string} name Method's name
67
75
  * @param {Array} args
68
76
  * @return {Promise<T>} eventual result of the invoked method
69
77
  */
70
78
  $submitRequest(name, args) {
79
+ assert.isString(name, "name");
80
+
71
81
  const pending = this.__pending[name];
72
82
 
73
83
  const argumentCount = args.length;
@@ -114,7 +124,14 @@ class WorkerProxy {
114
124
  });
115
125
  }
116
126
 
127
+ /**
128
+ *
129
+ * @param {string} name
130
+ * @private
131
+ */
117
132
  __makeMethod(name) {
133
+ assert.isString(name, 'name');
134
+
118
135
  if (this.__pending.hasOwnProperty(name)) {
119
136
  throw new Error(`Method '${name}' already defined`);
120
137
  }
@@ -199,15 +216,17 @@ class WorkerProxy {
199
216
  /**
200
217
  *
201
218
  * @param {number} id
202
- * @param {string} methodName
219
+ * @param {string} method_name
203
220
  * @returns {boolean}
204
221
  */
205
- cancelRequest(id, methodName) {
222
+ cancelRequest(id, method_name) {
223
+ assert.isString(method_name, 'method_name');
224
+
206
225
  //find request
207
- const requestQueue = this.__pending[methodName];
226
+ const requestQueue = this.__pending[method_name];
208
227
 
209
228
  if (requestQueue === undefined) {
210
- throw new Error(`No request queue for method name '${methodName}'`);
229
+ throw new Error(`No request queue for method name '${method_name}'`);
211
230
  }
212
231
 
213
232
  const n = requestQueue.length;
@@ -1,4 +1,10 @@
1
1
  export class EngineHarness {
2
+ /**
3
+ * Quick initialization of the engine in a sensible default configuration
4
+ * @param {(config:EngineConfiguration,engine:Engine)=>*} [configuration]
5
+ * @return {Promise<Engine>}
6
+ */
7
+ static bootstrap({ configuration }?: (config: EngineConfiguration, engine: Engine) => any): Promise<Engine>;
2
8
  /**
3
9
  *
4
10
  * @param {Engine} engine
@@ -111,7 +117,7 @@ export class EngineHarness {
111
117
  */
112
118
  readonly p: Promise<any> | null;
113
119
  /**
114
- * @param {(config:EngineConfiguration,engine:Engine)=>*} configuration
120
+ * @param {(config:EngineConfiguration,engine:Engine)=>*} [configuration]
115
121
  * @param {boolean} [enable_localization] Whether or not to load localization data
116
122
  * @returns {Promise<Engine>}
117
123
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EngineHarness.d.ts","sourceRoot":"","sources":["../../../src/engine/EngineHarness.js"],"names":[],"mappings":"AA6DA;IAmBI;;;OAGG;IACH,6BAFW,MAAM,QAYhB;IAkED;;;;;;;;;;;;;OAaG;IACH;QAZyB,MAAM,EAApB,MAAM;QACyB,GAAG;QAClB,MAAM,GAAtB,OAAO;QACQ,QAAQ,GAAvB,MAAM;QACS,KAAK,GAApB,MAAM;QACS,GAAG,GAAlB,MAAM;QACU,QAAQ,GAAxB,OAAO;QACQ,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACJ,MAAM,CA+DlB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oQAnBW,MAAM,iBAmFhB;IAGD;;;;;;;;;;OAUG;IACH;QATyB,MAAM,EAApB,MAAM;QACyB,GAAG;QACnB,mBAAmB,GAAlC,MAAM;QACU,UAAU,GAA1B,OAAO;QACO,GAAG,GAAjB,KAAK;QACU,YAAY,GAA3B,MAAM;QACQ,OAAO,GAArB,KAAK;QACU,gBAAgB,GAA/B,MAAM;sBAqDhB;IAED;;;;;;;OAOG;IACH;QAN0B,YAAY,GAA3B,MAAM;QACQ,MAAM,EAApB,MAAM;QACS,WAAW,GAA1B,MAAM;QACyB,GAAG;QAChC,MAAM,CA2ClB;IAGD;;;;;;;;;;;OAWG;IACH,mGAVW,MAAM,GAQJ,OAAO,CAuDnB;IA3bG;;;OAGG;IACH,QAFU,MAAM,CAEiC;IAMjD;;;OAGG;IACH,YAFU,eAAQ,IAAI,CAET;IAmBjB;;;;OAIG;IACH,8DAJmB,mBAAmB,UAAQ,MAAM,WAEvC,QAAQ,MAAM,CAAC,CA2D3B;CA6VJ;;IAID;;;OAGG;IACH,uCAMC;;mBA1fkB,aAAa;oCACI,0BAA0B;oBAX1C,yBAAyB;mBAK1B,iBAAiB;sBATd,wBAAwB;oBAW1B,8BAA8B"}
1
+ {"version":3,"file":"EngineHarness.d.ts","sourceRoot":"","sources":["../../../src/engine/EngineHarness.js"],"names":[],"mappings":"AA6DA;IAmBI;;;;OAIG;IACH,8CAHmB,mBAAmB,UAAQ,MAAM,WACxC,QAAQ,MAAM,CAAC,CAM1B;IAED;;;OAGG;IACH,6BAFW,MAAM,QAYhB;IAkED;;;;;;;;;;;;;OAaG;IACH;QAZyB,MAAM,EAApB,MAAM;QACyB,GAAG;QAClB,MAAM,GAAtB,OAAO;QACQ,QAAQ,GAAvB,MAAM;QACS,KAAK,GAApB,MAAM;QACS,GAAG,GAAlB,MAAM;QACU,QAAQ,GAAxB,OAAO;QACQ,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACS,WAAW,GAA1B,MAAM;QACJ,MAAM,CA+DlB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oQAnBW,MAAM,iBAmFhB;IAGD;;;;;;;;;;OAUG;IACH;QATyB,MAAM,EAApB,MAAM;QACyB,GAAG;QACnB,mBAAmB,GAAlC,MAAM;QACU,UAAU,GAA1B,OAAO;QACO,GAAG,GAAjB,KAAK;QACU,YAAY,GAA3B,MAAM;QACQ,OAAO,GAArB,KAAK;QACU,gBAAgB,GAA/B,MAAM;sBAqDhB;IAED;;;;;;;OAOG;IACH;QAN0B,YAAY,GAA3B,MAAM;QACQ,MAAM,EAApB,MAAM;QACS,WAAW,GAA1B,MAAM;QACyB,GAAG;QAChC,MAAM,CA2ClB;IAGD;;;;;;;;;;;OAWG;IACH,mGAVW,MAAM,GAQJ,OAAO,CAuDnB;IAtcG;;;OAGG;IACH,QAFU,MAAM,CAEiC;IAMjD;;;OAGG;IACH,YAFU,eAAQ,IAAI,CAET;IA8BjB;;;;OAIG;IACH,8DAJmB,mBAAmB,UAAQ,MAAM,WAEvC,QAAQ,MAAM,CAAC,CA2D3B;CA6VJ;;IAID;;;OAGG;IACH,uCAMC;;mBArgBkB,aAAa;oCACI,0BAA0B;oBAX1C,yBAAyB;mBAK1B,iBAAiB;sBATd,wBAAwB;oBAW1B,8BAA8B"}
@@ -78,6 +78,17 @@ export class EngineHarness {
78
78
  this.p = null;
79
79
  }
80
80
 
81
+ /**
82
+ * Quick initialization of the engine in a sensible default configuration
83
+ * @param {(config:EngineConfiguration,engine:Engine)=>*} [configuration]
84
+ * @return {Promise<Engine>}
85
+ */
86
+ static async bootstrap({ configuration } = {}) {
87
+ const harness = new EngineHarness();
88
+
89
+ return harness.initialize({ configuration });
90
+ }
91
+
81
92
  /**
82
93
  *
83
94
  * @param {Engine} engine
@@ -95,7 +106,7 @@ export class EngineHarness {
95
106
  }
96
107
 
97
108
  /**
98
- * @param {(config:EngineConfiguration,engine:Engine)=>*} configuration
109
+ * @param {(config:EngineConfiguration,engine:Engine)=>*} [configuration]
99
110
  * @param {boolean} [enable_localization] Whether or not to load localization data
100
111
  * @returns {Promise<Engine>}
101
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationTrack.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/AnimationTrack.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAwEI;;;;;OAKG;IACH,qBAJW,gBAAgB,SAChB,MAAM,GACL,cAAc,CAYzB;IAvFD;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,MAFU,MAAM,EAAE,CAET;IAET;;;OAGG;IACH,QAFU,gBAAgB,CAEf;IAEX;;;;;OAKG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,uBAYC;IAED;;;OAGG;IACH,yBAEC;IAED;;;;;OAKG;IACH,eAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QACN,MAAM,QAahB;IAqBL;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CANxC"}
1
+ {"version":3,"file":"AnimationTrack.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/AnimationTrack.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IA2EI;;;;;OAKG;IACH,qBAJW,gBAAgB,SAChB,MAAM,GACL,cAAc,CAYzB;IA1FD;;;OAGG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,MAFU,MAAM,EAAE,CAET;IAET;;;OAGG;IACH,QAFU,gBAAgB,CAEf;IAEX;;;;;OAKG;IACH,MAFU,MAAM,CAEP;IAET;;;OAGG;IACH,uBAYC;IAED;;;OAGG;IACH,yBAEC;IAED;;;;;OAKG;IACH,eAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QACN,MAAM,QAgBhB;IAqBL;;;OAGG;IACH,2BAFU,OAAO,CAEwB;CANxC"}
@@ -43,7 +43,7 @@ export class AnimationTrack {
43
43
  for (let i = 0; i < curve_count; i++) {
44
44
  const curve = curves[i];
45
45
 
46
- r = max2(r, curve.duration);
46
+ r = max2(r, curve.end_time);
47
47
  }
48
48
 
49
49
  return r;
@@ -64,6 +64,9 @@ export class AnimationTrack {
64
64
  * @param {number} time
65
65
  */
66
66
  sample(output, output_offset, time) {
67
+ assert.isArrayLike(output, 'output');
68
+ assert.isNonNegativeInteger(output_offset, 'output_offset');
69
+
67
70
  const curves = this.curves;
68
71
  const curve_count = curves.length;
69
72
 
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  *
3
3
  * @param {EntityNode} node
4
- * @param {string} path
4
+ * @param {string[]} path_parts
5
5
  * @returns {BoundValueWriter}
6
6
  */
7
- export function bind_property_writer(node: EntityNode, path: string): BoundValueWriter;
7
+ export function bind_property_writer(node: EntityNode, path_parts: string[]): BoundValueWriter;
8
8
  import { BoundValueWriter } from "../curve/binding/BoundValueWriter.js";
9
9
  //# sourceMappingURL=bind_property_writer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bind_property_writer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/bind_property_writer.js"],"names":[],"mappings":"AAqFA;;;;;GAKG;AACH,6DAHW,MAAM,GACJ,gBAAgB,CA4B5B;iCAnHgC,sCAAsC"}
1
+ {"version":3,"file":"bind_property_writer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/clip/bind_property_writer.js"],"names":[],"mappings":"AA2FA;;;;;GAKG;AACH,mEAHW,MAAM,EAAE,GACN,gBAAgB,CA+B5B;iCA3HgC,sCAAsC"}