loaderPlugin.ts 1.3 KB

12345678910111213141516171819202122232425
  1. import { ViewerModel } from "../../model/viewerModel";
  2. import { IGLTFLoaderExtension, IGLTFLoaderData } from "babylonjs-loaders/glTF/glTFFileLoader";
  3. import { ISceneLoaderPlugin, ISceneLoaderPluginAsync } from "babylonjs/Loading/sceneLoader";
  4. import { SceneLoaderProgressEvent } from "babylonjs/Loading/sceneLoader";
  5. import { AbstractMesh } from "babylonjs/Meshes/abstractMesh";
  6. import { BaseTexture } from "babylonjs/Materials/Textures/baseTexture";
  7. import { Material } from "babylonjs/Materials/material";
  8. /**
  9. * This interface defines the structure of a loader plugin.
  10. * Any of those functions will be called if (!) the loader supports those callbacks.
  11. * Any loader supports onInit, onLoaded, onError and onProgress.
  12. */
  13. export interface ILoaderPlugin {
  14. onInit?: (loader: ISceneLoaderPlugin | ISceneLoaderPluginAsync, model: ViewerModel) => void;
  15. onLoaded?: (model: ViewerModel) => void;
  16. onError?: (message: string, exception?: any) => void;
  17. onProgress?: (progressEvent: SceneLoaderProgressEvent) => void;
  18. onExtensionLoaded?: (extension: IGLTFLoaderExtension) => void;
  19. onParsed?: (parsedData: IGLTFLoaderData) => void;
  20. onMeshLoaded?: (mesh: AbstractMesh) => void;
  21. onTextureLoaded?: (texture: BaseTexture) => void;
  22. onMaterialLoaded?: (material: Material) => void;
  23. onComplete?: () => void;
  24. }