UNPKG

@kitware/vtk.js

Version:

Visualization Toolkit for the Web

50 lines (45 loc) 1.44 kB
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 };