UNPKG

@kitware/vtk.js

Version:

Visualization Toolkit for the Web

78 lines (63 loc) 2.62 kB
import CoincidentTopologyHelper from './Mapper/CoincidentTopologyHelper.js'; import Constants from './ImageResliceMapper/Constants.js'; import { m as macro } from '../../macros2.js'; import vtkAbstractImageMapper from './AbstractImageMapper.js'; import vtkBoundingBox from '../../Common/DataModel/BoundingBox.js'; const { SlabTypes } = Constants; const { staticOffsetAPI, otherStaticMethods } = CoincidentTopologyHelper; // ---------------------------------------------------------------------------- // vtkImageResliceMapper methods // ---------------------------------------------------------------------------- function vtkImageResliceMapper(publicAPI, model) { // Set our className model.classHierarchy.push('vtkImageResliceMapper'); publicAPI.computeBounds = () => { const image = publicAPI.getInputData(); if (publicAPI.getSlicePolyData()) { vtkBoundingBox.setBounds(model.bounds, publicAPI.getSlicePolyData().getBounds()); } else if (image) { vtkBoundingBox.setBounds(model.bounds, image.getBounds()); if (publicAPI.getSlicePlane()) { vtkBoundingBox.cutWithPlane(model.bounds, publicAPI.getSlicePlane().getOrigin(), publicAPI.getSlicePlane().getNormal()); } } else { vtkBoundingBox.reset(model.bounds); } }; } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- const defaultValues = initialValues => ({ slabThickness: 0.0, slabTrapezoidIntegration: 0, slabType: SlabTypes.MEAN, slicePlane: null, slicePolyData: null, ...initialValues }); // ---------------------------------------------------------------------------- function extend(publicAPI, model, initialValues = {}) { Object.assign(model, defaultValues(initialValues)); // Build VTK API vtkAbstractImageMapper.extend(publicAPI, model, initialValues); macro.setGet(publicAPI, model, ['slabThickness', 'slabTrapezoidIntegration', 'slabType', 'slicePlane', 'slicePolyData']); CoincidentTopologyHelper.implementCoincidentTopologyMethods(publicAPI, model); // Object methods vtkImageResliceMapper(publicAPI, model); } // ---------------------------------------------------------------------------- const newInstance = macro.newInstance(extend, 'vtkImageResliceMapper'); // ---------------------------------------------------------------------------- var vtkImageResliceMapper$1 = { newInstance, extend, ...staticOffsetAPI, ...otherStaticMethods }; export { vtkImageResliceMapper$1 as default, extend, newInstance };