Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 1x 1x 1300x 1300x 1300x 44x 41x 41x 41x 41x 1300x 3273x 1300x 1300x 1300x 1300x 836x 836x 836x 836x 836x 836x 836x 836x 836x 836x 836x 1300x 1300x 1x 1300x 1300x 1300x 1x | import macro from 'vtk.js/Sources/macros'; import vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray'; import { VtkDataTypes } from 'vtk.js/Sources/Common/Core/DataArray/Constants'; const { vtkErrorMacro } = macro; const INVALID_BOUNDS = [1, -1, 1, -1, 1, -1]; // ---------------------------------------------------------------------------- // vtkPoints methods // ---------------------------------------------------------------------------- function vtkPoints(publicAPI, model) { // Set our className model.classHierarchy.push('vtkPoints'); // Forwarding methods publicAPI.getNumberOfPoints = publicAPI.getNumberOfTuples; publicAPI.setNumberOfPoints = (nbPoints, dimension = 3) => { if (publicAPI.getNumberOfPoints() !== nbPoints) { model.size = nbPoints * dimension; model.values = macro.newTypedArray(model.dataType, model.size); publicAPI.setNumberOfComponents(dimension); publicAPI.modified(); } }; publicAPI.setPoint = (idx, ...xyz) => { publicAPI.setTuple(idx, xyz); }; publicAPI.getPoint = publicAPI.getTuple; publicAPI.findPoint = publicAPI.findTuple; publicAPI.insertNextPoint = (x, y, z) => publicAPI.insertNextTuple([x, y, z]); publicAPI.getBounds = () => { if (publicAPI.getNumberOfComponents() === 3) { const xRange = publicAPI.getRange(0); model.bounds[0] = xRange[0]; model.bounds[1] = xRange[1]; const yRange = publicAPI.getRange(1); model.bounds[2] = yRange[0]; model.bounds[3] = yRange[1]; const zRange = publicAPI.getRange(2); model.bounds[4] = zRange[0]; model.bounds[5] = zRange[1]; return model.bounds; } if (publicAPI.getNumberOfComponents() !== 2) { vtkErrorMacro(`getBounds called on an array with components of ${publicAPI.getNumberOfComponents()}`); return INVALID_BOUNDS; } const xRange = publicAPI.getRange(0); model.bounds[0] = xRange[0]; model.bounds[1] = xRange[1]; const yRange = publicAPI.getRange(1); model.bounds[2] = yRange[0]; model.bounds[3] = yRange[1]; model.bounds[4] = 0; model.bounds[5] = 0; return model.bounds; }; // Trigger the computation of bounds publicAPI.computeBounds = publicAPI.getBounds; // Initialize publicAPI.setNumberOfComponents( model.numberOfComponents < 2 ? 3 : model.numberOfComponents ); } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- const DEFAULT_VALUES = { empty: true, numberOfComponents: 3, dataType: VtkDataTypes.FLOAT, bounds: [1, -1, 1, -1, 1, -1], }; // ---------------------------------------------------------------------------- export function extend(publicAPI, model, initialValues = {}) { Object.assign(model, DEFAULT_VALUES, initialValues); vtkDataArray.extend(publicAPI, model, initialValues); vtkPoints(publicAPI, model); } // ---------------------------------------------------------------------------- export const newInstance = macro.newInstance(extend, 'vtkPoints'); // ---------------------------------------------------------------------------- export default { newInstance, extend }; |