WIP reorganization
This commit is contained in:
1 parent
6706dfe634
commit
054e37dfb7
266 files changed
+98
-620
No files matched your search
+42
@@ -0,0 +1,42 @@
|
||||
const swapAttribute = (a, b, attribute) => {
|
||||
const originalA = a[attribute];
|
||||
const originalB = b[attribute];
|
||||
a[attribute] = originalB;
|
||||
b[attribute] = originalA;
|
||||
};
|
||||
|
||||
const swapHandles = (a, b) => {
|
||||
swapAttribute(a, b, 'x');
|
||||
swapAttribute(a, b, 'y');
|
||||
swapAttribute(a, b, 'moving');
|
||||
swapAttribute(a, b, 'hover');
|
||||
swapAttribute(a, b, 'active');
|
||||
swapAttribute(a, b, 'selected');
|
||||
};
|
||||
|
||||
function invertHandles(eventData, measurementData, handle) {
|
||||
const { rowPixelSpacing, columnPixelSpacing } = eventData.image;
|
||||
const { handles } = measurementData;
|
||||
const { start, end, perpendicularStart, perpendicularEnd } = handles;
|
||||
|
||||
// Calculate the long axis length
|
||||
const dx = (start.x - end.x) * (columnPixelSpacing || 1);
|
||||
const dy = (start.y - end.y) * (rowPixelSpacing || 1);
|
||||
const length = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
// Calculate the short axis length
|
||||
const wx = (perpendicularStart.x - perpendicularEnd.x) * (columnPixelSpacing || 1);
|
||||
const wy = (perpendicularStart.y - perpendicularEnd.y) * (rowPixelSpacing || 1);
|
||||
const width = Math.sqrt(wx * wx + wy * wy) || 0;
|
||||
|
||||
if (width > length) {
|
||||
swapHandles(start, end);
|
||||
swapHandles(start, perpendicularStart);
|
||||
swapHandles(end, perpendicularEnd);
|
||||
return Object.values(handles).find(h => h.moving === true);
|
||||
}
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
||||
export default invertHandles;
|
||||
Reference in new issue
Block a user