@kitware/vtk.js
Version:
Visualization Toolkit for the Web
78 lines (63 loc) • 2.62 kB
JavaScript
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 };