@kitware/vtk.js
Version:
Visualization Toolkit for the Web
312 lines (269 loc) • 8.21 kB
TypeScript
import { vtkObject } from './../../interfaces';
import vtkActor from './Actor';
import vtkActor2D from './Actor2D';
import vtkTexture from './Texture';
import vtkVolume from './Volume';
import { CoordinateSystem } from './Prop/Constants';
export interface IPropInitialValues {
visibility?: boolean;
pickable?: boolean;
dragable?: boolean;
useBounds?: boolean;
allocatedRenderTime?: number;
estimatedRenderTime?: number;
savedEstimatedRenderTime?: number;
renderTimeMultiplier?: number;
textures?: vtkTexture[];
}
export interface vtkProp extends vtkObject {
/**
*
* @param estimatedRenderTime
*/
addEstimatedRenderTime(estimatedRenderTime: number): void;
/**
* To be reimplemented by subclasses.
* For some exporters and other other operations we must be able
* to collect all the actors or volumes.
*/
getActors(): vtkActor[];
/**
* Not implemented yet
*/
getActors2D(): vtkActor2D[];
/**
* Get the coordinate system this prop is defined in.
*/
getCoordinateSystem(): CoordinateSystem;
/**
* Get the value of the dragable instance variable.
* @see getNestedDragable
* @see getPickable
*/
getDragable(): boolean;
/**
* Combine dragabe property with optional ancestor props dragable properties.
* It is used to decide whether the prop can be mouse dragged.
* @see getDragable
* @see getParentProp
*/
getNestedDragable(): boolean;
/**
* Get visibility of this vtkProp.
* @see getNestedVisibility
* @see getPickable
*/
getVisibility(): boolean;
/**
* Combine visibility property with optional ancestor props visibility properties.
* It is used to decide whether the prop should be rendered.
* @see getVisibility
* @see getParentProp
*/
getNestedVisibility(): boolean;
/**
* Get the pickable instance variable.
* @see getNestedPickable
* @see getDragable
*/
getPickable(): boolean;
/**
* Combine pickable property with optional ancestor props pickable properties.
* It is used to decide whether the prop should be rendered during a selection rendering.
* @see getPickable
* @see getParentProp
*/
getNestedPickable(): boolean;
/**
* Return the mtime of anything that would cause the rendered image to appear differently.
* Usually this involves checking the mtime of the prop plus anything else it depends on such as properties,
* textures etc.
*/
getRedrawMTime(): number;
/**
*
*/
getRendertimemultiplier(): number;
/**
* The value is returned in seconds. For simple geometry the accuracy may not be great
* due to buffering. For ray casting, which is already multi-resolution,
* the current resolution of the image is factored into the time. We need the viewport
* for viewing parameters that affect timing. The no-arguments version simply returns the value of the variable with no estimation.
*/
getEstimatedRenderTime(): number;
/**
*
*/
getAllocatedRenderTime(): number;
/**
*
*/
getNestedProps(): any;
/**
* Return parent prop set by setParentProp
* @see setParentProp
*/
getParentProp(): vtkProp;
/**
*
* Not implemented yet
*/
getVolumes(): vtkVolume[];
/**
*
*/
getUseBounds(): boolean;
/**
*
*/
getSupportsSelection(): boolean;
/**
*
*/
getTextures(): vtkTexture[];
/**
*
* @param {vtkTexture} texture The vtkTexture instance.
*
*/
hasTexture(texture: vtkTexture): boolean;
/**
*
* @param {vtkTexture} texture The vtkTexture instance.
*/
addTexture(texture: vtkTexture): void;
/**
*
* @param {vtkTexture} texture The vtkTexture instance.
*/
removeTexture(texture: vtkTexture): void;
/**
*
*/
removeAllTextures(): void;
/**
* This method is used to restore that old value should the render be aborted.
*/
restoreEstimatedRenderTime(): void;
/**
*
* @param allocatedRenderTime
*/
setAllocatedRenderTime(allocatedRenderTime: number): void;
/**
* Set the coordinate system that this prop's data should be in.
* Once the prop has applied any modifiers such as position, orientation
* userMatrix the resulting values will be treated as in the specified
* coordinate system.
* Not all mappers support all coordinate systems.
* @param {CoordinateSystem} coordinateSystem
*/
setCoordinateSystem(coordinateSystem: CoordinateSystem): void;
/**
* Indicate that this prop's data should be in world coordinates.
* Once the prop has applied any modifiers such as position, orientation
* userMatrix the resulting values will be treated as in world coordinates.
* Not all mappers support all coordinate systems.
*/
setCoordinateSystemToWorld(): void;
/**
* Indicate that this prop's data should be in display coordinates.
* Once the prop has applied any modifiers such as position, orientation
* userMatrix the resulting values will be treated as in pixel coordinates.
* That is pixel coordinate with 0,0 in the lower left of the viewport
* and a z range of -1 at the near plane and 1 at the far.
* Not all mappers support all coordinate systems.
*/
setCoordinateSystemToDisplay(): void;
/**
* Set whether prop is dragable.
* Even if true, prop may not be dragable if an ancestor prop is not dragable.
* @param dragable
* @default true
* @see getDragable
* @see combineDragable
*/
setDragable(dragable: boolean): boolean;
/**
*
* @param estimatedRenderTime
*/
setEstimatedRenderTime(estimatedRenderTime: number): void;
/**
* Set parent prop used by combineVisibility(), combinePickable(), combineDragable()
* @param parentProp
* @see combineVisibility
* @see combinePickable
* @see combineDragable
* @default null
*/
setParentProp(parentProp: vtkProp): void;
/**
* Set whether prop is pickable.
* Even if true, prop may not be pickable if an ancestor prop is not pickable.
* @param pickable
* @default true
* @see getPickable
* @see combinePickable
*/
setPickable(pickable: boolean): boolean;
/**
* Set whether prop is visible.
* Even if true, prop may not be visible if an ancestor prop is not visible.
* @param visibility
* @default true
* @see getVisibility
* @see combineVisibility
*/
setVisibility(visibility: boolean): boolean;
/**
* In case the Visibility flag is true, tell if the bounds of this prop should be taken into
* account or ignored during the computation of other bounding boxes, like in vtkRenderer::ResetCamera().
* @param useBounds
* @default true
*/
setUseBounds(useBounds: boolean): boolean;
/**
* This is used for culling and is a number between 0 and 1. It is used to create the allocated render time value.
* @param {Number} renderTimeMultiplier
*/
setRenderTimeMultiplier(renderTimeMultiplier: number): boolean;
/**
* Not Implemented yet
* Method fires PickEvent if the prop is picked.
*/
pick(): any;
/**
* Not Implemented yet
*/
hasKey(): any;
}
/**
* Method use to decorate a given object (publicAPI+model) with vtkProp characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param {IPropInitialValues} [initialValues] (default: {})
*/
export function extend(
publicAPI: object,
model: object,
initialValues?: IPropInitialValues
): void;
/**
* Method use to create a new instance of vtkProp
* @param {IPropInitialValues} [initialValues] for pre-setting some of its content
*/
export function newInstance(initialValues?: IPropInitialValues): vtkProp;
/**
* vtkProp is an abstract superclass for any objects that can exist in a
* rendered scene (either 2D or 3D). Instances of vtkProp may respond to
* various render methods (e.g., RenderOpaqueGeometry()). vtkProp also
* defines the API for picking, LOD manipulation, and common instance
* variables that control visibility, picking, and dragging.
*/
export declare const vtkProp: {
newInstance: typeof newInstance;
extend: typeof extend;
};
export default vtkProp;