34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
import { cornerstone, cornerstoneMath, cornerstoneTools } from 'meteor/ohif:cornerstone';
|
|
import { distanceThreshold } from './definitions';
|
|
|
|
const pointNearPerpendicular = (element, handles, coords) => {
|
|
const lineSegment = {
|
|
start: cornerstone.pixelToCanvas(element, handles.perpendicularStart),
|
|
end: cornerstone.pixelToCanvas(element, handles.perpendicularEnd)
|
|
};
|
|
|
|
const distanceToPoint = cornerstoneMath.lineSegment.distanceToPoint(lineSegment, coords);
|
|
|
|
return (distanceToPoint < distanceThreshold);
|
|
};
|
|
|
|
export default function(element, data, coords) {
|
|
const { handles } = data;
|
|
const lineSegment = {
|
|
start: cornerstone.pixelToCanvas(element, handles.start),
|
|
end: cornerstone.pixelToCanvas(element, handles.end)
|
|
};
|
|
|
|
const distanceToPoint = cornerstoneMath.lineSegment.distanceToPoint(lineSegment, coords);
|
|
|
|
if (cornerstoneTools.pointInsideBoundingBox(handles.textBox, coords)) {
|
|
return true;
|
|
}
|
|
|
|
if (pointNearPerpendicular(element, handles, coords)) {
|
|
return true;
|
|
}
|
|
|
|
return (distanceToPoint < distanceThreshold);
|
|
}
|