@kitware/vtk.js
Version:
Visualization Toolkit for the Web
232 lines (198 loc) • 5.83 kB
TypeScript
import vtkAbstractWidget from './AbstractWidget';
import vtkAbstractWidgetFactory from './AbstractWidgetFactory';
import vtkCamera from './../../Rendering/Core/Camera';
import vtkProp from './../../Rendering/Core/Prop';
import vtkRenderer from './../../Rendering/Core/Renderer';
import vtkRenderWindow from './../../Rendering/Core/RenderWindow';
import vtkRenderWindowInteractor from './../../Rendering/Core/RenderWindowInteractor';
import vtkSelectionNode from './../../Common/DataModel/SelectionNode';
import vtkWidgetRepresentation from './../Representations/WidgetRepresentation';
import vtkWidgetState from './WidgetState';
import { vtkObject } from './../../interfaces';
import { CaptureOn, ViewTypes } from './WidgetManager/Constants';
import { Nullable } from './../../types';
export interface ISelectedData {
requestCount: number;
propID: number;
compositeID: number;
prop: vtkProp;
widget: vtkAbstractWidget;
representation: vtkWidgetRepresentation;
selectedState: vtkWidgetState;
}
export interface IRenderingComponents {
renderer: vtkRenderer;
renderWindow: vtkRenderWindow;
interactor: vtkRenderWindowInteractor;
apiSpecificRenderWindow: vtkRenderWindow;
camera: vtkCamera;
}
/**
* Extract the rendering components from the given renderer.
*
* @param {vtkRenderer} renderer The vtkRenderer instance.
*/
export function extractRenderingComponents(renderer: vtkRenderer): IRenderingComponents;
/**
* This method returns the world distance that corresponds to the height of a
* single display pixel at a given coordinate. For example, to determine the
* (vertical) distance that matches a display distance of 30px for a coordinate
* `coord`, you would compute `30 * getPixelWorldHeightAtCoord(coord)`.
*/
export function getPixelWorldHeightAtCoord(coord: []): Number;
export interface vtkWidgetManager extends vtkObject {
/**
* The the captureOn value.
* `CaptureOn.MOUSE_MOVE`: captures small region when moving mouse
* `CaptureOn.MOUSE_RELEASE`: captures entire region when mouse button is released
*
* @param {CaptureOn} captureOn
*/
setCaptureOn(captureOn: CaptureOn): boolean;
/**
* Get the captureOn value.
*/
getCaptureOn(): CaptureOn;
/**
* The the view type.
*
* @param {ViewTypes} type
*/
setViewType(type: ViewTypes): boolean;
/**
* Get the view type.
*/
getViewType(): ViewTypes;
/**
* Get the current selection.
*/
getSelections(): vtkSelectionNode[];
/**
* Get all the underlying widgets.
*/
getWidgets(): vtkAbstractWidget[];
/**
* Get the active widget.
*
* If no widget is active, returns null.
*/
getActiveWidget(): Nullable<vtkAbstractWidget>;
/**
* Get the view id.
*/
getViewId(): string;
/**
* Returns true if picking is enabled, false otherwise.
*/
getPickingEnabled(): boolean;
/**
* @deprecated
*/
getUseSvgLayer(): boolean;
/**
* @deprecated
*/
setUseSvgLayer(use: boolean): boolean;
/**
* Enable the picking.
*/
enablePicking(): void;
/**
* Renders all the widgets.
*/
renderWidgets(): void;
/**
* Disable the picking.
*/
disablePicking(): void;
/**
* Set the renderer.
*
* @param {vtkRenderer} renderer
*/
setRenderer(renderer: vtkRenderer): void;
/**
* Register a widget on the widget manager instance.
* Please note that one should link the widget manager to a view before calling this method.
*
* @param {vtkAbstractWidgetFactory} widget The abstract widget factory.
* @param {ViewTypes} [viewType]
* @param {Object} [initialValues]
*/
addWidget(
widget: vtkAbstractWidgetFactory,
viewType?: ViewTypes,
initialValues?: object
): Nullable<vtkAbstractWidget>;
/**
* Unregister all widgets from the widget manager.
*/
removeWidgets(): void;
/**
* Remove a widget from the widget manager.
*
* @param {vtkAbstractWidget | vtkAbstractWidgetFactory} widget The widget to remove
*/
removeWidget(widget: vtkAbstractWidget | vtkAbstractWidgetFactory): void;
/**
* Given x and y parameter, get selected data.
*
* @param {Number} x
* @param {Number} y
*/
getSelectedDataForXY(x: number, y: number): Promise<ISelectedData>;
/**
* @deprecated
*/
updateSelectionFromXY(x: number, y: number): void;
/**
* @deprecated
*/
updateSelectionFromMouseEvent(event: MouseEvent): void;
/**
* The all currently selected data.
*/
getSelectedData(): ISelectedData | {};
/**
* Given the focus to the given widget instance.
*
* @param {vtkAbstractWidget | vtkAbstractWidgetFactory} widget The widget instance which should get the focus.
*/
grabFocus(widget: vtkAbstractWidget | vtkAbstractWidgetFactory): void;
/**
* Release the focus.
*/
releaseFocus(): void;
}
export interface IWidgetManagerInitialValues {
captureOn?: CaptureOn;
viewType?: ViewTypes;
pickingEnabled?: boolean;
/**
* @deprecated
*/
useSvgLayer?: boolean;
}
/**
* Method used to decorate a given object (publicAPI+model) with vtkWidgetManager characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param initialValues (default: {})
*/
export function extend(
publicAPI: object,
model: object,
initialValues?: IWidgetManagerInitialValues
): vtkWidgetManager;
/**
* Method used to create a new instance of vtkCellArray
*
* @param initialValues for pre-setting some of its content
*/
export function newInstance(initialValues?: IWidgetManagerInitialValues): vtkWidgetManager;
export declare const vtkWidgetManager: {
newInstance: typeof newInstance;
extend: typeof extend;
};
export default vtkWidgetManager;