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.

33 lines 1.66 kB
import { IUiConfigContainer, UiConfigContainer } from 'uiconfig.js'; import { Class, IDisposable, IJSONSerializable } from 'ts-browser-helpers'; import { SerializationMetaType } from '../utils'; import { ISerializedConfig, ThreeViewer } from './ThreeViewer'; /** * Interface for Viewer Plugins * @category Viewer */ export interface IViewerPlugin<TViewer extends ThreeViewer = ThreeViewer, IsSync extends boolean = boolean> extends IUiConfigContainer, Partial<IJSONSerializable<ISerializedConfig, SerializationMetaType>>, IDisposable, Partial<UiConfigContainer> { constructor: { PluginType: string; PluginTags?: string[]; OldPluginType?: string; }; dependencies?: Class<IViewerPlugin<TViewer, IsSync>>[]; onAdded(viewer: TViewer): IsSync extends false ? Promise<void> : void; onRemove(viewer: TViewer): IsSync extends false ? Promise<void> : void; dirty?: boolean; serializeWithViewer?: boolean | undefined; storeState?: (prefix?: string, storage?: Storage, data?: any) => void; loadState?: (prefix?: string, storage?: Storage) => Promise<void>; } export interface IViewerPluginSync<TViewer extends ThreeViewer = ThreeViewer> extends IViewerPlugin<TViewer, true> { onAdded(viewer: TViewer): void; onRemove(viewer: TViewer): void; dependencies?: Class<IViewerPluginSync>[]; } export interface IViewerPluginAsync<TViewer extends ThreeViewer = ThreeViewer> extends IViewerPlugin<TViewer, false> { onAdded(viewer: TViewer): Promise<void>; onRemove(viewer: TViewer): Promise<void>; dependencies?: Class<IViewerPlugin>[]; } //# sourceMappingURL=../src/viewer/IViewerPlugin.d.ts.map