UNPKG

@thewtex/vtk.js-esm

Version:

Visualization Toolkit for the Web

222 lines (203 loc) 6.17 kB
import vtkDataArray from '@kitware/vtk.js/Common/Core/DataArray'; import { vtkPipelineConnection } from '@kitware/vtk.js/types'; /** * Object returned on any subscription call */ export interface vtkSubscription { unsubscribe(): void; } /** * Basic object representing a data range */ export interface vtkRange { min: number; max: number; } export interface vtkOutputPort { filter: vtkAlgorithm; } /** * vtkAlgorithm API */ export interface vtkAlgorithm { /** * @param dataset * @param port (default 0) */ setInputData(dataset: any, port?: number): void; /** * @param port (default 0) */ getInputData(port?: number): any; /** * @param outputPort * @param port (default 0) */ setInputConnection(outputPort: vtkPipelineConnection, port?: number): void; /** * @param port (default 0) */ getInputConnection(port?: number): vtkPipelineConnection; addInputConnection(outputPort: vtkPipelineConnection): void; addInputData(dataset: any): void; /** * @param port (default 0) */ getOutputData(port?: number): any; shouldUpdate(): boolean; /** * @param port (default 0) */ getOutputPort(port?: number): vtkPipelineConnection; update(): void; getNumberOfInputPorts(): number; getNumberOfOutputPorts(): number; /** * @param port (default 0) */ getInputArrayToProcess(inputPort?: number): vtkDataArray; /** * * @param inputPort * @param arrayName * @param fieldAssociation * @param attributeType (default 'Scalars') */ setInputArrayToProcess( inputPort: number, arrayName: string, fieldAssociation: string, attributeType?: string ): void; } /** * Base vtkClass which provides MTime tracking and class infrastructure */ export interface vtkObject { /** * Allow to check if that object was deleted (.delete() was called before). * * @returns true if delete() was previously called */ isDeleted(): boolean; /** * Mark the object dirty by increasing its MTime. * Such action also trigger the onModified() callbacks if any was registered. * This naturally happens when you call any setXXX(value) with a different value. */ modified(): void; /** * Method to register callback when the object is modified(). * * @param callback function * @returns subscription object so you can easily unsubscribe later on */ onModified(callback: (instance: vtkObject) => any): vtkSubscription; /** * Return the `Modified Time` which is a monotonic increasing integer * global for all vtkObjects. * * This allow to solve a question such as: * - Is that object created/modified after another one? * - Do I need to re-execute this filter, or not? ... * * @return {Number} the global modified time. */ getMTime(): number; /** * Method to check if an instance is of a given class name. * For example such method for a vtkCellArray will return true * for any of the following string: ['vtkObject', 'vtkDataArray', 'vtkCellArray'] */ isA(className: string): boolean; /** * Return the instance class name. */ getClassName(): string; /** * Generic method to set many fields at one. * * For example calling the following function * ``` * changeDetected = sphereSourceInstance.set({ * phiResolution: 10, * thetaResolution: 20, * }); * ``` * will be equivalent of calling * ``` * changeDetected += sphereSourceInstance.setPhiResolution(10); * changeDetected += sphereSourceInstance.setThetaResolution(20); * changeDetected = !!changeDetected; * ``` * * In case you provide other field names that do not belong to the instance, * vtkWarningMacro will be used to warn you. To disable those warning, * you can set `noWarning` to true. * * If `noFunction` is set to true, the field will be set directly on the model * without calling the `set${FieldName}()` method. * * @param map (default: {}) Object capturing the set of fieldNames and associated values to set. * @param noWarning (default: false) Boolean to disable any warning. * @param noFunctions (default: false) Boolean to skip any function execution and rely on only setting the fields on the model. * @return true if a change was actually performed. False otherwise when the value provided were equal to the ones already set inside the instance. */ set(map?: object, noWarning?: boolean, noFunction?: boolean): boolean; /** * Extract a set of properties at once from a vtkObject. * * This can be convenient to pass a partial state of * one object to another. * * ``` * cameraB.set(cameraA.get('position', 'viewUp', 'focalPoint')); * ``` * * @param listOfKeys set of field names that you want to retrieve. If not provided, the full model get returned as a new object. * @returns a new object containing only the values of requested fields */ get(...listOfKeys: Array<string>): object; /** * Allow to get a direct reference of a model element * * @param name of the field to extract from the instance model * @returns model[name] */ getReferenceByName(name: string): any; /** * Dereference any internal object and remove any subscription. * It gives custom class to properly detach themselves from the DOM * or any external dependency that could prevent their deletion * when the GC runs. */ delete(): void; /** * Try to extract a serializable (JSON) object of the given * instance tree. * * Such state can then be reused to clone or rebuild a full * vtkObject tree using the root vtk() function. * * The following example will grab mapper and dataset that are * beneath the vtkActor instance as well. * * ``` * const actorStr = JSON.stringify(actor.getState()); * const newActor = vtk(JSON.parse(actorStr)); * ``` */ getState(): object; /** * Try to copy the state of the other to ourselves by just using references. * * @param other instance to copy the reference from * @param debug (default: false) if true feedback will be provided when mismatch happen */ shallowCopy(other: vtkObject, debug?: boolean): void; } export interface vtkProperty { name: string; children?: Array<vtkProperty>; } export interface vtkPropertyDomain {}