@woosh/meep-engine 2.91.7 → 2.92.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 (32) hide show
  1. package/package.json +1 -1
  2. package/src/core/math/euclidean_modulo.d.ts +9 -0
  3. package/src/core/math/euclidean_modulo.d.ts.map +1 -0
  4. package/src/core/math/euclidean_modulo.js +12 -0
  5. package/src/core/math/newton_solver_1d.js +1 -1
  6. package/src/core/math/pingpong.d.ts.map +1 -1
  7. package/src/core/math/pingpong.js +2 -8
  8. package/src/core/math/separation1D.d.ts +4 -4
  9. package/src/core/math/separation1D.d.ts.map +1 -1
  10. package/src/core/math/separation1D.js +5 -5
  11. package/src/core/math/smoothStep.d.ts +2 -0
  12. package/src/core/math/smoothStep.d.ts.map +1 -1
  13. package/src/core/math/smoothStep.js +2 -0
  14. package/src/core/math/smootherStep.d.ts +11 -0
  15. package/src/core/math/smootherStep.d.ts.map +1 -0
  16. package/src/core/math/smootherStep.js +19 -0
  17. package/src/core/math/smootherStep.spec.d.ts +2 -0
  18. package/src/core/math/smootherStep.spec.d.ts.map +1 -0
  19. package/src/core/math/smootherStep.spec.js +16 -0
  20. package/src/engine/animation/curve/EntityNodeAnimationClip.d.ts +4 -0
  21. package/src/engine/animation/curve/EntityNodeAnimationClip.d.ts.map +1 -0
  22. package/src/engine/animation/curve/EntityNodeAnimationClip.js +17 -0
  23. package/src/engine/animation/curve/ecd_bind_animation_curve.d.ts +1 -11
  24. package/src/engine/animation/curve/ecd_bind_animation_curve.d.ts.map +1 -1
  25. package/src/engine/animation/curve/ecd_bind_animation_curve.js +1 -18
  26. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGAnimationPlayback.d.ts +5 -0
  27. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGAnimationPlayback.d.ts.map +1 -0
  28. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGAnimationPlayback.js +5 -0
  29. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.d.ts +12 -44
  30. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.d.ts.map +1 -1
  31. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.js +6 -10
  32. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationControllerSystem.d.ts +8 -24
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.91.7",
8
+ "version": "2.92.0",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -0,0 +1,9 @@
1
+ /**
2
+ * compute euclidian modulo of n % m
3
+ * https://en.wikipedia.org/wiki/Modulo_operation
4
+ * @param {number} x
5
+ * @param {number} m divisor
6
+ * @returns {number}
7
+ */
8
+ export function euclidean_modulo(x: number, m: number): number;
9
+ //# sourceMappingURL=euclidean_modulo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"euclidean_modulo.d.ts","sourceRoot":"","sources":["../../../../src/core/math/euclidean_modulo.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,oCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAMlB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * compute euclidian modulo of n % m
3
+ * https://en.wikipedia.org/wiki/Modulo_operation
4
+ * @param {number} x
5
+ * @param {number} m divisor
6
+ * @returns {number}
7
+ */
8
+ export function euclidean_modulo(x, m) {
9
+
10
+ return ((x % m) + m) % m;
11
+
12
+ }
@@ -10,7 +10,7 @@ export function newton_solver_1d(
10
10
  f,
11
11
  xStart,
12
12
  max_steps = 1000,
13
- eps = 0.00000001
13
+ eps = 1e-7
14
14
  ) {
15
15
  let x = xStart, fx;
16
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"pingpong.d.ts","sourceRoot":"","sources":["../../../../src/core/math/pingpong.js"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,4BAJW,MAAM,WACN,MAAM,GACL,MAAM,CAIjB"}
1
+ {"version":3,"file":"pingpong.d.ts","sourceRoot":"","sources":["../../../../src/core/math/pingpong.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,4BAJW,MAAM,WACN,MAAM,GACL,MAAM,CAIjB"}
@@ -1,10 +1,4 @@
1
- // compute euclidian modulo of m % n
2
- // https://en.wikipedia.org/wiki/Modulo_operation
3
- function euclideanModulo(n, m) {
4
-
5
- return ((n % m) + m) % m;
6
-
7
- }
1
+ import { euclidean_modulo } from "./euclidean_modulo.js";
8
2
 
9
3
  /**
10
4
  *
@@ -13,5 +7,5 @@ function euclideanModulo(n, m) {
13
7
  * @return {number}
14
8
  */
15
9
  export function pingpong(x, length = 1) {
16
- return length - Math.abs(euclideanModulo(x, length * 2) - length);
10
+ return length - Math.abs(euclidean_modulo(x, length * 2) - length);
17
11
  }
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Returns a number representing overlap distance between two 1D line segments.
3
3
  * Positive number indicates overlap, negative number indicates that segments do not overlap; 0 indicates that segments are touching.
4
- * @param {Number} a0
5
- * @param {Number} a1
6
- * @param {Number} b0
7
- * @param {Number} b1
4
+ * @param {number} a0
5
+ * @param {number} a1
6
+ * @param {number} b0
7
+ * @param {number} b1
8
8
  * @returns {number}
9
9
  */
10
10
  export function separation1D(a0: number, a1: number, b0: number, b1: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"separation1D.d.ts","sourceRoot":"","sources":["../../../../src/core/math/separation1D.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,8EAFa,MAAM,CASlB"}
1
+ {"version":3,"file":"separation1D.d.ts","sourceRoot":"","sources":["../../../../src/core/math/separation1D.js"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,iCANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CASlB"}
@@ -1,14 +1,14 @@
1
1
  import { assert } from "../assert.js";
2
- import { min2 } from "./min2.js";
3
2
  import { max2 } from "./max2.js";
3
+ import { min2 } from "./min2.js";
4
4
 
5
5
  /**
6
6
  * Returns a number representing overlap distance between two 1D line segments.
7
7
  * Positive number indicates overlap, negative number indicates that segments do not overlap; 0 indicates that segments are touching.
8
- * @param {Number} a0
9
- * @param {Number} a1
10
- * @param {Number} b0
11
- * @param {Number} b1
8
+ * @param {number} a0
9
+ * @param {number} a1
10
+ * @param {number} b0
11
+ * @param {number} b1
12
12
  * @returns {number}
13
13
  */
14
14
  export function separation1D(a0, a1, b0, b1) {
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Adapted from OpenGL spec
3
3
  * smoothstep performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. This is useful in cases where a threshold function with a smooth transition is desired.
4
+ * @see https://en.wikipedia.org/wiki/Smoothstep
4
5
  * @param {number} edge0
5
6
  * @param {number} edge1
6
7
  * @param {number} x
8
+ * @returns {number}
7
9
  */
8
10
  export function smoothStep(edge0: number, edge1: number, x: number): number;
9
11
  //# sourceMappingURL=smoothStep.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smoothStep.d.ts","sourceRoot":"","sources":["../../../../src/core/math/smoothStep.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,kCAJW,MAAM,SACN,MAAM,KACN,MAAM,UAShB"}
1
+ {"version":3,"file":"smoothStep.d.ts","sourceRoot":"","sources":["../../../../src/core/math/smoothStep.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,kCALW,MAAM,SACN,MAAM,KACN,MAAM,GACJ,MAAM,CASlB"}
@@ -3,9 +3,11 @@ import { clamp01 } from "./clamp01.js";
3
3
  /**
4
4
  * Adapted from OpenGL spec
5
5
  * smoothstep performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1. This is useful in cases where a threshold function with a smooth transition is desired.
6
+ * @see https://en.wikipedia.org/wiki/Smoothstep
6
7
  * @param {number} edge0
7
8
  * @param {number} edge1
8
9
  * @param {number} x
10
+ * @returns {number}
9
11
  */
10
12
  export function smoothStep(edge0, edge1, x) {
11
13
 
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Ken Perlin's suggested improvement on `smoothStep` function
3
+ * has gentler entry and exit slope
4
+ * @see https://en.wikipedia.org/wiki/Smoothstep
5
+ * @param {number} edge0
6
+ * @param {number} edge1
7
+ * @param {number} x
8
+ * @returns {number}
9
+ */
10
+ export function smootherStep(edge0: number, edge1: number, x: number): number;
11
+ //# sourceMappingURL=smootherStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smootherStep.d.ts","sourceRoot":"","sources":["../../../../src/core/math/smootherStep.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,oCALW,MAAM,SACN,MAAM,KACN,MAAM,GACJ,MAAM,CASlB"}
@@ -0,0 +1,19 @@
1
+ import { clamp01 } from "./clamp01.js";
2
+
3
+ /**
4
+ * Ken Perlin's suggested improvement on `smoothStep` function
5
+ * has gentler entry and exit slope
6
+ * @see https://en.wikipedia.org/wiki/Smoothstep
7
+ * @param {number} edge0
8
+ * @param {number} edge1
9
+ * @param {number} x
10
+ * @returns {number}
11
+ */
12
+ export function smootherStep(edge0, edge1, x) {
13
+ // Scale, and clamp x to 0..1 range
14
+ const span = edge1 - edge0;
15
+
16
+ const t = clamp01((x - edge0) / span);
17
+
18
+ return t * t * t * (t * (6.0 * t - 15.0) + 10.0);
19
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=smootherStep.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smootherStep.spec.d.ts","sourceRoot":"","sources":["../../../../src/core/math/smootherStep.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { smootherStep } from "./smootherStep.js";
2
+
3
+ test("basics", () => {
4
+ expect(smootherStep(0, 1, 1)).toEqual(1);
5
+ expect(smootherStep(1, 2, 2)).toEqual(1);
6
+
7
+ expect(smootherStep(0, 1, 0)).toEqual(0);
8
+ expect(smootherStep(1, 2, 1)).toEqual(0);
9
+
10
+ expect(smootherStep(0, 1, 0.5)).toBeCloseTo(0.5);
11
+ });
12
+
13
+ test("clamping", () => {
14
+ expect(smootherStep(1, 2, 0)).toEqual(0);
15
+ expect(smootherStep(1, 2, 3)).toEqual(1);
16
+ });
@@ -0,0 +1,4 @@
1
+ export class EntityNodeAnimationClip {
2
+ name: string
3
+ duration: number
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityNodeAnimationClip.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/curve/EntityNodeAnimationClip.js"],"names":[],"mappings":"AAAA;IACI,aAAS;IACT;;;OAGG;IACH,QAFU,sBAAsB,CAErB;IACX,iBAAY;IAEZ,yBAMC;CACJ"}
@@ -0,0 +1,17 @@
1
+ export class EntityNodeAnimationClip {
2
+ name = ""
3
+ /**
4
+ *
5
+ * @type {AnimatedValueBinding[]}
6
+ */
7
+ tracks = []
8
+ duration = 0
9
+
10
+ writeAt(time) {
11
+ for (let i = 0; i < this.tracks.length; i++) {
12
+ const track = this.tracks[i];
13
+
14
+ track.writeAt(time);
15
+ }
16
+ }
17
+ }
@@ -4,15 +4,5 @@
4
4
  * @param {AnimationClip} clip
5
5
  */
6
6
  export function convert_three_clip(node: EntityNode, clip: AnimationClip): EntityNodeAnimationClip;
7
- export class EntityNodeAnimationClip {
8
- name: string;
9
- /**
10
- *
11
- * @type {AnimatedValueBinding[]}
12
- */
13
- tracks: AnimatedValueBinding[];
14
- duration: number;
15
- writeAt(time: any): void;
16
- }
17
- import { AnimatedValueBinding } from "../../graphics/ecs/mesh-v2/aggregate/animation/AnimatedValueBinding.js";
7
+ import { EntityNodeAnimationClip } from "./EntityNodeAnimationClip.js";
18
8
  //# sourceMappingURL=ecd_bind_animation_curve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ecd_bind_animation_curve.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/curve/ecd_bind_animation_curve.js"],"names":[],"mappings":"AAySA;;;;GAIG;AACH,mGAaC;AApCD;IACI,aAAS;IACT;;;OAGG;IACH,QAFU,oBAAoB,EAAE,CAErB;IACX,iBAAY;IAEZ,yBAMC;CACJ;qCAtSoC,wEAAwE"}
1
+ {"version":3,"file":"ecd_bind_animation_curve.d.ts","sourceRoot":"","sources":["../../../../../src/engine/animation/curve/ecd_bind_animation_curve.js"],"names":[],"mappings":"AAwRA;;;;GAIG;AACH,mGAaC;wCApSuC,8BAA8B"}
@@ -4,6 +4,7 @@ import { BoundQuaternionWriter } from "../../graphics/ecs/mesh-v2/aggregate/anim
4
4
  import { BoundValueWriter } from "../../graphics/ecs/mesh-v2/aggregate/animation/BoundValueWriter.js";
5
5
  import { BoundVector3Writer } from "../../graphics/ecs/mesh-v2/aggregate/animation/BoundVector3Writer.js";
6
6
  import { AnimationCurve } from "./AnimationCurve.js";
7
+ import { EntityNodeAnimationClip } from "./EntityNodeAnimationClip.js";
7
8
  import { Keyframe } from "./Keyframe.js";
8
9
 
9
10
  /**
@@ -277,24 +278,6 @@ function convert_three_track(track, node) {
277
278
  return AnimatedValueBinding.from(writer, curves);
278
279
  }
279
280
 
280
- export class EntityNodeAnimationClip {
281
- name = ""
282
- /**
283
- *
284
- * @type {AnimatedValueBinding[]}
285
- */
286
- tracks = []
287
- duration = 0
288
-
289
- writeAt(time) {
290
- for (let i = 0; i < this.tracks.length; i++) {
291
- const track = this.tracks[i];
292
-
293
- track.writeAt(time);
294
- }
295
- }
296
- }
297
-
298
281
  /**
299
282
  * Three.js clip to internal representation
300
283
  * @param {EntityNode} node
@@ -0,0 +1,5 @@
1
+ export class SGAnimationPlayback {
2
+ clip_name: string
3
+ time: number
4
+ loop: boolean
5
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SGAnimationPlayback.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/mesh-v2/aggregate/SGAnimationPlayback.js"],"names":[],"mappings":"AAAA;IACI,kBAAc;IACd,aAAQ;IACR,cAAY;CACf"}
@@ -0,0 +1,5 @@
1
+ export class SGAnimationPlayback {
2
+ clip_name = ""
3
+ time = 0
4
+ loop = false
5
+ }
@@ -1,44 +1,12 @@
1
- export class SGMeshAnimationController {
2
- /**
3
- *
4
- * @type {AnimationPlayback[]}
5
- */
6
- active: AnimationPlayback[];
7
- /**
8
- *
9
- * @type {EntityNodeAnimationClip[]}
10
- */
11
- bound: EntityNodeAnimationClip[];
12
- /**
13
- *
14
- * @param {string} name
15
- * @return {EntityNodeAnimationClip|undefined}
16
- */
17
- getBoundByName(name: string): EntityNodeAnimationClip | undefined;
18
- /**
19
- *
20
- * @param {string} name
21
- * @return {AnimationPlayback|undefined}
22
- */
23
- getActiveByName(name: string): AnimationPlayback | undefined;
24
- /**
25
- *
26
- * @param {string} name
27
- * @param {boolean} loop
28
- * @param {number} time_offset
29
- * @returns {AnimationPlayback}
30
- */
31
- start(name: string, loop?: boolean, time_offset?: number): AnimationPlayback;
32
- /**
33
- *
34
- * @param {AnimationPlayback} playback
35
- * @return {boolean}
36
- */
37
- stop(playback: AnimationPlayback): boolean;
38
- }
39
- export class AnimationPlayback {
40
- clip_name: string;
41
- time: number;
42
- loop: boolean;
43
- }
44
- //# sourceMappingURL=SGMeshAnimationController.d.ts.map
1
+ import {EntityNodeAnimationClip} from "../../../../animation/curve/EntityNodeAnimationClip";
2
+ import {SGAnimationPlayback} from "./SGAnimationPlayback";
3
+
4
+ export class SGMeshAnimationController {
5
+ readonly bound: EntityNodeAnimationClip[]
6
+
7
+ start(name: string, loop?: boolean, time_offset?: number): SGAnimationPlayback
8
+
9
+ stop(playback: SGAnimationPlayback): boolean
10
+
11
+ getActiveByName(name: string): SGAnimationPlayback | undefined
12
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SGMeshAnimationController.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,QAFU,iBAAiB,EAAE,CAElB;IAEX;;;OAGG;IACH,OAFU,yBAAyB,CAEzB;IAEV;;;;OAIG;IACH,qBAHW,MAAM,GACL,0BAAwB,SAAS,CAM5C;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACL,iBAAiB,GAAC,SAAS,CAMtC;IAGD;;;;;;OAMG;IACH,YALW,MAAM,SACN,OAAO,gBACP,MAAM,GACJ,iBAAiB,CAgB7B;IAED;;;;OAIG;IACH,eAHW,iBAAiB,GAChB,OAAO,CAQlB;CACJ;AAED;IACI,kBAAc;IACd,aAAQ;IACR,cAAY;CACf"}
1
+ {"version":3,"file":"SGMeshAnimationController.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshAnimationController.js"],"names":[],"mappings":"AAIA;IACI;;;OAGG;IACH,QAFU,mBAAmB,EAAE,CAEpB;IAEX;;;OAGG;IACH,OAFU,yBAAyB,CAEzB;IAEV;;;;OAIG;IACH,qBAHW,MAAM,GACL,0BAAwB,SAAS,CAM5C;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACL,mBAAmB,GAAC,SAAS,CAMxC;IAGD;;;;;;OAMG;IACH,YALW,MAAM,SACN,OAAO,gBACP,MAAM,GACJ,mBAAmB,CAgB/B;IAED;;;;OAIG;IACH,eAHW,mBAAmB,GAClB,OAAO,CAQlB;CACJ;oCAzEmC,0BAA0B"}
@@ -1,10 +1,11 @@
1
1
  import { assert } from "../../../../../core/assert.js";
2
2
  import { array_remove_first } from "../../../../../core/collection/array/array_remove_first.js";
3
+ import { SGAnimationPlayback } from "./SGAnimationPlayback.js";
3
4
 
4
5
  export class SGMeshAnimationController {
5
6
  /**
6
7
  *
7
- * @type {AnimationPlayback[]}
8
+ * @type {SGAnimationPlayback[]}
8
9
  */
9
10
  active = []
10
11
 
@@ -28,7 +29,7 @@ export class SGMeshAnimationController {
28
29
  /**
29
30
  *
30
31
  * @param {string} name
31
- * @return {AnimationPlayback|undefined}
32
+ * @return {SGAnimationPlayback|undefined}
32
33
  */
33
34
  getActiveByName(name) {
34
35
  assert.isString(name, 'name');
@@ -42,14 +43,14 @@ export class SGMeshAnimationController {
42
43
  * @param {string} name
43
44
  * @param {boolean} loop
44
45
  * @param {number} time_offset
45
- * @returns {AnimationPlayback}
46
+ * @returns {SGAnimationPlayback}
46
47
  */
47
48
  start(name, loop = false, time_offset = 0) {
48
49
  assert.isString(name, 'name');
49
50
  assert.isBoolean(loop, 'loop');
50
51
  assert.isNumber(time_offset, 'time_offset');
51
52
 
52
- const playback = new AnimationPlayback();
53
+ const playback = new SGAnimationPlayback();
53
54
 
54
55
  playback.clip_name = name;
55
56
  playback.loop = loop;
@@ -62,7 +63,7 @@ export class SGMeshAnimationController {
62
63
 
63
64
  /**
64
65
  *
65
- * @param {AnimationPlayback} playback
66
+ * @param {SGAnimationPlayback} playback
66
67
  * @return {boolean}
67
68
  */
68
69
  stop(playback) {
@@ -74,8 +75,3 @@ export class SGMeshAnimationController {
74
75
  }
75
76
  }
76
77
 
77
- export class AnimationPlayback {
78
- clip_name = ""
79
- time = 0
80
- loop = false
81
- }
@@ -1,24 +1,8 @@
1
- export class SGMeshAnimationControllerSystem extends System<any, any, any, any, any> {
2
- /**
3
- *
4
- * @param {Engine} engine
5
- */
6
- constructor(engine: Engine);
7
- engine: Engine;
8
- dependencies: (typeof SGMesh | typeof SGMeshAnimationController)[];
9
- components_used: (ResourceAccessSpecification<typeof SGMesh> | ResourceAccessSpecification<typeof SGMeshAnimationController>)[];
10
- /**
11
- *
12
- * @param {SGMeshAnimationController} anim
13
- * @param {SGMesh} mesh
14
- * @param {number} entity
15
- */
16
- link(anim: SGMeshAnimationController, mesh: SGMesh, entity: number): Promise<void>;
17
- update(td: any): void;
18
- #private;
19
- }
20
- import { System } from "../../../../ecs/System.js";
21
- import { SGMesh } from "./SGMesh.js";
22
- import { SGMeshAnimationController } from "./SGMeshAnimationController.js";
23
- import { ResourceAccessSpecification } from "../../../../../core/model/ResourceAccessSpecification.js";
24
- //# sourceMappingURL=SGMeshAnimationControllerSystem.d.ts.map
1
+ import {System} from "../../../../ecs/System";
2
+ import Engine from "../../../../Engine";
3
+ import {SGMesh} from "./SGMesh";
4
+ import {SGMeshAnimationController} from "./SGMeshAnimationController";
5
+
6
+ export class SGMeshAnimationControllerSystem extends System<SGMeshAnimationController,SGMesh>{
7
+ constructor(engine:Engine)
8
+ }