import type { Mesh } from "@babylonjs/core/Meshes/mesh"; import type { Nullable } from "@babylonjs/core/types"; import type { ILogger } from "../Parser/ILogger"; /** * BPMX convert options */ export interface IBpmxConvertOptions { /** * Include skinning data into BPMX data (default: true) */ includeSkinningData?: boolean; /** * Include morph data into BPMX data (default: true) */ includeMorphData?: boolean; /** * Array that stores weather the material is rendered as translucent in order of mmd materials metadata (default: []) */ translucentMaterials?: Nullable[]; /** * Array that stores material alpha evaluation result in order of mmd materials metadata (default: []) */ alphaEvaluateResults?: number[]; } /** * BPMX converter */ export declare class BpmxConverter implements ILogger { private _loggingEnabled; /** @internal */ log: (message: string) => void; /** @internal */ warn: (message: string) => void; /** @internal */ error: (message: string) => void; /** * BPMX format version * [major, minor, patch] */ static readonly Version: readonly [3, 0, 0]; /** * Create a BPMX converter */ constructor(); /** * Convert MmdMesh into BPMX data * * For convert MmdMesh into BPMX data, you must load MmdMesh with preserveSerilizationData option * @param mmdMesh Serializeable MmdMesh * @param options Convert options * @returns BPMX data as ArrayBuffer * @throws {Error} Failed to convert BPMX */ convert(mmdMesh: Mesh, options?: IBpmxConvertOptions): ArrayBuffer; /** * 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; }