@kitware/vtk.js
Version:
Visualization Toolkit for the Web
50 lines (45 loc) • 1.44 kB
JavaScript
import vtkImageData from '../../../Common/DataModel/ImageData.js';
import vtkFieldDataSerializer from './FieldDataSerializer.js';
const CLASS_NAME = 'vtkImageData';
function canSerialize(obj) {
return obj && obj.isA && obj.isA(CLASS_NAME);
}
function canDeserialize(obj) {
return obj && obj.vtkClass && obj.vtkClass === CLASS_NAME;
}
function serialize(obj, arrayHandler) {
const output = Object.assign(obj.get('direction', 'spacing', 'origin', 'extent'), {
vtkClass: CLASS_NAME
});
// Handle fields
output.pointData = vtkFieldDataSerializer.serialize(obj.getPointData(), arrayHandler);
output.cellData = vtkFieldDataSerializer.serialize(obj.getCellData(), arrayHandler);
output.fieldData = vtkFieldDataSerializer.serialize(obj.getFieldData(), arrayHandler);
return output;
}
function deserialize(obj, arrayHandler) {
const {
direction,
spacing,
origin,
extent
} = obj;
const ds = vtkImageData.newInstance({
direction,
spacing,
origin,
extent
});
// Handle fields
ds.setPointData(vtkFieldDataSerializer.deserialize(obj.pointData, arrayHandler));
ds.setCellData(vtkFieldDataSerializer.deserialize(obj.cellData, arrayHandler));
ds.setFieldData(vtkFieldDataSerializer.deserialize(obj.fieldData, arrayHandler));
return ds;
}
var vtkImageDataSerializer = {
canSerialize,
serialize,
canDeserialize,
deserialize
};
export { vtkImageDataSerializer as default };