babylon-mmd
Version:
babylon.js mmd loader and runtime
50 lines (49 loc) • 2.19 kB
TypeScript
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;
}