@cornerstonejs/core
Version:
Cornerstone3D Core
34 lines (33 loc) • 1.12 kB
JavaScript
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 = [
[],
[],
[],
[],
[],
[],
[],
[],
];
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;
}