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 | import type { Types } from '@cornerstonejs/core'; /** * Uses the current bounds of the 2D rectangle and extends it in the view axis by numSlices * It compares min and max of each IJK to find the view axis (for axial, zMin === zMax) and * then calculates the extended range. It will assume the slice is relative to the * current slice and will add the given slices to the current max of the boundingBox. * @param boundsIJK - [[iMin, iMax], [jMin, jMax], [kMin, kMax]] * @param slices - number of slices to project before and after * @returns extended bounds */ function extend2DBoundingBoxInViewAxis( boundsIJK: [Types.Point2, Types.Point2, Types.Point2], numSlicesToProject: number ): [Types.Point2, Types.Point2, Types.Point2] { // find which index in boundsIJK has the same first and last value const sliceNormalIndex = boundsIJK.findIndex(([min, max]) => min === max); if (sliceNormalIndex === -1) { throw new Error('3D bounding boxes not supported in an oblique plane'); } // get the index and subtract slices from the min and add to the max boundsIJK[sliceNormalIndex][0] -= numSlicesToProject; boundsIJK[sliceNormalIndex][1] += numSlicesToProject; return boundsIJK; } export default extend2DBoundingBoxInViewAxis; |