UNPKG

@thewtex/vtk.js-esm

Version:

Visualization Toolkit for the Web

83 lines (62 loc) 2.06 kB
import macro from '../../macro.js'; // vtkAbstractMapper methods // ---------------------------------------------------------------------------- function vtkAbstractMapper(publicAPI, model) { publicAPI.update = function () { publicAPI.getInputData(); }; publicAPI.addClippingPlane = function (plane) { if (plane.getClassName() !== 'vtkPlane') { return; } model.clippingPlanes.push(plane); }; publicAPI.getNumberOfClippingPlanes = function () { return model.clippingPlanes.length; }; publicAPI.removeAllClippingPlanes = function () { model.clippingPlanes.length = 0; }; publicAPI.removeClippingPlane = function (i) { if (i < 0 || i >= 6) { return; } model.clippingPlanes.splice(i, 1); }; publicAPI.getClippingPlanes = function () { return model.clippingPlanes; }; publicAPI.setClippingPlanes = function (planes) { if (!planes) { return; } if (!Array.isArray(planes)) { publicAPI.addClippingPlane(planes); } else { var nbPlanes = planes.length; for (var i = 0; i < nbPlanes && i < 6; i++) { publicAPI.addClippingPlane(planes[i]); } } }; } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- var DEFAULT_VALUES = { clippingPlanes: [] }; // ---------------------------------------------------------------------------- function extend(publicAPI, model) { var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods macro.obj(publicAPI, model); macro.algo(publicAPI, model, 1, 0); if (!model.clippingPlanes) { model.clippingPlanes = []; } vtkAbstractMapper(publicAPI, model); } // ---------------------------------------------------------------------------- var vtkAbstractMapper$1 = { extend: extend }; export default vtkAbstractMapper$1; export { extend };