import type { ISceneLoaderProgressEvent } from "@babylonjs/core/Loading/sceneLoader"; import type { IFileRequest } from "@babylonjs/core/Misc/fileRequest"; import type { WebRequest } from "@babylonjs/core/Misc/webRequest"; import type { Scene } from "@babylonjs/core/scene"; import { MmdAnimation } from "../Animation/mmdAnimation"; /** * BvmdLoader is a loader that loads MMD animation data in BVMD format * * BVMD format is a optimized binary format for MMD animation data */ export declare class BvmdLoader { private readonly _scene; private _loggingEnabled; /** @internal */ log: (message: string) => void; /** @internal */ warn: (message: string) => void; /** @internal */ error: (message: string) => void; /** * Create a new BvmdLoader * @param scene Scene for loading file */ constructor(scene: Scene); private readonly _v300Int; private readonly _v310Int; /** * Load MMD animation data from BVMD array buffer * @param name Animation name * @param buffer BVMD array buffer * @returns Animation data * @throws {LoadFileError} when validation fails */ loadFromBuffer(name: string, buffer: ArrayBufferLike): MmdAnimation; private _parseBoneTracks; private _parseMovableBoneTracks; private _parseMorphTracks; private _parsePropertyTrack; private _parseCameraTrack; /** * Load MMD animation data from BVMD file or URL * @param name Animation name * @param fileOrUrl BVMD file or URL * @param onLoad Callback function that is called when load is complete * @param onProgress Callback function that is called while loading * @param onError Callback function that is called when loading is failed * @returns File request */ load(name: string, fileOrUrl: File | string, onLoad: (animation: MmdAnimation) => void, onProgress?: (event: ISceneLoaderProgressEvent) => void, onError?: ((request?: WebRequest | undefined, exception?: Error | undefined) => void) | undefined): IFileRequest; /** * Load MMD animation data from BVMD file or URL asynchronously * @param name Animation name * @param fileOrUrl BVMD file or URL * @param onProgress Callback function that is called while loading * @returns Animation data */ loadAsync(name: string, fileOrUrl: File | string, onProgress?: (event: ISceneLoaderProgressEvent) => void): Promise; /** * Enable or disable debug logging (default: false) */ get loggingEnabled(): boolean; set loggingEnabled(value: boolean); private _logEnabled; private _logDisabled; private _warnEnabled; private _warnDisabled; private _errorEnabled; private _errorDisabled; }