UNPKG

threepipe

Version:

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

32 lines 1.62 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; 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=IViewerPlugin.d.ts.map