UNPKG

babylon-mmd

Version:
50 lines (49 loc) 2.19 kB
import type { Nullable } from "@babylonjs/core/types"; import type { IMmdPropertyAnimationTrack } from "../../../Loader/Animation/IMmdAnimationTrack"; import type { MmdAnimation } from "../../../Loader/Animation/mmdAnimation"; import { MmdAnimationBase } from "../../../Loader/Animation/mmdAnimationBase"; import type { IDisposeObservable } from "../../IDisposeObserable"; import type { IMmdWasmInstance } from "../mmdWasmInstance"; import { AnimationPoolWrapper } from "./animationPoolWrapper"; import { MmdWasmBoneAnimationTrack, MmdWasmMorphAnimationTrack, MmdWasmMovableBoneAnimationTrack } from "./mmdWasmAnimationTrack"; /** * MmdWasmAnimation is a Mmd animation data container that allocates data in WASM memory * * It is used to pass animation data to WASM * * IMPORTANT: The typed arrays in the track are pointers to wasm memory. * It is important to note that when wasm memory is resized, the typed arrays will no longer be valid. * It is designed to always return a valid typed array at the time of a get, * so as long as you don't copy the typed array references inside this container elsewhere, you are safe. */ export declare class MmdWasmAnimation extends MmdAnimationBase<MmdWasmBoneAnimationTrack, MmdWasmMovableBoneAnimationTrack, MmdWasmMorphAnimationTrack, IMmdPropertyAnimationTrack> { /** * Pointer to the animation data in wasm memory */ readonly ptr: number; /** * @internal */ readonly _poolWrapper: AnimationPoolWrapper; private _disposed; private readonly _bindedDispose; private readonly _disposeObservableObject; /** * Create a MmdWasmAnimation instance * * In general disposeObservable should be `Scene` of Babylon.js * * @param disposeObservable Objects that limit the lifetime of this instance */ constructor(mmdAnimation: MmdAnimation, wasmInstance: IMmdWasmInstance, disposeObservable: Nullable<IDisposeObservable>); /** * Dispose this instance * * all typed arrays in this instance will be invalid after this method is called */ dispose(): void; /** * Whether this instance is disposed */ get isDisposed(): boolean; }