UNPKG

@thewtex/vtk.js-esm

Version:

Visualization Toolkit for the Web

81 lines (73 loc) 3.48 kB
import _defineProperty from '@babel/runtime/helpers/defineProperty'; import { ImageBorderMode, InterpolationMode } from './Constants.js'; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var vtkInterpolationInfo = { pointer: null, extent: [0, -1, 0, -1, 0, -1], increments: [0, 0, 0], scalarType: null, // dataType dataTypeSize: 1, // BYTES_PER_ELEMENT numberOfComponents: 1, borderMode: ImageBorderMode.CLAMP, interpolationMode: InterpolationMode.LINEAR, extraInfo: null }; var vtkInterpolationWeights = _objectSpread(_objectSpread({}, vtkInterpolationInfo), {}, { positions: [0, 0, 0], weights: null, weightExtent: [0, -1, 0, -1, 0, -1], kernelSize: [1, 1, 1], workspace: null, lastY: null, lastZ: null }); function vtkInterpolationMathFloor(x) { var integer = Math.floor(x); return { floored: integer, error: x - integer }; } function vtkInterpolationMathRound(x) { return Math.round(x); } //---------------------------------------------------------------------------- // Perform a clamp to limit an index to [b, c] and subtract b. function vtkInterpolationMathClamp(a, b, c) { var clamp = a <= c ? a : c; clamp -= b; clamp = clamp >= 0 ? clamp : 0; return clamp; } //---------------------------------------------------------------------------- // Perform a wrap to limit an index to [b, c] and subtract b. function vtkInterpolationMathWrap(a, b, c) { var range = c - b + 1; var wrap = a - b; wrap %= range; // required for some % implementations wrap = wrap >= 0 ? wrap : wrap + range; return wrap; } //---------------------------------------------------------------------------- // Perform a mirror to limit an index to [b, c] and subtract b. function vtkInterpolationMathMirror(a, b, c) { var range = c - b; var ifzero = range === 0 ? 1 : 0; var range2 = 2 * range + ifzero; var mirror = a - b; mirror = mirror >= 0 ? mirror : -mirror; mirror %= range2; mirror = mirror <= range ? mirror : range2 - mirror; return mirror; } var InterpolationInfo = { vtkInterpolationInfo: vtkInterpolationInfo, vtkInterpolationWeights: vtkInterpolationWeights, vtkInterpolationMathFloor: vtkInterpolationMathFloor, vtkInterpolationMathRound: vtkInterpolationMathRound, vtkInterpolationMathClamp: vtkInterpolationMathClamp, vtkInterpolationMathWrap: vtkInterpolationMathWrap, vtkInterpolationMathMirror: vtkInterpolationMathMirror }; export default InterpolationInfo; export { vtkInterpolationInfo, vtkInterpolationMathClamp, vtkInterpolationMathFloor, vtkInterpolationMathMirror, vtkInterpolationMathRound, vtkInterpolationMathWrap, vtkInterpolationWeights };