diff --git a/packages/tools/src/tools/annotation/SplineROITool.ts b/packages/tools/src/tools/annotation/SplineROITool.ts index 4b8bae8cad..12f90a6da0 100644 --- a/packages/tools/src/tools/annotation/SplineROITool.ts +++ b/packages/tools/src/tools/annotation/SplineROITool.ts @@ -1,8 +1,8 @@ -import { utilities } from '@cornerstonejs/core'; import { getEnabledElement, eventTarget, triggerEvent, + utilities, } from '@cornerstonejs/core'; import type { Types } from '@cornerstonejs/core'; import { vec3 } from 'gl-matrix'; @@ -305,6 +305,16 @@ class SplineROITool extends ContourSegmentationBaseTool { const enabledElement = getEnabledElement(element); const { renderingEngine } = enabledElement; + // Decide whether there's at least one point is outside image + const image = this.getTargetIdImage( + this.getTargetId(enabledElement.viewport), + enabledElement.renderingEngine + ); + const { imageData, dimensions } = image; + this.isHandleOutsideImage = data.handles.points + .map((p) => utilities.transformWorldToIndex(imageData, p)) + .some((index) => !utilities.indexWithinDimensions(index, dimensions)); + if ( this.isHandleOutsideImage && this.configuration.preventHandleOutsideImage