GLTFLoader.d.ts 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {
  2. AnimationClip,
  3. Camera,
  4. Group,
  5. Loader,
  6. LoadingManager,
  7. Mesh,
  8. Object3D,
  9. Material,
  10. SkinnedMesh,
  11. Texture
  12. } from '../../../src/Three';
  13. import { DRACOLoader } from './DRACOLoader';
  14. import { DDSLoader } from './DDSLoader';
  15. import { KTX2Loader } from './KTX2Loader';
  16. export interface GLTF {
  17. animations: AnimationClip[];
  18. scene: Group;
  19. scenes: Group[];
  20. cameras: Camera[];
  21. asset: {
  22. copyright?: string;
  23. generator?: string;
  24. version?: string;
  25. minVersion?: string;
  26. extensions?: any;
  27. extras?: any;
  28. };
  29. parser: GLTFParser;
  30. userData: any;
  31. }
  32. export class GLTFLoader extends Loader {
  33. constructor( manager?: LoadingManager );
  34. dracoLoader: DRACOLoader | null;
  35. ddsLoader: DDSLoader | null;
  36. load( url: string, onLoad: ( gltf: GLTF ) => void, onProgress?: ( event: ProgressEvent ) => void, onError?: ( event: ErrorEvent ) => void ) : void;
  37. loadAsync( url: string, onProgress?: ( event: ProgressEvent ) => void ): Promise<GLTF>;
  38. setDRACOLoader( dracoLoader: DRACOLoader ): GLTFLoader;
  39. setDDSLoader( ddsLoader: DDSLoader ): GLTFLoader;
  40. register( callback: ( parser: GLTFParser ) => GLTFLoaderPlugin ): GLTFLoader;
  41. unregister( callback: ( parser: GLTFParser ) => GLTFLoaderPlugin ): GLTFLoader;
  42. setKTX2Loader( ktx2Loader: KTX2Loader ): GLTFLoader;
  43. setMeshoptDecoder( meshoptDecoder: /* MeshoptDecoder */ any ): GLTFLoader;
  44. parse( data: ArrayBuffer | string, path: string, onLoad: ( gltf: GLTF ) => void, onError?: ( event: ErrorEvent ) => void ) : void;
  45. }
  46. export interface GLTFReference {
  47. type: 'materials'|'nodes'|'textures';
  48. index: number;
  49. }
  50. export class GLTFParser {
  51. json: any;
  52. associations: Map<Object3D|Material|Texture, GLTFReference>;
  53. getDependency: ( type: string, index: number ) => Promise<any>;
  54. getDependencies: ( type: string ) => Promise<any[]>;
  55. }
  56. export interface GLTFLoaderPlugin {
  57. loadMesh?: ( meshIndex: number ) => Promise<Group | Mesh | SkinnedMesh> | null;
  58. loadBufferView?: ( bufferViewIndex: number ) => Promise<ArrayBuffer> | null;
  59. loadMaterial?: ( materialIndex: number ) => Promise<Material> | null;
  60. loadTexture?: ( textureIndex: number ) => Promise<Texture> | null;
  61. getMaterialType?: ( materialIndex: number ) => typeof Material | null;
  62. extendMaterialParams?: ( materialIndex: number, materialParams: { [ key: string ]: any } ) => Promise<any> | null;
  63. createNodeAttachment?: ( nodeIndex: number ) => Promise<Object3D> | null;
  64. }