@mml-io/mml-web-threejs 0.20.0 → 0.21.1

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.
@@ -0,0 +1,34 @@
1
+ import { Animation } from "@mml-io/mml-web";
2
+ import { AnimationGraphics } from "@mml-io/mml-web";
3
+ import { ModelLoadResult } from "@mml-io/model-loader";
4
+ import * as THREE from "three";
5
+ import { ThreeJSGraphicsAdapter } from "../ThreeJSGraphicsAdapter";
6
+ export type ThreeJSAnimationState = {
7
+ animationClip: THREE.AnimationClip | null;
8
+ weight: number;
9
+ speed: number;
10
+ ratio: number | null;
11
+ loop: boolean;
12
+ startTime: number;
13
+ pauseTime: number | null;
14
+ };
15
+ export declare class ThreeJSAnimation extends AnimationGraphics<ThreeJSGraphicsAdapter> {
16
+ private animation;
17
+ private static modelLoader;
18
+ private loadingInstanceManager;
19
+ private latestSrcPromise;
20
+ private animationState;
21
+ private parentModel;
22
+ constructor(animation: Animation<ThreeJSGraphicsAdapter>);
23
+ setSrc(src: string | null): void;
24
+ parentModelUpdated(): void;
25
+ setWeight(weight: number): void;
26
+ setSpeed(speed: number): void;
27
+ setRatio(ratio: number | null): void;
28
+ setLoop(loop: boolean): void;
29
+ setStartTime(startTime: number): void;
30
+ setPauseTime(pauseTime: number | null): void;
31
+ private updateParentAnimation;
32
+ asyncLoadSourceAsset(url: string, onProgress: (loaded: number, total: number) => void): Promise<ModelLoadResult>;
33
+ dispose(): void;
34
+ }
@@ -1,12 +1,14 @@
1
- import { Model, TransformableElement } from "@mml-io/mml-web";
1
+ import { Animation, Model, TransformableElement } from "@mml-io/mml-web";
2
2
  import { ModelGraphics } from "@mml-io/mml-web";
3
3
  import { IVect3 } from "@mml-io/mml-web";
4
4
  import { ModelLoadResult } from "@mml-io/model-loader";
5
5
  import * as THREE from "three";
6
6
  import { ThreeJSGraphicsAdapter } from "../ThreeJSGraphicsAdapter";
7
+ import { ThreeJSAnimationState } from "./ThreeJSAnimation";
7
8
  type ThreeJSModelLoadState = {
8
9
  group: THREE.Object3D;
9
10
  bones: Map<string, THREE.Bone>;
11
+ nodeNames: Set<string>;
10
12
  boundingBox: {
11
13
  size: THREE.Vector3;
12
14
  centerOffset: THREE.Vector3;
@@ -37,6 +39,8 @@ export declare class ThreeJSModel extends ModelGraphics<ThreeJSGraphicsAdapter>
37
39
  protected loadedState: ThreeJSModelLoadState | null;
38
40
  protected animState: ThreeJSModelAnimState | null;
39
41
  private documentTimeTickListener;
42
+ private childAnimationMixer;
43
+ private childAnimations;
40
44
  constructor(model: Model<ThreeJSGraphicsAdapter>, updateMeshCallback: () => void);
41
45
  hasLoadedModel(): boolean;
42
46
  hasLoadedAnimation(): boolean;
@@ -49,13 +53,17 @@ export declare class ThreeJSModel extends ModelGraphics<ThreeJSGraphicsAdapter>
49
53
  getCollisionElement(): THREE.Object3D<THREE.Object3DEventMap>;
50
54
  setDebug(): void;
51
55
  setCastShadows(castShadows: boolean): void;
52
- setAnim(anim: string): void;
56
+ updateChildAnimation(animation: Animation<ThreeJSGraphicsAdapter>, animationState: ThreeJSAnimationState): void;
57
+ private updateAnimationForAttachment;
58
+ removeChildAnimation(animation: Animation<ThreeJSGraphicsAdapter>): void;
59
+ private removeAnimationForAttachment;
60
+ setAnim(anim: string | null): void;
53
61
  setAnimEnabled(): void;
54
62
  setAnimLoop(): void;
55
63
  setAnimStartTime(): void;
56
64
  setAnimPauseTime(): void;
57
65
  transformed(): void;
58
- setSrc(src: string): void;
66
+ setSrc(src: string | null): void;
59
67
  registerAttachment(attachment: Model<ThreeJSGraphicsAdapter>): void;
60
68
  unregisterAttachment(attachment: Model<ThreeJSGraphicsAdapter>): void;
61
69
  private updateDebugVisualisation;
@@ -0,0 +1,12 @@
1
+ import { Overlay, OverlayGraphics } from "@mml-io/mml-web";
2
+ import { ThreeJSGraphicsAdapter } from "../ThreeJSGraphicsAdapter";
3
+ export declare class ThreeJSOverlay extends OverlayGraphics<ThreeJSGraphicsAdapter> {
4
+ private overlay;
5
+ constructor(overlay: Overlay<ThreeJSGraphicsAdapter>);
6
+ disable(): void;
7
+ enable(): void;
8
+ setAnchor(): void;
9
+ setOffsetX(): void;
10
+ setOffsetY(): void;
11
+ dispose(): void;
12
+ }
@@ -1,4 +1,4 @@
1
- import { Matr4, TransformableElement, TransformableGraphics } from "@mml-io/mml-web";
1
+ import { IVect3, Matr4, TransformableElement, TransformableGraphics } from "@mml-io/mml-web";
2
2
  import { ThreeJSGraphicsAdapter } from "../ThreeJSGraphicsAdapter";
3
3
  export declare class ThreeJSTransformable extends TransformableGraphics<ThreeJSGraphicsAdapter> {
4
4
  private transformableElement;
@@ -6,6 +6,9 @@ export declare class ThreeJSTransformable extends TransformableGraphics<ThreeJSG
6
6
  private registeredSocketParent;
7
7
  constructor(transformableElement: TransformableElement<ThreeJSGraphicsAdapter>);
8
8
  getWorldMatrix(): Matr4;
9
+ getWorldPosition(): IVect3;
10
+ getLocalPosition(): IVect3;
11
+ getVisible(): boolean;
9
12
  setVisible(visible: boolean): void;
10
13
  setSocket(socketName: string | null): void;
11
14
  private registerWithParentModel;
@@ -1,3 +1,4 @@
1
+ export * from "./ThreeJSAnimation";
1
2
  export * from "./ThreeJSAudio";
2
3
  export * from "./ThreeJSChatProbe";
3
4
  export * from "./ThreeJSCube";
@@ -11,6 +12,7 @@ export * from "./ThreeJSLight";
11
12
  export * from "./ThreeJSLink";
12
13
  export * from "./ThreeJSMElement";
13
14
  export * from "./ThreeJSModel";
15
+ export * from "./ThreeJSOverlay";
14
16
  export * from "./ThreeJSPlane";
15
17
  export * from "./ThreeJSPositionProbe";
16
18
  export * from "./ThreeJSPrompt";