@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.
- package/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +116 -107
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +116 -107
- package/editor/tools/v2/TransformControls.js +11 -6
- package/package.json +2 -1
- package/src/core/UUID.d.ts +3 -0
- package/src/core/UUID.d.ts.map +1 -1
- package/src/core/UUID.js +9 -7
- package/src/core/collection/array/arraySetDiff.d.ts.map +1 -1
- package/src/core/collection/array/arraySetDiff.js +0 -1
- package/src/core/collection/array/binarySearchHighIndex.d.ts.map +1 -1
- package/src/core/collection/array/binarySearchHighIndex.js +7 -1
- package/src/core/collection/array/computeHashArray.d.ts.map +1 -1
- package/src/core/collection/array/computeHashArray.js +3 -2
- package/src/core/collection/array/fastArrayEquals.d.ts +1 -0
- package/src/core/collection/array/fastArrayEquals.d.ts.map +1 -1
- package/src/core/collection/array/fastArrayEquals.js +1 -0
- package/src/core/collection/array/isArrayEqual.d.ts.map +1 -1
- package/src/core/collection/array/isArrayEqual.js +9 -12
- package/src/core/collection/array/isArrayEqual.spec.d.ts +2 -0
- package/src/core/collection/array/isArrayEqual.spec.d.ts.map +1 -0
- package/src/core/collection/array/isArrayEqual.spec.js +25 -0
- package/src/core/collection/array/typed/is_typed_array_equals.d.ts.map +1 -1
- package/src/core/collection/array/typed/is_typed_array_equals.js +1 -0
- package/src/core/function/makeSequenceLoop.d.ts.map +1 -0
- package/src/core/geom/2d/aabb/AABB2.d.ts.map +1 -1
- package/src/core/geom/2d/aabb/AABB2.js +27 -1
- package/src/core/geom/3d/shape/AbstractShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/AbstractShape3D.js +14 -0
- package/src/core/geom/3d/shape/PointShape3D.d.ts +9 -0
- package/src/core/geom/3d/shape/PointShape3D.d.ts.map +1 -0
- package/src/core/geom/3d/shape/PointShape3D.js +14 -0
- package/src/core/geom/3d/shape/TransformedShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/TransformedShape3D.js +26 -8
- package/src/core/geom/3d/shape/UnionShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnionShape3D.js +33 -4
- package/src/core/geom/3d/shape/UnitCubeShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitCubeShape3D.js +13 -6
- package/src/core/geom/3d/shape/UnitSphereShape3D.d.ts.map +1 -1
- package/src/core/geom/3d/shape/UnitSphereShape3D.js +10 -0
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts +15 -8
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +33 -9
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.d.ts +1 -1
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +7 -7
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.d.ts +2 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_build_from_grid.spec.js +61 -0
- package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.d.ts +9 -0
- package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/get_tetrahedron_volume.js +18 -0
- package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts +9 -0
- package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.d.ts.map +1 -0
- package/src/core/geom/3d/tetrahedra/is_tetrahedron_degenerate.js +21 -0
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts +2 -10
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.d.ts.map +1 -1
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +3 -40
- package/src/core/geom/3d/v3_compute_triangle_normal.js +1 -1
- package/src/core/geom/3d/v3_negate_array.d.ts +9 -0
- package/src/core/geom/3d/v3_negate_array.d.ts.map +1 -0
- package/src/core/geom/3d/v3_negate_array.js +16 -0
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +30 -77
- package/src/core/geom/Vector3.d.ts +4 -0
- package/src/core/geom/Vector3.js +4 -4
- package/src/core/geom/mat3/m3_cm_invert.d.ts +7 -0
- package/src/core/geom/mat3/m3_cm_invert.d.ts.map +1 -0
- package/src/core/geom/mat3/m3_cm_invert.js +45 -0
- package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts +10 -0
- package/src/core/geom/vec2/v2_matrix3_cm_multiply.d.ts.map +1 -0
- package/src/core/geom/vec2/v2_matrix3_cm_multiply.js +20 -0
- package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts +10 -0
- package/src/core/geom/vec2/v2_matrix3_rm_multiply.d.ts.map +1 -0
- package/src/core/geom/vec2/v2_matrix3_rm_multiply.js +21 -0
- package/src/core/geom/vec3/v3_cross_array.d.ts +11 -0
- package/src/core/geom/vec3/v3_cross_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_cross_array.js +31 -0
- package/src/core/geom/vec3/v3_displace_in_direction.js +3 -2
- package/src/core/geom/vec3/v3_displace_in_direction_array.d.ts +12 -0
- package/src/core/geom/vec3/v3_displace_in_direction_array.d.ts.map +1 -0
- package/src/core/geom/vec3/v3_displace_in_direction_array.js +22 -0
- package/src/core/geom/vec3/v3_dot_array_array.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_dot_array_array.js +4 -1
- package/src/core/geom/vec3/v3_normalize_array.d.ts +3 -3
- package/src/core/geom/vec3/v3_normalize_array.d.ts.map +1 -1
- package/src/core/geom/vec3/v3_normalize_array.js +3 -3
- package/src/core/math/copysign.d.ts +1 -1
- package/src/core/math/copysign.js +1 -1
- package/src/core/math/epsilonEquals.d.ts.map +1 -1
- package/src/core/math/epsilonEquals.js +3 -2
- package/src/core/math/linalg/README.md +1 -1
- package/src/core/math/random/randomGaussian.spec.js +1 -1
- package/src/core/math/spline/spline_hermite3.d.ts +1 -1
- package/src/core/math/spline/spline_hermite3.js +3 -2
- package/src/core/math/spline/spline_hermite3_to_bezier.d.ts +12 -0
- package/src/core/math/spline/spline_hermite3_to_bezier.d.ts.map +1 -0
- package/src/core/math/spline/spline_hermite3_to_bezier.js +24 -0
- package/src/core/process/delay.d.ts +6 -1
- package/src/core/process/delay.d.ts.map +1 -1
- package/src/core/process/delay.js +6 -1
- package/src/core/process/undo/Mark.d.ts +5 -5
- package/src/core/process/undo/Mark.d.ts.map +1 -1
- package/src/core/process/undo/Mark.js +6 -5
- package/src/core/process/worker/WorkerBuilder.d.ts +13 -2
- package/src/core/process/worker/WorkerBuilder.d.ts.map +1 -1
- package/src/core/process/worker/WorkerBuilder.js +8 -0
- package/src/core/process/worker/WorkerProxy.d.ts +16 -6
- package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
- package/src/core/process/worker/WorkerProxy.js +24 -5
- package/src/engine/EngineHarness.d.ts +7 -1
- package/src/engine/EngineHarness.d.ts.map +1 -1
- package/src/engine/EngineHarness.js +12 -1
- package/src/engine/animation/clip/AnimationTrack.d.ts.map +1 -1
- package/src/engine/animation/clip/AnimationTrack.js +4 -1
- package/src/engine/animation/clip/bind_property_writer.d.ts +2 -2
- package/src/engine/animation/clip/bind_property_writer.d.ts.map +1 -1
- package/src/engine/animation/clip/bind_property_writer.js +22 -13
- package/src/engine/animation/clip/curve_from_track_data.d.ts.map +1 -1
- package/src/engine/animation/clip/curve_from_track_data.js +9 -1
- package/src/engine/animation/clip/ecd_bind_animation_curve.d.ts.map +1 -1
- package/src/engine/animation/clip/ecd_bind_animation_curve.js +6 -5
- package/src/engine/animation/curve/AnimationCurve.d.ts +32 -0
- package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
- package/src/engine/animation/curve/AnimationCurve.js +94 -19
- package/src/engine/animation/curve/AnimationCurve.spec.js +67 -0
- package/src/engine/animation/curve/Keyframe.d.ts +24 -3
- package/src/engine/animation/curve/Keyframe.d.ts.map +1 -1
- package/src/engine/animation/curve/Keyframe.js +49 -3
- package/src/engine/animation/curve/Keyframe.spec.js +11 -0
- package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts +7 -0
- package/src/engine/animation/curve/animation_curve_compute_aabb.d.ts.map +1 -0
- package/src/engine/animation/curve/{compute_curve_aabb.js → animation_curve_compute_aabb.js} +1 -1
- package/src/engine/animation/curve/animation_curve_optimize.d.ts +8 -0
- package/src/engine/animation/curve/animation_curve_optimize.d.ts.map +1 -0
- package/src/engine/animation/curve/animation_curve_optimize.js +89 -0
- package/src/engine/animation/curve/animation_curve_optimize.spec.d.ts +2 -0
- package/src/engine/animation/curve/animation_curve_optimize.spec.d.ts.map +1 -0
- package/src/engine/animation/curve/animation_curve_optimize.spec.js +50 -0
- package/src/engine/animation/curve/draw/build_curve_editor.d.ts.map +1 -1
- package/src/engine/animation/curve/draw/build_curve_editor.js +17 -11
- package/src/engine/animation/curve/evaluate_two_key_curve.d.ts +9 -0
- package/src/engine/animation/curve/evaluate_two_key_curve.d.ts.map +1 -0
- package/src/engine/animation/curve/evaluate_two_key_curve.js +23 -0
- package/src/engine/animation/curve/prototypeGLTF.js +14 -14
- package/src/engine/animation/curve/view/AnimationCurveView.d.ts +47 -0
- package/src/engine/animation/curve/view/AnimationCurveView.d.ts.map +1 -0
- package/src/engine/animation/curve/view/AnimationCurveView.js +343 -0
- package/src/engine/animation/curve/view/prototype.d.ts +2 -0
- package/src/engine/animation/curve/view/prototype.d.ts.map +1 -0
- package/src/engine/animation/curve/view/prototype.js +86 -0
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts +6 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.d.ts.map +1 -1
- package/src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js +11 -6
- package/src/engine/ecs/guid/{GUID.d.ts → UUID.d.ts} +27 -15
- package/src/engine/ecs/guid/UUID.d.ts.map +1 -0
- package/src/engine/ecs/guid/{GUID.js → UUID.js} +52 -17
- package/src/engine/ecs/guid/UUID.spec.d.ts +2 -0
- package/src/engine/ecs/guid/UUID.spec.d.ts.map +1 -0
- package/src/engine/ecs/guid/{GUID.spec.js → UUID.spec.js} +25 -12
- package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts +18 -0
- package/src/engine/ecs/guid/UUIDSerializationAdapter.d.ts.map +1 -0
- package/src/engine/ecs/guid/{GUIDSerializationAdapter.js → UUIDSerializationAdapter.js} +5 -5
- package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts +2 -0
- package/src/engine/ecs/guid/UUIDSerializationAdapter.spec.d.ts.map +1 -0
- package/src/engine/ecs/guid/{GUIDSerializationAdapter.spec.js → UUIDSerializationAdapter.spec.js} +5 -5
- package/src/engine/ecs/ik/InverseKinematics.js +3 -3
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.d.ts.map +1 -1
- package/src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js +1 -140
- package/src/engine/input/ecs/systems/InputControllerSystem.js +1 -1
- package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.d.ts +1 -1
- package/src/engine/intelligence/blackboard/BlackboardDynamicStorageAdapter.js +4 -4
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts +13 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.d.ts.map +1 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.js +395 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.d.ts +2 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.d.ts.map +1 -0
- package/src/engine/physics/gjk/expanding_polytope_algorithm.spec.js +46 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.d.ts +18 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.js +277 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.d.ts +2 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik3d_solve_primitive.spec.js +43 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts +12 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/fabrik/fabrik_solve.js +100 -0
- package/src/engine/physics/inverse_kinematics/fabrik/prototype.d.ts +2 -0
- package/src/engine/physics/inverse_kinematics/fabrik/prototype.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/fabrik/prototype.js +112 -0
- package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts +16 -0
- package/src/engine/physics/inverse_kinematics/two_joint_ik.d.ts.map +1 -0
- package/src/engine/physics/inverse_kinematics/two_joint_ik.js +127 -0
- package/src/view/elements/DropDownSelectionView.js +2 -2
- package/src/view/elements/tiles2d/Tile.d.ts +1 -1
- package/src/view/elements/tiles2d/Tile.d.ts.map +1 -1
- package/src/view/elements/tiles2d/Tile.js +3 -3
- package/src/core/math/makeSequenceLoop.d.ts.map +0 -1
- package/src/engine/animation/curve/compute_curve_aabb.d.ts +0 -7
- package/src/engine/animation/curve/compute_curve_aabb.d.ts.map +0 -1
- package/src/engine/ecs/guid/GUID.d.ts.map +0 -1
- package/src/engine/ecs/guid/GUID.spec.d.ts +0 -2
- package/src/engine/ecs/guid/GUID.spec.d.ts.map +0 -1
- package/src/engine/ecs/guid/GUIDSerializationAdapter.d.ts +0 -18
- package/src/engine/ecs/guid/GUIDSerializationAdapter.d.ts.map +0 -1
- package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts +0 -2
- package/src/engine/ecs/guid/GUIDSerializationAdapter.spec.d.ts.map +0 -1
- /package/src/core/{math → function}/makeSequenceLoop.d.ts +0 -0
- /package/src/core/{math → function}/makeSequenceLoop.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/animation/curve/view/prototype.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { randomFloatBetween } from "../../../../core/math/random/randomFloatBetween.js";
|
|
2
|
+
import { seededRandom } from "../../../../core/math/random/seededRandom.js";
|
|
3
|
+
import { CSS_ABSOLUTE_POSITIONING } from "../../../../view/CSS_ABSOLUTE_POSITIONING.js";
|
|
4
|
+
import { AnimationCurve } from "../AnimationCurve.js";
|
|
5
|
+
import { Keyframe } from "../Keyframe.js";
|
|
6
|
+
import { AnimationCurveView } from "./AnimationCurveView.js";
|
|
7
|
+
|
|
8
|
+
let px = 0;
|
|
9
|
+
let py = 0;
|
|
10
|
+
|
|
11
|
+
function addCurve(curve) {
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
const view = new AnimationCurveView();
|
|
15
|
+
view.curve = curve;
|
|
16
|
+
|
|
17
|
+
view.css(CSS_ABSOLUTE_POSITIONING);
|
|
18
|
+
|
|
19
|
+
view.size.set(460, 288);
|
|
20
|
+
|
|
21
|
+
if (px + view.size.x > window.innerWidth) {
|
|
22
|
+
px = 0;
|
|
23
|
+
py += view.size.y;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
view.position.set(px, py);
|
|
27
|
+
|
|
28
|
+
px += view.size.x;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
document.body.appendChild(view.el);
|
|
32
|
+
|
|
33
|
+
view.css({
|
|
34
|
+
border: "1px solid rgba(255,255,255,0.2)"
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
view.link();
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
document.body.style.background = "black";
|
|
42
|
+
document.body.style.overflow = "hidden";
|
|
43
|
+
document.body.style.margin = "0";
|
|
44
|
+
|
|
45
|
+
addCurve(AnimationCurve.constant());
|
|
46
|
+
addCurve(AnimationCurve.easeInOut(0,0,1000));
|
|
47
|
+
addCurve(AnimationCurve.linear());
|
|
48
|
+
addCurve(AnimationCurve.from([
|
|
49
|
+
Keyframe.from(0, 0),
|
|
50
|
+
Keyframe.from(1, 1),
|
|
51
|
+
Keyframe.from(2, 0.5)
|
|
52
|
+
]));
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
addCurve(AnimationCurve.from([
|
|
56
|
+
Keyframe.from(-5, 7),
|
|
57
|
+
Keyframe.from(-2, -11)
|
|
58
|
+
]));
|
|
59
|
+
addCurve(AnimationCurve.from([
|
|
60
|
+
Keyframe.from(-1, 1),
|
|
61
|
+
Keyframe.from(1, -1)
|
|
62
|
+
]));
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
addCurve(AnimationCurve.from([
|
|
66
|
+
Keyframe.from(-5, 0),
|
|
67
|
+
Keyframe.from(1, 200)
|
|
68
|
+
]));
|
|
69
|
+
|
|
70
|
+
const random = seededRandom();
|
|
71
|
+
|
|
72
|
+
const array = new Array(8).fill('');
|
|
73
|
+
const keys = array.map(()=> Keyframe.from(
|
|
74
|
+
randomFloatBetween(random,-100,100),
|
|
75
|
+
randomFloatBetween(random,-100,100),
|
|
76
|
+
));
|
|
77
|
+
|
|
78
|
+
const curve = AnimationCurve.from(keys);
|
|
79
|
+
|
|
80
|
+
for (let i = 0; i < keys.length; i++) {
|
|
81
|
+
|
|
82
|
+
curve.alignTangents(i);
|
|
83
|
+
}
|
|
84
|
+
curve.smoothAllTangents();
|
|
85
|
+
|
|
86
|
+
addCurve(curve)
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export class DynamicRuleDescription {
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @type {UUID}
|
|
5
|
+
*/
|
|
6
|
+
id: UUID;
|
|
3
7
|
/**
|
|
4
8
|
*
|
|
5
9
|
* @type {ReactiveExpression}
|
|
@@ -51,5 +55,6 @@ export class DynamicRuleDescription {
|
|
|
51
55
|
priority?: number;
|
|
52
56
|
}): void;
|
|
53
57
|
}
|
|
58
|
+
import { UUID } from "../../guid/UUID.js";
|
|
54
59
|
import { DynamicRuleCooldownDescription } from "./DynamicRuleCooldownDescription.js";
|
|
55
60
|
//# sourceMappingURL=DynamicRuleDescription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicRuleDescription.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js"],"names":[],"mappings":"AAQA;IACI,
|
|
1
|
+
{"version":3,"file":"DynamicRuleDescription.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/ecs/dynamic_actions/rules/DynamicRuleDescription.js"],"names":[],"mappings":"AAQA;IACI;;;OAGG;IACH,IAFU,IAAI,CAEC;IAEf;;;OAGG;IACH,8BAAiB;IACjB;;;OAGG;IACH,kCAAc;IACd;;;OAGG;IACH,YAFU,mBAAmB,CAEb;IAChB;;;OAGG;IACH,UAFU,MAAM,CAEH;IACb;;;OAGG;IACH,6BAAyB;IACzB;;;OAGG;IACH,kBAFU,8BAA8B,EAAE,CAEpB;IAEtB;;;;OAIG;IACH,cAHW,sBAAsB,GACpB,OAAO,CAInB;IAED;;;OAGG;IACH,0BAFa,MAAM,CAIlB;IAED,yCAEC;IAED,cA+BC;IAED;;;;;;aA2BC;CACJ;qBA5HoB,oBAAoB;+CAEM,qCAAqC"}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import UUID from "../../../../core/UUID.js";
|
|
2
1
|
import { assert } from "../../../../core/assert.js";
|
|
2
|
+
import { compileReactiveExpression } from "../../../../core/lang/reactive/compileReactiveExpression.js";
|
|
3
3
|
import { inferReactiveExpressionTypes } from "../../../../core/model/reactive/transform/ReactiveTypeInferrence.js";
|
|
4
4
|
import DataType from "../../../../core/parser/simple/DataType.js";
|
|
5
|
-
import {
|
|
5
|
+
import { UUID } from "../../guid/UUID.js";
|
|
6
6
|
import { deserializeActionFromJSON } from "../actions/definition/deserializeActionFromJSON.js";
|
|
7
7
|
import { DynamicRuleCooldownDescription } from "./DynamicRuleCooldownDescription.js";
|
|
8
8
|
|
|
9
9
|
export class DynamicRuleDescription {
|
|
10
|
-
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @type {UUID}
|
|
13
|
+
*/
|
|
14
|
+
id = UUID.v1();
|
|
15
|
+
|
|
11
16
|
/**
|
|
12
17
|
*
|
|
13
18
|
* @type {ReactiveExpression}
|
|
@@ -45,7 +50,7 @@ export class DynamicRuleDescription {
|
|
|
45
50
|
* @returns {boolean}
|
|
46
51
|
*/
|
|
47
52
|
equals(other) {
|
|
48
|
-
return this.id
|
|
53
|
+
return this.id.equals(other.id);
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
/**
|
|
@@ -94,7 +99,7 @@ export class DynamicRuleDescription {
|
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
fromJSON({
|
|
97
|
-
id = UUID.
|
|
102
|
+
id = UUID.string(),
|
|
98
103
|
condition,
|
|
99
104
|
action,
|
|
100
105
|
global_cooldowns = [],
|
|
@@ -113,7 +118,7 @@ export class DynamicRuleDescription {
|
|
|
113
118
|
|
|
114
119
|
this.action = deserializeActionFromJSON(action);
|
|
115
120
|
|
|
116
|
-
this.id
|
|
121
|
+
this.id.parse(id);
|
|
117
122
|
|
|
118
123
|
this.priority = priority;
|
|
119
124
|
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @
|
|
2
|
+
* Universally Unique Identifier
|
|
3
|
+
* @see IETF RFC 4122
|
|
4
|
+
*
|
|
4
5
|
*/
|
|
5
|
-
export class
|
|
6
|
+
export class UUID {
|
|
6
7
|
/**
|
|
7
8
|
*
|
|
8
|
-
* @return {
|
|
9
|
+
* @return {UUID}
|
|
9
10
|
*/
|
|
10
|
-
static v1():
|
|
11
|
+
static v1(): UUID;
|
|
12
|
+
static v4(): UUID;
|
|
13
|
+
/**
|
|
14
|
+
* Shortcut to generate string-form ID
|
|
15
|
+
* Uses v4 UUID
|
|
16
|
+
* @return {string}
|
|
17
|
+
*/
|
|
18
|
+
static string(): string;
|
|
11
19
|
/**
|
|
12
20
|
*
|
|
13
21
|
* @param {string} string
|
|
14
|
-
* @return {
|
|
22
|
+
* @return {UUID}
|
|
15
23
|
*/
|
|
16
|
-
static parse(string: string):
|
|
24
|
+
static parse(string: string): UUID;
|
|
17
25
|
/**
|
|
18
26
|
*
|
|
19
27
|
* @param {number[]|Uint8Array|ArrayLike<number>} bytes
|
|
@@ -26,9 +34,13 @@ export class GUID {
|
|
|
26
34
|
get data(): Uint8Array;
|
|
27
35
|
/**
|
|
28
36
|
* Generate Variant 1 UUID
|
|
29
|
-
*
|
|
37
|
+
*
|
|
30
38
|
*/
|
|
31
39
|
v1(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Generate Variant 4 UUID (fully random)
|
|
42
|
+
*/
|
|
43
|
+
v4(): void;
|
|
32
44
|
/***
|
|
33
45
|
* String in UUID format
|
|
34
46
|
* @see https://github.com/uuidjs/uuid/blob/8f028c4ea42ce41a9a9dc5fa634abe525b2e2066/src/parse.js#L3
|
|
@@ -42,15 +54,15 @@ export class GUID {
|
|
|
42
54
|
toString(): string;
|
|
43
55
|
/**
|
|
44
56
|
*
|
|
45
|
-
* @param {
|
|
57
|
+
* @param {UUID} other
|
|
46
58
|
*/
|
|
47
|
-
copy(other:
|
|
59
|
+
copy(other: UUID): void;
|
|
48
60
|
/**
|
|
49
61
|
*
|
|
50
|
-
* @param {
|
|
62
|
+
* @param {UUID} other
|
|
51
63
|
* @returns {boolean}
|
|
52
64
|
*/
|
|
53
|
-
equals(other:
|
|
65
|
+
equals(other: UUID): boolean;
|
|
54
66
|
/**
|
|
55
67
|
* @returns {number}
|
|
56
68
|
*/
|
|
@@ -61,10 +73,10 @@ export class GUID {
|
|
|
61
73
|
* @readonly
|
|
62
74
|
* @type {boolean}
|
|
63
75
|
*/
|
|
64
|
-
readonly
|
|
76
|
+
readonly isUUID: boolean;
|
|
65
77
|
#private;
|
|
66
78
|
}
|
|
67
|
-
export namespace
|
|
79
|
+
export namespace UUID {
|
|
68
80
|
let typeName: string;
|
|
69
81
|
}
|
|
70
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=UUID.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UUID.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/guid/UUID.js"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH;IAiHI;;;OAGG;IACH,aAFY,IAAI,CAQf;IAED,kBAMC;IAED;;;;OAIG;IACH,iBAFY,MAAM,CAIjB;IA0CD;;;;OAIG;IACH,qBAHW,MAAM,GACL,IAAI,CAQf;IA9LD;;;OAGG;IACH,0BAKC;IAED;;;OAGG;IACH,uBAEC;IAED;;;OAGG;IACH,WAsEC;IAED;;OAEG;IACH,WAUC;IA+BD;;;;OAIG;IACH,cAFW,MAAM,QAmChB;IAeD;;;OAGG;IACH,YAFa,MAAM,CA2BlB;IAED;;;OAGG;IACH,YAFW,IAAI,QAId;IAED;;;;OAIG;IACH,cAHW,IAAI,GACF,OAAO,CAanB;IAED;;OAEG;IACH,QAFa,MAAM,CAWlB;IAED,iBAEC;IAED,uBAEC;IASL;;;OAGG;IACH,iBAFU,OAAO,CAEI;;CAZpB;;kBAIS,MAAM"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { randomUint8 } from "../../../core/math/random/randomUint8.js";
|
|
1
|
+
import { assert } from "../../../core/assert.js";
|
|
3
2
|
import { dec2hex } from "../../../core/binary/dec2hex.js";
|
|
4
3
|
import { array_copy } from "../../../core/collection/array/array_copy.js";
|
|
5
4
|
import { randomBytes } from "../../../core/math/random/randomBytes.js";
|
|
6
|
-
import {
|
|
5
|
+
import { randomUint8 } from "../../../core/math/random/randomUint8.js";
|
|
6
|
+
import { seededRandom } from "../../../core/math/random/seededRandom.js";
|
|
7
7
|
|
|
8
8
|
// Previous uuid creation time
|
|
9
9
|
let _lastMSecs = 0;
|
|
10
10
|
let _lastNSecs = 0;
|
|
11
11
|
|
|
12
|
+
// seed random with current time to lower potential correlation
|
|
12
13
|
const random = seededRandom(Date.now());
|
|
13
14
|
|
|
14
15
|
// node and clockseq need to be initialized to random values.
|
|
@@ -22,10 +23,11 @@ _nodeId[0] |= 0x01;
|
|
|
22
23
|
let _clockseq = ((randomUint8(random) << 8) | randomUint8(random)) & 0x3fff;
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
|
-
*
|
|
26
|
-
* @
|
|
26
|
+
* Universally Unique Identifier
|
|
27
|
+
* @see IETF RFC 4122
|
|
28
|
+
*
|
|
27
29
|
*/
|
|
28
|
-
export class
|
|
30
|
+
export class UUID {
|
|
29
31
|
#data = new Uint8Array(16);
|
|
30
32
|
|
|
31
33
|
/**
|
|
@@ -34,7 +36,7 @@ export class GUID {
|
|
|
34
36
|
*/
|
|
35
37
|
set data(bytes) {
|
|
36
38
|
assert.isArrayLike(bytes, 'bytes');
|
|
37
|
-
assert.greaterThanOrEqual(bytes.length, 16, 'bytes.length
|
|
39
|
+
assert.greaterThanOrEqual(bytes.length, 16, 'bytes.length < 16');
|
|
38
40
|
|
|
39
41
|
array_copy(bytes, 0, this.#data, 0, 16);
|
|
40
42
|
}
|
|
@@ -49,9 +51,10 @@ export class GUID {
|
|
|
49
51
|
|
|
50
52
|
/**
|
|
51
53
|
* Generate Variant 1 UUID
|
|
52
|
-
*
|
|
54
|
+
*
|
|
53
55
|
*/
|
|
54
56
|
v1() {
|
|
57
|
+
// @see https://github.com/uuidjs/uuid/blob/8f028c4ea42ce41a9a9dc5fa634abe525b2e2066/src/v1.js#L17
|
|
55
58
|
|
|
56
59
|
const b = this.#data;
|
|
57
60
|
|
|
@@ -83,7 +86,7 @@ export class GUID {
|
|
|
83
86
|
|
|
84
87
|
// Per 4.2.1.2 Throw error if too many uuids are requested
|
|
85
88
|
if (nsecs >= 10000) {
|
|
86
|
-
throw new Error("
|
|
89
|
+
throw new Error(".v1(): Can't create more than 10M uuids/sec");
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
_lastMSecs = msecs;
|
|
@@ -122,18 +125,50 @@ export class GUID {
|
|
|
122
125
|
}
|
|
123
126
|
}
|
|
124
127
|
|
|
128
|
+
/**
|
|
129
|
+
* Generate Variant 4 UUID (fully random)
|
|
130
|
+
*/
|
|
131
|
+
v4() {
|
|
132
|
+
|
|
133
|
+
const data = this.data;
|
|
134
|
+
|
|
135
|
+
randomBytes(data, 0, random, 16);
|
|
136
|
+
|
|
137
|
+
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
138
|
+
data[6] = (data[6] & 0x0f) | 0x40;
|
|
139
|
+
data[8] = (data[8] & 0x3f) | 0x80;
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
|
|
125
143
|
/**
|
|
126
144
|
*
|
|
127
|
-
* @return {
|
|
145
|
+
* @return {UUID}
|
|
128
146
|
*/
|
|
129
147
|
static v1() {
|
|
130
|
-
const uuid = new
|
|
148
|
+
const uuid = new UUID();
|
|
131
149
|
|
|
132
150
|
uuid.v1();
|
|
133
151
|
|
|
134
152
|
return uuid;
|
|
135
153
|
}
|
|
136
154
|
|
|
155
|
+
static v4() {
|
|
156
|
+
const r = new UUID();
|
|
157
|
+
|
|
158
|
+
r.v4();
|
|
159
|
+
|
|
160
|
+
return r;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Shortcut to generate string-form ID
|
|
165
|
+
* Uses v4 UUID
|
|
166
|
+
* @return {string}
|
|
167
|
+
*/
|
|
168
|
+
static string() {
|
|
169
|
+
return UUID.v4().toString();
|
|
170
|
+
}
|
|
171
|
+
|
|
137
172
|
/***
|
|
138
173
|
* String in UUID format
|
|
139
174
|
* @see https://github.com/uuidjs/uuid/blob/8f028c4ea42ce41a9a9dc5fa634abe525b2e2066/src/parse.js#L3
|
|
@@ -177,10 +212,10 @@ export class GUID {
|
|
|
177
212
|
/**
|
|
178
213
|
*
|
|
179
214
|
* @param {string} string
|
|
180
|
-
* @return {
|
|
215
|
+
* @return {UUID}
|
|
181
216
|
*/
|
|
182
217
|
static parse(string) {
|
|
183
|
-
const r = new
|
|
218
|
+
const r = new UUID();
|
|
184
219
|
|
|
185
220
|
r.parse(string);
|
|
186
221
|
|
|
@@ -220,7 +255,7 @@ export class GUID {
|
|
|
220
255
|
|
|
221
256
|
/**
|
|
222
257
|
*
|
|
223
|
-
* @param {
|
|
258
|
+
* @param {UUID} other
|
|
224
259
|
*/
|
|
225
260
|
copy(other) {
|
|
226
261
|
this.#data.set(other.#data);
|
|
@@ -228,7 +263,7 @@ export class GUID {
|
|
|
228
263
|
|
|
229
264
|
/**
|
|
230
265
|
*
|
|
231
|
-
* @param {
|
|
266
|
+
* @param {UUID} other
|
|
232
267
|
* @returns {boolean}
|
|
233
268
|
*/
|
|
234
269
|
equals(other) {
|
|
@@ -271,10 +306,10 @@ export class GUID {
|
|
|
271
306
|
* @readonly
|
|
272
307
|
* @type {string}
|
|
273
308
|
*/
|
|
274
|
-
|
|
309
|
+
UUID.typeName = "UUID";
|
|
275
310
|
|
|
276
311
|
/**
|
|
277
312
|
* @readonly
|
|
278
313
|
* @type {boolean}
|
|
279
314
|
*/
|
|
280
|
-
|
|
315
|
+
UUID.prototype.isUUID = true;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UUID.spec.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/guid/UUID.spec.js"],"names":[],"mappings":""}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UUID } from "./UUID.js";
|
|
2
2
|
|
|
3
3
|
test("uniqueness out of 2", () => {
|
|
4
|
-
const a =
|
|
5
|
-
const b =
|
|
4
|
+
const a = UUID.v1();
|
|
5
|
+
const b = UUID.v1();
|
|
6
6
|
|
|
7
7
|
expect(a.equals(b)).toBe(false);
|
|
8
8
|
});
|
|
9
9
|
|
|
10
10
|
test("equality", () => {
|
|
11
|
-
const a =
|
|
12
|
-
const b =
|
|
11
|
+
const a = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
|
|
12
|
+
const b = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
|
|
13
13
|
|
|
14
14
|
expect(a.equals(b)).toBe(true);
|
|
15
15
|
|
|
@@ -19,16 +19,16 @@ test("equality", () => {
|
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
test("hash stability", () => {
|
|
22
|
-
const guid = new
|
|
22
|
+
const guid = new UUID();
|
|
23
23
|
|
|
24
24
|
expect(guid.hash()).toBe(guid.hash());
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
test("copy", () => {
|
|
28
|
-
const a =
|
|
28
|
+
const a = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
|
|
29
29
|
const a_string = a.toString();
|
|
30
30
|
|
|
31
|
-
const b =
|
|
31
|
+
const b = UUID.parse("bb75b300-c89f-11ed-afa1-0242ac120002");
|
|
32
32
|
|
|
33
33
|
expect(a.equals(b)).toBe(false);
|
|
34
34
|
|
|
@@ -41,9 +41,9 @@ test("copy", () => {
|
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
test("to/from JSON consistency", () => {
|
|
44
|
-
const a =
|
|
44
|
+
const a = UUID.parse("bb75b300-c89f-11ed-afa1-0242ac120002");
|
|
45
45
|
|
|
46
|
-
const b = new
|
|
46
|
+
const b = new UUID();
|
|
47
47
|
|
|
48
48
|
b.fromJSON(a.toJSON());
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ test("to/from JSON consistency", () => {
|
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
test(".data setter performs a copy instead of assignment", () => {
|
|
54
|
-
const id = new
|
|
54
|
+
const id = new UUID();
|
|
55
55
|
|
|
56
56
|
const data = new Uint8Array(16);
|
|
57
57
|
|
|
@@ -61,7 +61,7 @@ test(".data setter performs a copy instead of assignment", () => {
|
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
test(".data set/get", () => {
|
|
64
|
-
const a = new
|
|
64
|
+
const a = new UUID();
|
|
65
65
|
|
|
66
66
|
const sample_0 = [
|
|
67
67
|
0xFF, 0xFF, 0xFF, 0xFF,
|
|
@@ -85,3 +85,16 @@ test(".data set/get", () => {
|
|
|
85
85
|
|
|
86
86
|
expect(Array.from(a.data)).toEqual(sample_1);
|
|
87
87
|
});
|
|
88
|
+
|
|
89
|
+
test("version bits in v4", () => {
|
|
90
|
+
const uuid = UUID.v4();
|
|
91
|
+
|
|
92
|
+
expect((uuid.data[6] >> 4) & 0xF).toEqual(4);
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
test("static 'string' method",()=>{
|
|
96
|
+
const s = UUID.string();
|
|
97
|
+
|
|
98
|
+
expect(typeof s).toBe("string");
|
|
99
|
+
expect(s.length).toBe(36);
|
|
100
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class UUIDSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
2
|
+
klass: typeof UUID;
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param buffer
|
|
6
|
+
* @param {UUID} value
|
|
7
|
+
*/
|
|
8
|
+
serialize(buffer: any, value: UUID): void;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param buffer
|
|
12
|
+
* @param {UUID} value
|
|
13
|
+
*/
|
|
14
|
+
deserialize(buffer: any, value: UUID): void;
|
|
15
|
+
}
|
|
16
|
+
import { BinaryClassSerializationAdapter } from "../storage/binary/BinaryClassSerializationAdapter.js";
|
|
17
|
+
import { UUID } from "./UUID.js";
|
|
18
|
+
//# sourceMappingURL=UUIDSerializationAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UUIDSerializationAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/guid/UUIDSerializationAdapter.js"],"names":[],"mappings":"AAGA;IACI,mBAAY;IAGZ;;;;OAIG;IACH,8BAFW,IAAI,QAId;IAED;;;;OAIG;IACH,gCAFW,IAAI,QAId;CACJ;gDAxB+C,sDAAsD;qBACjF,WAAW"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { BinaryClassSerializationAdapter } from "../storage/binary/BinaryClassSerializationAdapter.js";
|
|
2
|
-
import {
|
|
2
|
+
import { UUID } from "./UUID.js";
|
|
3
3
|
|
|
4
|
-
export class
|
|
5
|
-
klass =
|
|
4
|
+
export class UUIDSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
5
|
+
klass = UUID
|
|
6
6
|
version = 0
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
*
|
|
10
10
|
* @param buffer
|
|
11
|
-
* @param {
|
|
11
|
+
* @param {UUID} value
|
|
12
12
|
*/
|
|
13
13
|
serialize(buffer, value) {
|
|
14
14
|
buffer.writeUint8Array(value.data, 0, 16);
|
|
@@ -17,7 +17,7 @@ export class GUIDSerializationAdapter extends BinaryClassSerializationAdapter {
|
|
|
17
17
|
/**
|
|
18
18
|
*
|
|
19
19
|
* @param buffer
|
|
20
|
-
* @param {
|
|
20
|
+
* @param {UUID} value
|
|
21
21
|
*/
|
|
22
22
|
deserialize(buffer, value) {
|
|
23
23
|
buffer.readUint8Array(value.data, 0, 16);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UUIDSerializationAdapter.spec.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/guid/UUIDSerializationAdapter.spec.js"],"names":[],"mappings":""}
|
package/src/engine/ecs/guid/{GUIDSerializationAdapter.spec.js → UUIDSerializationAdapter.spec.js}
RENAMED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { GUID } from "./GUID.js";
|
|
2
|
-
import { GUIDSerializationAdapter } from "./GUIDSerializationAdapter.js";
|
|
3
1
|
import { BinaryBuffer } from "../../../core/binary/BinaryBuffer.js";
|
|
2
|
+
import { UUID } from "./UUID.js";
|
|
3
|
+
import { UUIDSerializationAdapter } from "./UUIDSerializationAdapter.js";
|
|
4
4
|
|
|
5
5
|
test("to/from consistency", () => {
|
|
6
6
|
|
|
7
|
-
const source =
|
|
7
|
+
const source = UUID.parse("a88bb73a-c89f-11ed-afa1-0242ac120002");
|
|
8
8
|
|
|
9
|
-
const adapter = new
|
|
9
|
+
const adapter = new UUIDSerializationAdapter();
|
|
10
10
|
|
|
11
11
|
const buffer = new BinaryBuffer();
|
|
12
12
|
|
|
13
13
|
adapter.serialize(buffer, source);
|
|
14
14
|
buffer.position = 0; // rewind
|
|
15
15
|
|
|
16
|
-
const destination = new
|
|
16
|
+
const destination = new UUID();
|
|
17
17
|
|
|
18
18
|
adapter.deserialize(buffer, destination);
|
|
19
19
|
|
|
@@ -16,11 +16,11 @@ export class InverseKinematics {
|
|
|
16
16
|
copy(other) {
|
|
17
17
|
this.constraints.splice(0, this.constraints.length);
|
|
18
18
|
|
|
19
|
-
const
|
|
20
|
-
const n =
|
|
19
|
+
const other_constraints = other.constraints;
|
|
20
|
+
const n = other_constraints.length;
|
|
21
21
|
|
|
22
22
|
for (let i = 0; i < n; i++) {
|
|
23
|
-
const constraint =
|
|
23
|
+
const constraint = other_constraints[i];
|
|
24
24
|
|
|
25
25
|
const constraintClone = constraint.clone();
|
|
26
26
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwoBoneInverseKinematicsSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TwoBoneInverseKinematicsSolver.d.ts","sourceRoot":"","sources":["../../../../../src/engine/ecs/ik/TwoBoneInverseKinematicsSolver.js"],"names":[],"mappings":"AA8CA;IAGI,0BAuIC;CACJ;yBA9KwB,eAAe"}
|