@thewtex/vtk.js-esm
Version:
Visualization Toolkit for the Web
83 lines (62 loc) • 2.06 kB
JavaScript
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 };