UNPKG

2.55 kBTypeScriptView Raw
1import { Nullable } from "@babylonjs/core/types";
2import { Observable } from "@babylonjs/core/Misc/observable";
3import { Material } from "@babylonjs/core/Materials/material";
4import { TransformNode } from "@babylonjs/core/Meshes/transformNode";
5import { Mesh } from "@babylonjs/core/Meshes/mesh";
6import { INode, IMaterial } from "../glTFLoaderInterfaces";
7import { IGLTFLoaderExtension } from "../glTFLoaderExtension";
8import { GLTFLoader } from "../glTFLoader";
9import { IProperty } from 'babylonjs-gltf2interface';
10/**
11 * [Specification](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/MSFT_lod)
12 */
13export declare class MSFT_lod implements IGLTFLoaderExtension {
14 /** The name of this extension. */
15 readonly name = "MSFT_lod";
16 /** Defines whether this extension is enabled. */
17 enabled: boolean;
18 /**
19 * Maximum number of LODs to load, starting from the lowest LOD.
20 */
21 maxLODsToLoad: number;
22 /**
23 * Observable raised when all node LODs of one level are loaded.
24 * The event data is the index of the loaded LOD starting from zero.
25 * Dispose the loader to cancel the loading of the next level of LODs.
26 */
27 onNodeLODsLoadedObservable: Observable<number>;
28 /**
29 * Observable raised when all material LODs of one level are loaded.
30 * The event data is the index of the loaded LOD starting from zero.
31 * Dispose the loader to cancel the loading of the next level of LODs.
32 */
33 onMaterialLODsLoadedObservable: Observable<number>;
34 private _loader;
35 private _nodeIndexLOD;
36 private _nodeSignalLODs;
37 private _nodePromiseLODs;
38 private _materialIndexLOD;
39 private _materialSignalLODs;
40 private _materialPromiseLODs;
41 /** @hidden */
42 constructor(loader: GLTFLoader);
43 /** @hidden */
44 dispose(): void;
45 /** @hidden */
46 onReady(): void;
47 /** @hidden */
48 loadNodeAsync(context: string, node: INode, assign: (babylonTransformNode: TransformNode) => void): Nullable<Promise<TransformNode>>;
49 /** @hidden */
50 _loadMaterialAsync(context: string, material: IMaterial, babylonMesh: Mesh, babylonDrawMode: number, assign: (babylonMaterial: Material) => void): Nullable<Promise<Material>>;
51 /** @hidden */
52 _loadUriAsync(context: string, property: IProperty, uri: string): Nullable<Promise<ArrayBufferView>>;
53 /**
54 * Gets an array of LOD properties from lowest to highest.
55 */
56 private _getLODs;
57 private _disposeUnusedMaterials;
58}