UNPKG

threepipe

Version:

A 3D viewer framework built on top of three.js in TypeScript with a focus on quality rendering, modularity and extensibility.

93 lines 4.52 kB
import { Event, EventDispatcher, EventListener, LoadingManager } from 'three'; import { IAssetImporter, IAssetImporterEventTypes, ImportAssetOptions, ImportFilesOptions, ImportResult, ProcessRawOptions } from './IAssetImporter'; import { IAsset, IFile } from './IAsset'; import { IImporter, ILoader } from './IImporter'; export type IAssetImporterEvent = Event & { type: IAssetImporterEventTypes; data?: ImportResult; options?: ProcessRawOptions; path?: string; progress?: number; state?: string; error?: any; files?: Map<string, IFile>; url?: string; loaded?: number; total?: number; loader?: ILoader; }; /** * Asset Importer * * Utility class to import assets from local files, blobs, urls, etc. * Used in {@link AssetManager} to import assets. * Acts as a wrapper over three.js LoadingManager and adds support for dynamically loading loaders, caching assets, better event dispatching and file tracking. * @category Asset Manager */ export declare class AssetImporter extends EventDispatcher<IAssetImporterEvent, IAssetImporterEventTypes> implements IAssetImporter { private _loadingManager; private _logger; protected _rootContext?: { path: string; rootUrl: string; }; private _loaderCache; private _fileDatabase; private _cachedAssets; readonly importers: IImporter[]; constructor(logging?: boolean); get loadingManager(): LoadingManager; get cachedAssets(): IAsset[]; addImporter(...importers: IImporter[]): void; removeImporter(...importers: IImporter[]): void; import<T extends ImportResult | undefined = ImportResult>(assetOrPath?: string | IAsset | IAsset[] | File | File[], options?: ImportAssetOptions): Promise<(T | undefined)[]>; importSingle<T extends ImportResult | undefined = ImportResult>(asset?: IAsset | string, options?: ImportAssetOptions): Promise<T | undefined>; importPath<T extends ImportResult | undefined = ImportResult | undefined>(path: string, options?: ImportAssetOptions): Promise<T[]>; importAsset<T extends ImportResult | undefined = ImportResult | undefined>(asset?: IAsset, options?: ImportAssetOptions, onDownloadProgress?: (e: ProgressEvent) => void): Promise<T[]>; importFile<T extends ImportResult | undefined = ImportResult | undefined>(file?: File, options?: ImportAssetOptions, onDownloadProgress?: (e: ProgressEvent) => void): Promise<T[]>; /** * Import multiple local files/blobs from a map of files, like when a local folder is loaded, or when multiple files are dropped. * @param files * @param options */ importFiles<T extends ImportResult | undefined = ImportResult | undefined>(files: Map<string, IFile>, options?: ImportFilesOptions): Promise<Map<string, T[]>>; private _loadFile; /** * Register a file in the database and return a loader for it. If the loader does not exist, it will be created. * @param path * @param file */ registerFile(path: string, file?: IFile): ILoader | undefined; /** * Remove a file from the database and revoke the object url if it exists. * @param path */ unregisterFile(path: string): void; processRaw<T extends (ImportResult | undefined) = ImportResult>(res: T | T[], options: ProcessRawOptions, path?: string): Promise<T[]>; processRawSingle<T extends (ImportResult | undefined) = ImportResult>(res: T, options: ProcessRawOptions, path?: string): Promise<T>; dispose(): void; /** * Clear memory asset and loader cache. Browser cache and custom cache storage is not cleared with this. */ clearCache(): void; unregisterAllFiles(): void; clearLoaderCache(): void; resolveURL(url: string): string; protected _urlModifier(url: string): string; private _isRootFile; private _getImporter; private _getLoader; private _createLoader; addEventListener<T extends IAssetImporterEvent['type'] & IAssetImporterEventTypes>(type: T, listener: EventListener<IAssetImporterEvent, T, this>): void; protected _onLoad(): void; protected _onProgress(url: string, loaded: number, total: number): void; protected _onError(url: string): void; protected _onStart(url: string, loaded: number, total: number): void; /** * @deprecated use {@link processRaw} instead * @param res * @param options */ processImported(res: any, options: ProcessRawOptions, path?: string): Promise<any[]>; } //# sourceMappingURL=AssetImporter.d.ts.map