Spline1D

Introduction

vtkSpline1D 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.

Methods

computeCloseCoefficients

Argument Type Required Description
size Number Yes
work Float32Array Yes
x Array. Yes
y Array. Yes

computeOpenCoefficients

Argument Type Required Description
size Number Yes
work Float32Array Yes
x Array. Yes
y Array. Yes

extend

Method used to decorate a given object (publicAPI+model) with vtkSpline1D characteristics.

Argument Type Required Description
publicAPI Yes object on which methods will be bounds (public)
model Yes object on which data structure will be bounds (protected)
initialValues ISpline1DInitialValues No (default: {})

getValue

Argument Type Required Description
intervalIndex Number Yes
t Number Yes

newInstance

Method used to create a new instance of vtkSpline1D.

Argument Type Required Description
initialValues ISpline1DInitialValues No for pre-setting some of its content

Source

index.d.ts
import { vtkObject } from "../../../interfaces" ;


interface ISpline1DInitialValues {}

export interface vtkSpline1D extends vtkObject {

/**
*
* @param {Number} size
* @param {Float32Array} work
* @param {Number[]} x
* @param {Number[]} y
*/
computeCloseCoefficients(size: number, work: Float32Array, x: number[], y: number[]): void;

/**
*
* @param {Number} size
* @param {Float32Array} work
* @param {Number[]} x
* @param {Number[]} y
*/
computeOpenCoefficients(size: number, work: Float32Array, x: number[], y: number[]): void;

/**
*
* @param {Number} intervalIndex
* @param {Number} t
*/
getValue(intervalIndex: number, t: number): void;
}

/**
* Method used to decorate a given object (publicAPI+model) with vtkSpline1D characteristics.
*
* @param publicAPI object on which methods will be bounds (public)
* @param model object on which data structure will be bounds (protected)
* @param {ISpline1DInitialValues} [initialValues] (default: {})
*/
export function extend(publicAPI: object, model: object, initialValues?: ISpline1DInitialValues): void;

/**
* Method used to create a new instance of vtkSpline1D.
* @param {ISpline1DInitialValues} [initialValues] for pre-setting some of its content
*/
export function newInstance(initialValues?: ISpline1DInitialValues): vtkSpline1D;

/**
* vtkSpline1D 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 vtkSpline1D: {
newInstance: typeof newInstance,
extend: typeof extend
};
export default vtkSpline1D;
index.js
import macro from 'vtk.js/Sources/macros';

const { vtkErrorMacro } = macro;

// ----------------------------------------------------------------------------
// vtkSpline1D methods
// ----------------------------------------------------------------------------

function vtkSpline1D(publicAPI, model) {
// Set our classname
model.classHierarchy.push('vtkSpline1D');

// --------------------------------------------------------------------------

publicAPI.computeCloseCoefficients = (size, work, x, y) => {
vtkErrorMacro(
`${
model.classHierarchy.slice(-1)[0]
} should implement computeCloseCoefficients`
);
};

// --------------------------------------------------------------------------

publicAPI.computeOpenCoefficients = (size, work, x, y) => {
vtkErrorMacro(
`${
model.classHierarchy.slice(-1)[0]
} should implement computeOpenCoefficients`
);
};

// --------------------------------------------------------------------------

publicAPI.getValue = (intervalIndex, t) => {
vtkErrorMacro(
`${model.classHierarchy.slice(-1)[0]} should implement getValue`
);
};
}

// ----------------------------------------------------------------------------
// Object factory
// ----------------------------------------------------------------------------

const DEFAULT_VALUES = {};

// ----------------------------------------------------------------------------

export function extend(publicAPI, model, initialValues = {}) {
Object.assign(model, DEFAULT_VALUES, initialValues);

// Build VTK API
macro.obj(publicAPI, model);
vtkSpline1D(publicAPI, model);
}

// ----------------------------------------------------------------------------

export const newInstance = macro.newInstance(extend, 'vtkSpline1D');

// ----------------------------------------------------------------------------

export default { newInstance, extend };