@kitware/vtk.js
Version:
Visualization Toolkit for the Web
80 lines (65 loc) • 2.66 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.getBounds = () => {
let bds = [...vtkBoundingBox.INIT_BOUNDS];
const image = publicAPI.getInputData();
if (publicAPI.getSlicePolyData()) {
bds = publicAPI.getSlicePolyData().getBounds();
} else if (image) {
bds = image.getBounds();
if (publicAPI.getSlicePlane()) {
vtkBoundingBox.cutWithPlane(bds, publicAPI.getSlicePlane().getOrigin(), publicAPI.getSlicePlane().getNormal());
}
}
return bds;
};
}
// ----------------------------------------------------------------------------
// Object factory
// ----------------------------------------------------------------------------
const defaultValues = initialValues => ({
slabThickness: 0.0,
slabTrapezoidIntegration: 0,
slabType: SlabTypes.MEAN,
slicePlane: null,
slicePolyData: null,
updatedExtents: [],
...initialValues
});
// ----------------------------------------------------------------------------
function extend(publicAPI, model) {
let initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
Object.assign(model, defaultValues(initialValues));
// Build VTK API
vtkAbstractImageMapper.extend(publicAPI, model, initialValues);
macro.setGet(publicAPI, model, ['slabThickness', 'slabTrapezoidIntegration', 'slabType', 'slicePlane', 'slicePolyData', 'updatedExtents']);
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 };