UNPKG

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.

170 lines 6.93 kB
import { ImportAssetOptions, ImportResult, ProcessRawOptions } from './IAssetImporter'; import { EventDispatcher } from 'three'; import { ISerializedConfig, IViewerPlugin, ThreeViewer } from '../viewer'; import { AssetImporter } from './AssetImporter'; import { IAsset } from './IAsset'; import { AddObjectOptions } from '../core'; import { MaterialManager } from './MaterialManager'; import { GLTFLoader2 } from './import'; import { ValOrArr } from 'ts-browser-helpers'; import { AssetExporter } from './AssetExporter'; import { GLTFWriter2 } from './export'; import { GLTFLoaderPlugin, GLTFParser } from 'three/examples/jsm/loaders/GLTFLoader.js'; import { GLTFExporterPlugin } from 'three/examples/jsm/exporters/GLTFExporter.js'; export interface AssetManagerOptions { /** * simple memory based cache for downloaded files, default = false */ simpleCache?: boolean; /** * Cache Storage for downloaded files, can use with `caches.open` * When true and by default uses `caches.open('threepipe-assetmanager')`, set to false to disable * @default true */ storage?: Cache | Storage | boolean; } export interface AddAssetOptions extends AddObjectOptions { /** * Automatically set any loaded HDR, EXR file as the scene environment map * @default true */ autoSetEnvironment?: boolean; /** * Automatically set any loaded image(ITexture) file as the scene background */ autoSetBackground?: boolean; } export interface ImportAddOptions extends ImportAssetOptions, AddAssetOptions { } export interface AddRawOptions extends ProcessRawOptions, AddAssetOptions { } export interface AssetManagerEventMap { loadAsset: { data: ImportResult; }; processStateUpdate: object; } /** * Asset Manager * * Utility class to manage import, export, and material management. * @category Asset Manager */ export declare class AssetManager extends EventDispatcher<AssetManagerEventMap> { readonly viewer: ThreeViewer; readonly importer: AssetImporter; readonly exporter: AssetExporter; readonly materials: MaterialManager; get storage(): Storage | Cache | undefined; constructor(viewer: ThreeViewer, cacheOptions?: AssetManagerOptions); addAsset<T extends ImportResult = ImportResult>(assetOrPath?: string | IAsset | IAsset[] | File | File[], options?: ImportAddOptions): Promise<(T | undefined)[]>; loadImported<T extends ValOrArr<ImportResult | undefined> = ImportResult>(imported: T, { autoSetEnvironment, autoSetBackground, ...options }?: AddAssetOptions): Promise<T>; /** * same as {@link loadImported} * @param imported * @param options */ addProcessedAssets<T extends ImportResult | undefined = ImportResult>(imported: (T | undefined)[], options?: AddAssetOptions): Promise<(T | undefined)[]>; addAssetSingle<T extends ImportResult = ImportResult>(asset?: string | IAsset | File, options?: ImportAssetOptions): Promise<T | undefined>; addRaw<T extends (ImportResult | undefined) = ImportResult>(res: T | T[], options?: AddRawOptions): Promise<(T | undefined)[]>; addRawSingle<T extends ImportResult | undefined = ImportResult | undefined>(res: T, options?: AddRawOptions): Promise<T | undefined>; private _sceneUpdated; dispose(): void; protected _addImporters(): void; private _gltfExporter; protected _addExporters(): void; protected _setupObjectProcess(): void; protected _setupObjectExport(): void; /** * Load the embedded `rootPath` dependencies within this object * @param object * @private */ private _loadObjectDependencies; /** * State of download/upload/process/other processes in the viewer. * Subscribes to importer and exporter by default, more can be added by plugins like {@link FileTransferPlugin} */ processState: Map<string, { state: string; progress?: number | undefined; }>; /** * Set process state for a path * Progress should be a number between 0 and 100 * Pass undefined in value to remove the state * @param path * @param value */ setProcessState(path: string, value: { state: string; progress?: number | undefined; } | undefined): void; protected _setupProcessState(): void; gltfExtensions: { name: string; import: (parser: GLTFParser, viewer?: ThreeViewer) => GLTFLoaderPlugin; export: (parser: GLTFWriter2) => GLTFExporterPlugin; textures?: Record<string, string | number>; }[]; protected _setupGltfExtensions(): void; protected _loaderCreate({ loader }: { loader: GLTFLoader2; }): void; registerGltfExtension(ext: AssetManager['gltfExtensions'][number]): void; unregisterGltfExtension(name: string): void; /** * @deprecated use addRaw instead * @param res * @param options */ addImported<T extends (ImportResult | undefined) = ImportResult>(res: T | T[], options?: AddRawOptions): Promise<(T | undefined)[]>; /** * @deprecated use addAsset instead * @param path * @param options */ addFromPath(path: string, options?: ImportAddOptions): Promise<any[]>; /** * @deprecated use {@link ThreeViewer.exportConfig} instead * @param binary - if set to false, encodes all the array buffers to base64 */ exportViewerConfig(binary?: boolean): Record<string, any>; /** * @deprecated use {@link ThreeViewer.exportPluginsConfig} instead * @param filter */ exportPluginPresets(filter?: string[]): import('../viewer').ISerializedViewerConfig; /** * @deprecated use {@link ThreeViewer.exportPluginConfig} instead * @param plugin */ exportPluginPreset(plugin: IViewerPlugin): ISerializedConfig | Record<string, never>; /** * @deprecated use {@link ThreeViewer.importPluginConfig} instead * @param json * @param plugin */ importPluginPreset(json: any, plugin?: IViewerPlugin): Promise<IViewerPlugin<ThreeViewer, boolean> | undefined>; /** * @deprecated use {@link ThreeViewer.importConfig} instead * @param viewerConfig */ importViewerConfig(viewerConfig: any): Promise<ThreeViewer | IViewerPlugin<ThreeViewer, boolean> | undefined>; /** * @deprecated use {@link ThreeViewer.fromJSON} instead * @param viewerConfig */ applyViewerConfig(viewerConfig: any, resources?: any): ThreeViewer | null; /** * @deprecated moved to {@link ThreeViewer.loadConfigResources} * @param json * @param extraResources - preloaded resources in the format of viewer config resources. */ importConfigResources(json: any, extraResources?: any): Promise<any>; /** * @deprecated not a plugin anymore */ static readonly PluginType = "AssetManager"; } //# sourceMappingURL=../src/assetmanager/AssetManager.d.ts.map