UNPKG

@cornerstonejs/core

Version:
34 lines (33 loc) 1.12 kB
import { vec3 } from 'gl-matrix'; export function rotateToViewCoordinates(imageData, viewPlaneNormal, viewUp) { const viewRight = vec3.cross(vec3.create(), viewPlaneNormal, viewUp); vec3.normalize(viewRight, viewRight); const spatialExtent = imageData.getSpatialExtent(); const xMin = spatialExtent[0]; const xMax = spatialExtent[1]; const yMin = spatialExtent[2]; const yMax = spatialExtent[3]; const zMin = spatialExtent[4]; const zMax = spatialExtent[5]; const corners = [ [xMin, yMin, zMin], [xMax, yMin, zMin], [xMin, yMax, zMin], [xMax, yMax, zMin], [xMin, yMin, zMax], [xMax, yMin, zMax], [xMin, yMax, zMax], [xMax, yMax, zMax], ]; const viewCorners = corners.map((corner) => { const worldPoint = [0, 0, 0]; imageData.indexToWorld(corner, worldPoint); const viewPoint = [ vec3.dot(worldPoint, viewRight), vec3.dot(worldPoint, viewUp), vec3.dot(worldPoint, viewPlaneNormal), ]; return viewPoint; }); return viewCorners; }