import { Scene } from "../scene"; import type { ISimplificationSettings } from "./meshSimplification"; import { SimplificationQueue, SimplificationType } from "./meshSimplification"; import type { ISceneComponent } from "../sceneComponent"; declare module "../scene" { interface Scene { /** @internal (Backing field) */ _simplificationQueue: SimplificationQueue; /** * Gets or sets the simplification queue attached to the scene * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/simplifyingMeshes */ simplificationQueue: SimplificationQueue; } } declare module "../Meshes/mesh" { interface Mesh { /** * Simplify the mesh according to the given array of settings. * Function will return immediately and will simplify async * @param settings a collection of simplification settings * @param parallelProcessing should all levels calculate parallel or one after the other * @param simplificationType the type of simplification to run * @param successCallback optional success callback to be called after the simplification finished processing all settings * @returns the current mesh */ simplify(settings: Array, parallelProcessing?: boolean, simplificationType?: SimplificationType, successCallback?: (mesh?: Mesh, submeshIndex?: number) => void): Mesh; } } /** * Defines the simplification queue scene component responsible to help scheduling the various simplification task * created in a scene */ export declare class SimplicationQueueSceneComponent implements ISceneComponent { /** * The component name helpfull to identify the component in the list of scene components. */ readonly name = "SimplificationQueue"; /** * The scene the component belongs to. */ scene: Scene; /** * Creates a new instance of the component for the given scene * @param scene Defines the scene to register the component in */ constructor(scene: Scene); /** * Registers the component in a given scene */ register(): void; /** * Rebuilds the elements related to this component in case of * context lost for instance. */ rebuild(): void; /** * Disposes the component and the associated resources */ dispose(): void; private _beforeCameraUpdate; }