49 lines
2.4 KiB
JavaScript
49 lines
2.4 KiB
JavaScript
updateOrientationMarkers = function(element, viewport) {
|
|
// Updates the orientation labels on the viewport
|
|
var enabledElement = cornerstone.getEnabledElement(element);
|
|
var imagePlane = cornerstoneTools.metaData.get('imagePlane', enabledElement.image.imageId);
|
|
|
|
if (!imagePlane || !imagePlane.rowCosines || !imagePlane.columnCosines) {
|
|
return;
|
|
}
|
|
|
|
var rowString = cornerstoneTools.orientation.getOrientationString(imagePlane.rowCosines);
|
|
var columnString = cornerstoneTools.orientation.getOrientationString(imagePlane.columnCosines);
|
|
var oppositeRowString = cornerstoneTools.orientation.invertOrientationString(rowString);
|
|
var oppositeColumnString = cornerstoneTools.orientation.invertOrientationString(columnString);
|
|
|
|
var markers = {
|
|
top: oppositeColumnString,
|
|
left: oppositeRowString,
|
|
};
|
|
|
|
// If any vertical or horizontal flips are applied, change the orientation strings ahead of
|
|
// the rotation applications
|
|
if (viewport.vflip) {
|
|
markers.top = cornerstoneTools.orientation.invertOrientationString(markers.top);
|
|
}
|
|
if (viewport.hflip) {
|
|
markers.left = cornerstoneTools.orientation.invertOrientationString(markers.left);
|
|
}
|
|
|
|
// Get the viewport orientation marker DOM elements
|
|
var viewportOrientationMarkers = $(element).siblings(".viewportOrientationMarkers");
|
|
var topMarker = viewportOrientationMarkers.find('.topMid');
|
|
var leftMarker = viewportOrientationMarkers.find('.leftMid');
|
|
|
|
// Swap the labels accordingly if the viewport has been rotated
|
|
// This could be done in a more complex way for intermediate rotation values (e.g. 45 degrees)
|
|
if (viewport.rotation === 90 || viewport.rotation === -270) {
|
|
topMarker.text(markers.left);
|
|
leftMarker.text(cornerstoneTools.orientation.invertOrientationString(markers.top));
|
|
} else if (viewport.rotation === -90 || viewport.rotation === 270) {
|
|
topMarker.text(cornerstoneTools.orientation.invertOrientationString(markers.left));
|
|
leftMarker.text(markers.top);
|
|
} else if (viewport.rotation === 180 || viewport.rotation === -180) {
|
|
topMarker.text(cornerstoneTools.orientation.invertOrientationString(markers.top));
|
|
leftMarker.text(cornerstoneTools.orientation.invertOrientationString(markers.left));
|
|
} else {
|
|
topMarker.text(markers.top);
|
|
leftMarker.text(markers.left);
|
|
}
|
|
}; |