@kitware/vtk.js
Version:
Visualization Toolkit for the Web
105 lines (91 loc) • 2.85 kB
TypeScript
import { vtkObject } from './../../interfaces';
import { Bounds, Vector3 } from './../../types';
import vtkImplicitFunction from './ImplicitFunction';
export interface IBoxInitialValues {
bbox?: Bounds;
}
export interface IBoxIntersections {
t1;
t2: number;
x1;
x2: Vector3;
}
export interface vtkBox extends vtkImplicitFunction {
/**
* Add the bounds for the box.
* @param {Bounds} bounds
*/
addBounds(bounds: Bounds): void;
/**
*
* @param other
*/
addBox(other: any): void;
/**
*
* @param {Vector3} x The point coordinate.
*/
evaluateFunction(x: Vector3): number;
/**
* Intersect box with line and return the parametric values and points of the two intercepts
* @param bounds
* @param p1
* @param p2
* returns @object IBoxIntersections {t1, t2, x1, x2} object containing the t1, t2 parametric values and
* x1, x2 coordinates of the line intercept points in the bounding box or undefined
*/
intersectWithLine(p1: Vector3, p2: Vector3): IBoxIntersections | undefined;
/**
*
* @param {Number} x The x coordinate.
* @param {Number} y The y coordinate.
* @param {Number} z The z coordinate.
*/
evaluateFunction(x: number, y: number, z: number): number;
/**
* Get the bounds for the box.
*/
getBounds(): Bounds;
/**
* Set the bounds for the box.
* @param {Bounds} bounds The bounds for the box.
*/
setBounds(bounds: Bounds): void;
}
/**
* Method used to decorate a given object (publicAPI+model) with vtkBox characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param {IBoxInitialValues} [initialValues] (default: {})
*/
export function extend(
publicAPI: object,
model: object,
initialValues?: IBoxInitialValues
): void;
/**
* Method used to create a new instance of vtkBox.
* @param {IBoxInitialValues} [initialValues] for pre-setting some of its content
*/
export function newInstance(initialValues?: IBoxInitialValues): vtkBox;
//------------------------------------------------------------------------------
// Bounding box intersection code from David Gobbi. Go through the
// bounding planes one at a time and compute the parametric coordinate
// of each intersection and return the parametric values and the calculated points
export function intersectWithLine(
bounds,
p1,
p2
): IBoxIntersections | undefined;
/**
* vtkBox provides methods for creating a 1D cubic spline object from given
* parameters, and allows for the calculation of the spline value and derivative
* at any given point inside the spline intervals.
*/
export declare const vtkBox: {
newInstance: typeof newInstance;
extend: typeof extend;
intersectWithLine: typeof intersectWithLine;
};
export default vtkBox;