@inweb/viewer-core
Version:
3D CAD and BIM data Viewer core
70 lines (69 loc) • 2.09 kB
TypeScript
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;
}