threepipe
Version:
A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.
23 lines (21 loc) • 914 B
text/typescript
import {Loader} from 'three'
import {IAssetImporter} from './IAssetImporter'
import {IDisposable, ValOrFunc} from 'ts-browser-helpers'
import {ImportAddOptions} from './AssetManager'
export interface ILoader<T = any, T2 = T> extends Loader, Partial<IDisposable> {
importOptions?: ImportAddOptions
loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<any>;
/**
* Transform after load, like convert geometry to mesh, etc. for reference see {@link DRACOLoader2} or {@link PLYLoadPlugin}
* @param res - result of load
* @param options
*/
transform?(res: T, options: ImportAddOptions): T2|Promise<T2>
}
export interface IImporter {
ext: ValOrFunc<string[]>;
mime: string[];
root: boolean;
extensions?: any[]; // extra plugins/extensions for this importer, like for gltf loader.
ctor: (assetImporter: IAssetImporter)=>ILoader|undefined;
}