@kitware/vtk.js
Version:
Visualization Toolkit for the Web
163 lines (147 loc) • 4.11 kB
TypeScript
import vtkImageData from './../../Common/DataModel/ImageData';
import { vtkAlgorithm, vtkObject } from './../../interfaces';
import { Bounds, Extent, Vector2, Vector3 } from './../../types';
/**
*
*/
export interface IImageStreamlineInitialValues {
integrationStep?: number;
maximumNumberOfSteps?: number;
}
type vtkImageStreamlineBase = vtkObject & vtkAlgorithm;
export interface vtkImageStreamline extends vtkImageStreamlineBase {
/**
*
* @param velArray
* @param image
* @param {Number} delT
* @param {Number[]} xyz
*/
computeNextStep(
velArray: any,
image: any,
delT: number,
xyz: number[]
): boolean;
/**
*
* @param {Vector3} x
* @param {Vector3} ijk
* @param {Vector3} pcoords
* @param {Extent} extent
* @param {Vector3} spacing
* @param {Vector3} origin
* @param {Bounds} bounds
*/
computeStructuredCoordinates(
x: Vector3,
ijk: Vector3,
pcoords: Vector3,
extent: Extent,
spacing: Vector3,
origin: Vector3,
bounds: Bounds
): boolean;
/**
* Get the step length (delT) used during integration.
*/
getIntegrationStep(): number;
/**
* Get the number of steps to be used in the integration.
*/
getMaximumNumberOfSteps(): number;
/**
*
* @param {Vector3} ijk
* @param {Vector2} dims
* @param {Number[]} ids
*/
getVoxelIndices(ijk: Vector3, dims: Vector2, ids: number[]): void;
/**
*
* @param {Vector3} pcoords
* @param {Number[]} sf
*/
interpolationFunctions(pcoords: Vector3, sf: number[]): void;
/**
*
* @param inData
* @param outData
*/
requestData(inData: any, outData: any): void;
/**
* Set the step length (delT) used during integration.
* @param {Number} integrationStep
*/
setIntegrationStep(integrationStep: number): boolean;
/**
* Set the number of steps to be used in the integration.
* Integration can terminal earlier if the streamline leaves the domain.
* @param {Number} maximumNumberOfSteps
*/
setMaximumNumberOfSteps(maximumNumberOfSteps: number): boolean;
/**
*
* @param velArray
* @param {vtkImageData} image
* @param {Number[]} seed
* @param {Number} offset
*/
streamIntegrate(
velArray: any,
image: vtkImageData,
seed: number[],
offset: number
): any[];
/**
*
* @param {Number[]} xyz
* @param velArray
* @param {vtkImageData} image
* @param velAtArg
*/
vectorAt(
xyz: number[],
velArray: any,
image: vtkImageData,
velAtArg: any
): boolean;
}
/**
* Method used to decorate a given object (publicAPI+model) with vtkImageStreamline characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param {IImageStreamlineInitialValues} [initialValues] (default: {})
*/
export function extend(
publicAPI: object,
model: object,
initialValues?: IImageStreamlineInitialValues
): void;
/**
* Method used to create a new instance of vtkImageStreamline
* @param {IImageStreamlineInitialValues} [initialValues] for pre-setting some of its content
*/
export function newInstance(
initialValues?: IImageStreamlineInitialValues
): vtkImageStreamline;
/**
* vtkImageStreamline - integrate streamlines in a vtkImageData
*
* vtkImageStreamline is a filter that generates streamlines from a vtkImageData
* input over which a vector field is defined. This filter will look for vectors
* (i.e. getVectors()) in the input. It will then integrate these vectors, using
* Runge-Kutta 2, from a starting set of seeds defined by the points of the 2nd
* input until a specified maximum number of steps is reached or until the
* streamline leaves the domain.
*
* The output will be a vtkPolyData which contains a polyline for each
* streamline. Currently, this filter does not interpolate any input fields to
* the points of the streamline.
*/
export declare const vtkImageStreamline: {
newInstance: typeof newInstance;
extend: typeof extend;
};
export default vtkImageStreamline;