UNPKG

@inweb/viewer-core

Version:

3D CAD and BIM data Viewer core

70 lines (69 loc) 2.09 kB
import type { IViewer } from "../viewer/IViewer"; /** * Defines the dragger interface for the viewer. */ export interface IDragger { /** * The name of the dragger. Use this name to activate dragger using * {@link Viewer.setActiveDragger | Viewer.setActiveDragger()} */ name?: string; /** * Deprecated since `25.12`. Use costructor instead to initialize dragger. * * @deprecated */ initialize?(): void; /** * Releases resources allocated by the dragger. */ dispose(): void; /** * Deprecated since `25.12`. Instead, register an `update` event listener for the viewer and update the * dragger preview in the event handler. * * @deprecated */ updatePreview?(): void; } /** * Dragger provider is a function that creates a dragger instance for the specified viewer. */ export interface IDraggerProvider { /** * @param viewer - Viewer instance that creates the dragger. */ (viewer: any): IDragger; } /** * Defines the viewer draggers registry interface. */ export interface IDraggersRegistry { /** * Binds a dragger name to a dragger provider. Registering a dragger with an existing name twice * overrides the existing dragger. * * @param name - Unique name for the dragger. * @param provider - Dragger provider. */ registerDragger(name: string, provider: IDraggerProvider): void; /** * Registers an alias for a dragger. * * @param name - Unique name for the dragger. * @param alias - Dragger alias string. */ registerDraggerAlias(name: string, alias: string): void; /** * Returns a list of registered draggers. */ getDraggers(): Map<string, IDraggerProvider>; /** * Creates the dragger denoted by the given name. Returns `null` if a dragger with given name not * registered. * * @param name - Dragger name. * @param viewer - Viewer instance that wants to create the dragger. */ createDragger(name: string, viewer: IViewer): IDragger | null; }