@cornerstonejs/tools 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js +4 -4
- package/dist/cjs/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +3 -2
- package/dist/cjs/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/store/SynchronizerManager/Synchronizer.d.ts +1 -0
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js +17 -1
- package/dist/cjs/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/areViewportsCoplanar .d.ts +1 -1
- package/dist/cjs/synchronizers/callbacks/areViewportsCoplanar .js.map +1 -1
- package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.d.ts → imageSliceSyncCallback.d.ts} +1 -1
- package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.js → imageSliceSyncCallback.js} +8 -4
- package/dist/cjs/synchronizers/callbacks/{stackImageSyncCallback.js.map → imageSliceSyncCallback.js.map} +1 -1
- package/dist/cjs/synchronizers/index.d.ts +3 -2
- package/dist/cjs/synchronizers/index.js +5 -3
- package/dist/cjs/synchronizers/index.js.map +1 -1
- package/dist/cjs/synchronizers/synchronizers/{createStackImageSynchronizer.d.ts → createImageSliceSynchronizer.d.ts} +1 -1
- package/dist/cjs/synchronizers/synchronizers/createImageSliceSynchronizer.js +17 -0
- package/dist/cjs/synchronizers/synchronizers/createImageSliceSynchronizer.js.map +1 -0
- package/dist/cjs/synchronizers/synchronizers/index.d.ts +3 -2
- package/dist/cjs/synchronizers/synchronizers/index.js +5 -3
- package/dist/cjs/synchronizers/synchronizers/index.js.map +1 -1
- package/dist/cjs/tools/AdvancedMagnifyTool.d.ts +4 -0
- package/dist/cjs/tools/AdvancedMagnifyTool.js +8 -3
- package/dist/cjs/tools/AdvancedMagnifyTool.js.map +1 -1
- package/dist/cjs/tools/annotation/SplineROITool.d.ts +59 -0
- package/dist/cjs/tools/annotation/SplineROITool.js +709 -0
- package/dist/cjs/tools/annotation/SplineROITool.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/BSpline.d.ts +5 -0
- package/dist/cjs/tools/annotation/splines/BSpline.js +14 -0
- package/dist/cjs/tools/annotation/splines/BSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/CardinalSpline.d.ts +12 -0
- package/dist/cjs/tools/annotation/splines/CardinalSpline.js +38 -0
- package/dist/cjs/tools/annotation/splines/CardinalSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/CatmullRomSpline.d.ts +5 -0
- package/dist/cjs/tools/annotation/splines/CatmullRomSpline.js +12 -0
- package/dist/cjs/tools/annotation/splines/CatmullRomSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/CubicSpline.d.ts +13 -0
- package/dist/cjs/tools/annotation/splines/CubicSpline.js +192 -0
- package/dist/cjs/tools/annotation/splines/CubicSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/LinearSpline.d.ts +5 -0
- package/dist/cjs/tools/annotation/splines/LinearSpline.js +12 -0
- package/dist/cjs/tools/annotation/splines/LinearSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/QuadraticBezier.d.ts +6 -0
- package/dist/cjs/tools/annotation/splines/QuadraticBezier.js +20 -0
- package/dist/cjs/tools/annotation/splines/QuadraticBezier.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/QuadraticSpline.d.ts +9 -0
- package/dist/cjs/tools/annotation/splines/QuadraticSpline.js +18 -0
- package/dist/cjs/tools/annotation/splines/QuadraticSpline.js.map +1 -0
- package/dist/cjs/tools/annotation/splines/Spline.d.ts +49 -0
- package/dist/cjs/tools/annotation/splines/Spline.js +420 -0
- package/dist/cjs/tools/annotation/splines/Spline.js.map +1 -0
- package/dist/cjs/tools/index.d.ts +2 -1
- package/dist/cjs/tools/index.js +3 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/types/CardinalSplineProps.d.ts +5 -0
- package/dist/cjs/types/CardinalSplineProps.js +3 -0
- package/dist/cjs/types/CardinalSplineProps.js.map +1 -0
- package/dist/cjs/types/ClosestControlPoint.d.ts +4 -0
- package/dist/cjs/types/ClosestControlPoint.js +3 -0
- package/dist/cjs/types/ClosestControlPoint.js.map +1 -0
- package/dist/cjs/types/ClosestPoint.d.ts +5 -0
- package/dist/cjs/types/ClosestPoint.js +3 -0
- package/dist/cjs/types/ClosestPoint.js.map +1 -0
- package/dist/cjs/types/ClosestSplinePoint.d.ts +4 -0
- package/dist/cjs/types/ClosestSplinePoint.js +3 -0
- package/dist/cjs/types/ClosestSplinePoint.js.map +1 -0
- package/dist/cjs/types/ControlPointInfo.d.ts +5 -0
- package/dist/cjs/types/ControlPointInfo.js +3 -0
- package/dist/cjs/types/ControlPointInfo.js.map +1 -0
- package/dist/cjs/types/ISpline.d.ts +29 -0
- package/dist/cjs/types/ISpline.js +3 -0
- package/dist/cjs/types/ISpline.js.map +1 -0
- package/dist/cjs/types/SplineCurveSegment.d.ts +14 -0
- package/dist/cjs/types/SplineCurveSegment.js +3 -0
- package/dist/cjs/types/SplineCurveSegment.js.map +1 -0
- package/dist/cjs/types/SplineLineSegment.d.ts +10 -0
- package/dist/cjs/types/SplineLineSegment.js +3 -0
- package/dist/cjs/types/SplineLineSegment.js.map +1 -0
- package/dist/cjs/types/SplineProps.d.ts +4 -0
- package/dist/cjs/types/SplineProps.js +3 -0
- package/dist/cjs/types/SplineProps.js.map +1 -0
- package/dist/cjs/types/ToolSpecificAnnotationTypes.d.ts +34 -0
- package/dist/cjs/types/index.d.ts +10 -1
- package/dist/cjs/utilities/index.d.ts +2 -3
- package/dist/cjs/utilities/index.js +5 -5
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/math/aabb/distanceToPoint.d.ts +2 -0
- package/dist/cjs/utilities/math/aabb/distanceToPoint.js +11 -0
- package/dist/cjs/utilities/math/aabb/distanceToPoint.js.map +1 -0
- package/dist/cjs/utilities/math/aabb/distanceToPointSquared.d.ts +2 -0
- package/dist/cjs/utilities/math/aabb/distanceToPointSquared.js +24 -0
- package/dist/cjs/utilities/math/aabb/distanceToPointSquared.js.map +1 -0
- package/dist/cjs/utilities/math/aabb/index.d.ts +2 -0
- package/dist/cjs/utilities/math/aabb/index.js +11 -0
- package/dist/cjs/utilities/math/aabb/index.js.map +1 -0
- package/dist/cjs/utilities/math/index.d.ts +6 -5
- package/dist/cjs/utilities/math/index.js +11 -9
- package/dist/cjs/utilities/math/index.js.map +1 -1
- package/dist/cjs/utilities/math/line/distanceToPointSquared.js +5 -21
- package/dist/cjs/utilities/math/line/distanceToPointSquared.js.map +1 -1
- package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.d.ts +5 -0
- package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.js +56 -0
- package/dist/cjs/utilities/math/line/distanceToPointSquaredInfo.js.map +1 -0
- package/dist/cjs/utilities/math/line/index.d.ts +2 -1
- package/dist/cjs/utilities/math/line/index.js +3 -1
- package/dist/cjs/utilities/math/line/index.js.map +1 -1
- package/dist/cjs/utilities/math/point/distanceToPoint.js +5 -6
- package/dist/cjs/utilities/math/point/distanceToPoint.js.map +1 -1
- package/dist/cjs/utilities/math/point/distanceToPointSquared.d.ts +4 -0
- package/dist/cjs/utilities/math/point/distanceToPointSquared.js +12 -0
- package/dist/cjs/utilities/math/point/distanceToPointSquared.js.map +1 -0
- package/dist/cjs/utilities/math/point/index.d.ts +3 -2
- package/dist/cjs/utilities/math/point/index.js +7 -3
- package/dist/cjs/utilities/math/point/index.js.map +1 -1
- package/dist/cjs/utilities/math/point/mirror.d.ts +2 -0
- package/dist/cjs/utilities/math/point/mirror.js +11 -0
- package/dist/cjs/utilities/math/point/mirror.js.map +1 -0
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js +4 -4
- package/dist/esm/eventDispatchers/mouseEventHandlers/mouseDown.js.map +1 -1
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js +2 -1
- package/dist/esm/eventDispatchers/shared/getToolsWithActionsForMouseEvent.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/store/SynchronizerManager/Synchronizer.js +17 -1
- package/dist/esm/store/SynchronizerManager/Synchronizer.js.map +1 -1
- package/dist/esm/synchronizers/callbacks/areViewportsCoplanar .js.map +1 -1
- package/dist/esm/synchronizers/callbacks/{stackImageSyncCallback.js → imageSliceSyncCallback.js} +8 -4
- package/dist/esm/synchronizers/callbacks/imageSliceSyncCallback.js.map +1 -0
- package/dist/esm/synchronizers/index.js +3 -2
- package/dist/esm/synchronizers/index.js.map +1 -1
- package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.js +11 -0
- package/dist/esm/synchronizers/synchronizers/createImageSliceSynchronizer.js.map +1 -0
- package/dist/esm/synchronizers/synchronizers/index.js +3 -2
- package/dist/esm/synchronizers/synchronizers/index.js.map +1 -1
- package/dist/esm/tools/AdvancedMagnifyTool.js +8 -3
- package/dist/esm/tools/AdvancedMagnifyTool.js.map +1 -1
- package/dist/esm/tools/annotation/SplineROITool.js +703 -0
- package/dist/esm/tools/annotation/SplineROITool.js.map +1 -0
- package/dist/esm/tools/annotation/splines/BSpline.js +10 -0
- package/dist/esm/tools/annotation/splines/BSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/CardinalSpline.js +33 -0
- package/dist/esm/tools/annotation/splines/CardinalSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/CatmullRomSpline.js +8 -0
- package/dist/esm/tools/annotation/splines/CatmullRomSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/CubicSpline.js +165 -0
- package/dist/esm/tools/annotation/splines/CubicSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/LinearSpline.js +8 -0
- package/dist/esm/tools/annotation/splines/LinearSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/QuadraticBezier.js +16 -0
- package/dist/esm/tools/annotation/splines/QuadraticBezier.js.map +1 -0
- package/dist/esm/tools/annotation/splines/QuadraticSpline.js +14 -0
- package/dist/esm/tools/annotation/splines/QuadraticSpline.js.map +1 -0
- package/dist/esm/tools/annotation/splines/Spline.js +392 -0
- package/dist/esm/tools/annotation/splines/Spline.js.map +1 -0
- package/dist/esm/tools/index.js +2 -1
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/types/CardinalSplineProps.js +2 -0
- package/dist/esm/types/CardinalSplineProps.js.map +1 -0
- package/dist/esm/types/ClosestControlPoint.js +2 -0
- package/dist/esm/types/ClosestControlPoint.js.map +1 -0
- package/dist/esm/types/ClosestPoint.js +2 -0
- package/dist/esm/types/ClosestPoint.js.map +1 -0
- package/dist/esm/types/ClosestSplinePoint.js +2 -0
- package/dist/esm/types/ClosestSplinePoint.js.map +1 -0
- package/dist/esm/types/ControlPointInfo.js +2 -0
- package/dist/esm/types/ControlPointInfo.js.map +1 -0
- package/dist/esm/types/ISpline.js +2 -0
- package/dist/esm/types/ISpline.js.map +1 -0
- package/dist/esm/types/SplineCurveSegment.js +2 -0
- package/dist/esm/types/SplineCurveSegment.js.map +1 -0
- package/dist/esm/types/SplineLineSegment.js +2 -0
- package/dist/esm/types/SplineLineSegment.js.map +1 -0
- package/dist/esm/types/SplineProps.js +2 -0
- package/dist/esm/types/SplineProps.js.map +1 -0
- package/dist/esm/utilities/index.js +2 -3
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/math/aabb/distanceToPoint.js +5 -0
- package/dist/esm/utilities/math/aabb/distanceToPoint.js.map +1 -0
- package/dist/esm/utilities/math/aabb/distanceToPointSquared.js +21 -0
- package/dist/esm/utilities/math/aabb/distanceToPointSquared.js.map +1 -0
- package/dist/esm/utilities/math/aabb/index.js +3 -0
- package/dist/esm/utilities/math/aabb/index.js.map +1 -0
- package/dist/esm/utilities/math/index.js +6 -5
- package/dist/esm/utilities/math/index.js.map +1 -1
- package/dist/esm/utilities/math/line/distanceToPointSquared.js +2 -21
- package/dist/esm/utilities/math/line/distanceToPointSquared.js.map +1 -1
- package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js +30 -0
- package/dist/esm/utilities/math/line/distanceToPointSquaredInfo.js.map +1 -0
- package/dist/esm/utilities/math/line/index.js +2 -1
- package/dist/esm/utilities/math/line/index.js.map +1 -1
- package/dist/esm/utilities/math/point/distanceToPoint.js +2 -6
- package/dist/esm/utilities/math/point/distanceToPoint.js.map +1 -1
- package/dist/esm/utilities/math/point/distanceToPointSquared.js +9 -0
- package/dist/esm/utilities/math/point/distanceToPointSquared.js.map +1 -0
- package/dist/esm/utilities/math/point/index.js +3 -2
- package/dist/esm/utilities/math/point/index.js.map +1 -1
- package/dist/esm/utilities/math/point/mirror.js +8 -0
- package/dist/esm/utilities/math/point/mirror.js.map +1 -0
- package/dist/types/eventDispatchers/mouseEventHandlers/mouseDown.d.ts.map +1 -1
- package/dist/types/eventDispatchers/shared/getToolsWithActionsForMouseEvent.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/store/SynchronizerManager/Synchronizer.d.ts +1 -0
- package/dist/types/store/SynchronizerManager/Synchronizer.d.ts.map +1 -1
- package/dist/types/synchronizers/callbacks/areViewportsCoplanar .d.ts +1 -1
- package/dist/types/synchronizers/callbacks/areViewportsCoplanar .d.ts.map +1 -1
- package/dist/types/synchronizers/callbacks/{stackImageSyncCallback.d.ts → imageSliceSyncCallback.d.ts} +2 -2
- package/dist/types/synchronizers/callbacks/imageSliceSyncCallback.d.ts.map +1 -0
- package/dist/types/synchronizers/index.d.ts +3 -2
- package/dist/types/synchronizers/index.d.ts.map +1 -1
- package/dist/types/synchronizers/synchronizers/createImageSliceSynchronizer.d.ts +3 -0
- package/dist/types/synchronizers/synchronizers/createImageSliceSynchronizer.d.ts.map +1 -0
- package/dist/types/synchronizers/synchronizers/index.d.ts +3 -2
- package/dist/types/synchronizers/synchronizers/index.d.ts.map +1 -1
- package/dist/types/tools/AdvancedMagnifyTool.d.ts +4 -0
- package/dist/types/tools/AdvancedMagnifyTool.d.ts.map +1 -1
- package/dist/types/tools/annotation/SplineROITool.d.ts +60 -0
- package/dist/types/tools/annotation/SplineROITool.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/BSpline.d.ts +6 -0
- package/dist/types/tools/annotation/splines/BSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/CardinalSpline.d.ts +13 -0
- package/dist/types/tools/annotation/splines/CardinalSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/CatmullRomSpline.d.ts +6 -0
- package/dist/types/tools/annotation/splines/CatmullRomSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/CubicSpline.d.ts +14 -0
- package/dist/types/tools/annotation/splines/CubicSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/LinearSpline.d.ts +6 -0
- package/dist/types/tools/annotation/splines/LinearSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/QuadraticBezier.d.ts +7 -0
- package/dist/types/tools/annotation/splines/QuadraticBezier.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/QuadraticSpline.d.ts +10 -0
- package/dist/types/tools/annotation/splines/QuadraticSpline.d.ts.map +1 -0
- package/dist/types/tools/annotation/splines/Spline.d.ts +50 -0
- package/dist/types/tools/annotation/splines/Spline.d.ts.map +1 -0
- package/dist/types/tools/index.d.ts +2 -1
- package/dist/types/tools/index.d.ts.map +1 -1
- package/dist/types/types/CardinalSplineProps.d.ts +6 -0
- package/dist/types/types/CardinalSplineProps.d.ts.map +1 -0
- package/dist/types/types/ClosestControlPoint.d.ts +5 -0
- package/dist/types/types/ClosestControlPoint.d.ts.map +1 -0
- package/dist/types/types/ClosestPoint.d.ts +6 -0
- package/dist/types/types/ClosestPoint.d.ts.map +1 -0
- package/dist/types/types/ClosestSplinePoint.d.ts +5 -0
- package/dist/types/types/ClosestSplinePoint.d.ts.map +1 -0
- package/dist/types/types/ControlPointInfo.d.ts +6 -0
- package/dist/types/types/ControlPointInfo.d.ts.map +1 -0
- package/dist/types/types/ISpline.d.ts +30 -0
- package/dist/types/types/ISpline.d.ts.map +1 -0
- package/dist/types/types/SplineCurveSegment.d.ts +15 -0
- package/dist/types/types/SplineCurveSegment.d.ts.map +1 -0
- package/dist/types/types/SplineLineSegment.d.ts +11 -0
- package/dist/types/types/SplineLineSegment.d.ts.map +1 -0
- package/dist/types/types/SplineProps.d.ts +5 -0
- package/dist/types/types/SplineProps.d.ts.map +1 -0
- package/dist/types/types/ToolSpecificAnnotationTypes.d.ts +34 -0
- package/dist/types/types/ToolSpecificAnnotationTypes.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +10 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utilities/index.d.ts +2 -3
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/math/aabb/distanceToPoint.d.ts +3 -0
- package/dist/types/utilities/math/aabb/distanceToPoint.d.ts.map +1 -0
- package/dist/types/utilities/math/aabb/distanceToPointSquared.d.ts +3 -0
- package/dist/types/utilities/math/aabb/distanceToPointSquared.d.ts.map +1 -0
- package/dist/types/utilities/math/aabb/index.d.ts +3 -0
- package/dist/types/utilities/math/aabb/index.d.ts.map +1 -0
- package/dist/types/utilities/math/index.d.ts +6 -5
- package/dist/types/utilities/math/index.d.ts.map +1 -1
- package/dist/types/utilities/math/line/distanceToPointSquared.d.ts.map +1 -1
- package/dist/types/utilities/math/line/distanceToPointSquaredInfo.d.ts +6 -0
- package/dist/types/utilities/math/line/distanceToPointSquaredInfo.d.ts.map +1 -0
- package/dist/types/utilities/math/line/index.d.ts +2 -1
- package/dist/types/utilities/math/line/index.d.ts.map +1 -1
- package/dist/types/utilities/math/point/distanceToPoint.d.ts.map +1 -1
- package/dist/types/utilities/math/point/distanceToPointSquared.d.ts +5 -0
- package/dist/types/utilities/math/point/distanceToPointSquared.d.ts.map +1 -0
- package/dist/types/utilities/math/point/index.d.ts +3 -2
- package/dist/types/utilities/math/point/index.d.ts.map +1 -1
- package/dist/types/utilities/math/point/mirror.d.ts +3 -0
- package/dist/types/utilities/math/point/mirror.d.ts.map +1 -0
- package/dist/umd/index.js +2 -1
- package/dist/umd/index.js.LICENSE.txt +6 -0
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/eventDispatchers/mouseEventHandlers/mouseDown.ts +8 -6
- package/src/eventDispatchers/shared/getToolsWithActionsForMouseEvent.ts +3 -2
- package/src/index.ts +2 -0
- package/src/store/SynchronizerManager/Synchronizer.ts +28 -3
- package/src/synchronizers/callbacks/areViewportsCoplanar .ts +2 -2
- package/src/synchronizers/callbacks/{stackImageSyncCallback.ts → imageSliceSyncCallback.ts} +16 -8
- package/src/synchronizers/index.ts +5 -1
- package/src/synchronizers/synchronizers/{createStackImageSynchronizer.ts → createImageSliceSynchronizer.ts} +8 -5
- package/src/synchronizers/synchronizers/index.ts +4 -1
- package/src/tools/AdvancedMagnifyTool.ts +8 -3
- package/src/tools/annotation/SplineROITool.ts +1151 -0
- package/src/tools/annotation/splines/BSpline.ts +22 -0
- package/src/tools/annotation/splines/CardinalSpline.ts +45 -0
- package/src/tools/annotation/splines/CatmullRomSpline.ts +19 -0
- package/src/tools/annotation/splines/CubicSpline.ts +288 -0
- package/src/tools/annotation/splines/LinearSpline.ts +20 -0
- package/src/tools/annotation/splines/QuadraticBezier.ts +20 -0
- package/src/tools/annotation/splines/QuadraticSpline.ts +25 -0
- package/src/tools/annotation/splines/Spline.ts +729 -0
- package/src/tools/index.ts +2 -0
- package/src/types/CardinalSplineProps.ts +11 -0
- package/src/types/ClosestControlPoint.ts +6 -0
- package/src/types/ClosestPoint.ts +8 -0
- package/src/types/ClosestSplinePoint.ts +6 -0
- package/src/types/ControlPointInfo.ts +8 -0
- package/src/types/ISpline.ts +164 -0
- package/src/types/SplineCurveSegment.ts +28 -0
- package/src/types/SplineLineSegment.ts +20 -0
- package/src/types/SplineProps.ts +15 -0
- package/src/types/ToolSpecificAnnotationTypes.ts +35 -0
- package/src/types/index.ts +21 -0
- package/src/utilities/index.ts +6 -2
- package/src/utilities/math/aabb/distanceToPoint.ts +20 -0
- package/src/utilities/math/aabb/distanceToPointSquared.ts +47 -0
- package/src/utilities/math/aabb/index.ts +2 -0
- package/src/utilities/math/index.ts +10 -8
- package/src/utilities/math/line/distanceToPointSquared.ts +3 -29
- package/src/utilities/math/line/distanceToPointSquaredInfo.ts +54 -0
- package/src/utilities/math/line/index.ts +7 -1
- package/src/utilities/math/point/distanceToPoint.ts +2 -10
- package/src/utilities/math/point/distanceToPointSquared.ts +21 -0
- package/src/utilities/math/point/index.ts +3 -3
- package/src/utilities/math/point/mirror.ts +21 -0
- package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js +0 -15
- package/dist/cjs/synchronizers/synchronizers/createStackImageSynchronizer.js.map +0 -1
- package/dist/esm/synchronizers/callbacks/stackImageSyncCallback.js.map +0 -1
- package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js +0 -9
- package/dist/esm/synchronizers/synchronizers/createStackImageSynchronizer.js.map +0 -1
- package/dist/types/synchronizers/callbacks/stackImageSyncCallback.d.ts.map +0 -1
- package/dist/types/synchronizers/synchronizers/createStackImageSynchronizer.d.ts +0 -3
- package/dist/types/synchronizers/synchronizers/createStackImageSynchronizer.d.ts.map +0 -1
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.Spline = exports.default = void 0;
|
|
27
|
+
const math = __importStar(require("../../../utilities/math"));
|
|
28
|
+
class Spline {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
this._controlPoints = [];
|
|
32
|
+
this._invalidated = false;
|
|
33
|
+
this._length = 0;
|
|
34
|
+
this._controlPoints = [];
|
|
35
|
+
this._resolution = (_a = props === null || props === void 0 ? void 0 : props.resolution) !== null && _a !== void 0 ? _a : 20;
|
|
36
|
+
this._closed = (_b = props === null || props === void 0 ? void 0 : props.closed) !== null && _b !== void 0 ? _b : false;
|
|
37
|
+
this._invalidated = true;
|
|
38
|
+
}
|
|
39
|
+
get controlPoints() {
|
|
40
|
+
return this._controlPoints;
|
|
41
|
+
}
|
|
42
|
+
get numControlPoints() {
|
|
43
|
+
return this._controlPoints.length;
|
|
44
|
+
}
|
|
45
|
+
get resolution() {
|
|
46
|
+
return this._resolution;
|
|
47
|
+
}
|
|
48
|
+
set resolution(resolution) {
|
|
49
|
+
if (this._resolution === resolution) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
this._resolution = resolution;
|
|
53
|
+
this.invalidated = true;
|
|
54
|
+
}
|
|
55
|
+
get closed() {
|
|
56
|
+
return this._closed;
|
|
57
|
+
}
|
|
58
|
+
set closed(closed) {
|
|
59
|
+
if (this._closed === closed) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this._closed = closed;
|
|
63
|
+
this.invalidated = true;
|
|
64
|
+
}
|
|
65
|
+
get aabb() {
|
|
66
|
+
this._update();
|
|
67
|
+
return this._aabb;
|
|
68
|
+
}
|
|
69
|
+
get length() {
|
|
70
|
+
this._update();
|
|
71
|
+
return this._length;
|
|
72
|
+
}
|
|
73
|
+
get invalidated() {
|
|
74
|
+
return this._invalidated;
|
|
75
|
+
}
|
|
76
|
+
set invalidated(invalidated) {
|
|
77
|
+
this._invalidated = invalidated;
|
|
78
|
+
}
|
|
79
|
+
hasTangentPoints() {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
addControlPoint(point) {
|
|
83
|
+
this._controlPoints.push([point[0], point[1]]);
|
|
84
|
+
this.invalidated = true;
|
|
85
|
+
}
|
|
86
|
+
addControlPoints(points) {
|
|
87
|
+
points.forEach((point) => this.addControlPoint(point));
|
|
88
|
+
}
|
|
89
|
+
addControlPointAtU(u) {
|
|
90
|
+
const lineSegment = this._getLineSegmentAt(u);
|
|
91
|
+
const { start: startPoint, end: endPoint } = lineSegment.points;
|
|
92
|
+
const curveSegmentIndex = Math.floor(u);
|
|
93
|
+
const curveSegment = this._curveSegments[curveSegmentIndex];
|
|
94
|
+
const t = u - Math.floor(curveSegmentIndex);
|
|
95
|
+
const controlPointPos = [
|
|
96
|
+
startPoint[0] + t * (endPoint[0] - startPoint[0]),
|
|
97
|
+
startPoint[1] + t * (endPoint[1] - startPoint[1]),
|
|
98
|
+
];
|
|
99
|
+
const insertIndex = this._controlPoints.indexOf(curveSegment.controlPoints.p1) + 1;
|
|
100
|
+
this._controlPoints.splice(insertIndex, 0, controlPointPos);
|
|
101
|
+
this.invalidated = true;
|
|
102
|
+
return {
|
|
103
|
+
index: insertIndex,
|
|
104
|
+
point: controlPointPos,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
deleteControlPointByIndex(index) {
|
|
108
|
+
const minControlPoints = this._closed ? 3 : 1;
|
|
109
|
+
const canDelete = index >= 0 &&
|
|
110
|
+
index < this._controlPoints.length &&
|
|
111
|
+
this._controlPoints.length > minControlPoints;
|
|
112
|
+
if (!canDelete) {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
this._controlPoints.splice(index, 1);
|
|
116
|
+
this.invalidated = true;
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
clearControlPoints() {
|
|
120
|
+
this._controlPoints = [];
|
|
121
|
+
this.invalidated = true;
|
|
122
|
+
}
|
|
123
|
+
setControlPoints(points) {
|
|
124
|
+
this.clearControlPoints();
|
|
125
|
+
this.addControlPoints(points);
|
|
126
|
+
}
|
|
127
|
+
updateControlPoint(index, newControlPoint) {
|
|
128
|
+
if (index < 0 || index >= this._controlPoints.length) {
|
|
129
|
+
throw new Error('Index out of bounds');
|
|
130
|
+
}
|
|
131
|
+
this._controlPoints[index] = [...newControlPoint];
|
|
132
|
+
this.invalidated = true;
|
|
133
|
+
}
|
|
134
|
+
getControlPoints() {
|
|
135
|
+
return this._controlPoints.map((controlPoint) => [
|
|
136
|
+
controlPoint[0],
|
|
137
|
+
controlPoint[1],
|
|
138
|
+
]);
|
|
139
|
+
}
|
|
140
|
+
getClosestControlPoint(point) {
|
|
141
|
+
const controlPoints = this._controlPoints;
|
|
142
|
+
let minSquaredDist = Infinity;
|
|
143
|
+
let closestPointIndex = -1;
|
|
144
|
+
for (let i = 0, len = controlPoints.length; i < len; i++) {
|
|
145
|
+
const controlPoint = controlPoints[i];
|
|
146
|
+
const dx = point[0] - controlPoint[0];
|
|
147
|
+
const dy = point[1] - controlPoint[1];
|
|
148
|
+
const squaredDist = dx * dx + dy * dy;
|
|
149
|
+
if (squaredDist < minSquaredDist) {
|
|
150
|
+
minSquaredDist = squaredDist;
|
|
151
|
+
closestPointIndex = i;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
index: closestPointIndex,
|
|
156
|
+
point: closestPointIndex === -1
|
|
157
|
+
? undefined
|
|
158
|
+
: [...controlPoints[closestPointIndex]],
|
|
159
|
+
distance: Math.sqrt(minSquaredDist),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
getClosestControlPointWithinDistance(point, maxDist) {
|
|
163
|
+
const closestControlPoint = this.getClosestControlPoint(point);
|
|
164
|
+
return closestControlPoint.distance <= maxDist
|
|
165
|
+
? closestControlPoint
|
|
166
|
+
: undefined;
|
|
167
|
+
}
|
|
168
|
+
getClosestPoint(point) {
|
|
169
|
+
this._update();
|
|
170
|
+
const curveSegmentsDistInfo = this._getCurveSegmmentsDistanceSquaredInfo(point);
|
|
171
|
+
if (!curveSegmentsDistInfo.length) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
curveSegmentsDistInfo.sort((csA, csB) => csA.distanceSquared - csB.distanceSquared);
|
|
175
|
+
let closestPoint;
|
|
176
|
+
let closestPointCurveSegmentIndex = -1;
|
|
177
|
+
let minDistSquared = Infinity;
|
|
178
|
+
let minDistCurveSegment;
|
|
179
|
+
let minDistLineSegment;
|
|
180
|
+
for (let i = 0; i < curveSegmentsDistInfo.length; i++) {
|
|
181
|
+
const curveSegmentDistInfo = curveSegmentsDistInfo[i];
|
|
182
|
+
if (curveSegmentDistInfo.distanceSquared > minDistSquared) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const { curveSegmentIndex, curveSegment } = curveSegmentDistInfo;
|
|
186
|
+
const { lineSegments } = curveSegment;
|
|
187
|
+
for (let j = 0; j < lineSegments.length; j++) {
|
|
188
|
+
const lineSegment = lineSegments[j];
|
|
189
|
+
const { point: lineSegPoint, distanceSquared: lineSegDistSquared } = math.lineSegment.distanceToPointSquaredInfo(lineSegment.points.start, lineSegment.points.end, point);
|
|
190
|
+
if (lineSegDistSquared < minDistSquared) {
|
|
191
|
+
minDistLineSegment = lineSegment;
|
|
192
|
+
closestPointCurveSegmentIndex = curveSegmentIndex;
|
|
193
|
+
minDistCurveSegment = curveSegmentDistInfo.curveSegment;
|
|
194
|
+
closestPoint = lineSegPoint;
|
|
195
|
+
minDistSquared = lineSegDistSquared;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const curveSegmentLengthToPoint = minDistLineSegment.previousLineSegmentsLength +
|
|
200
|
+
math.point.distanceToPoint(minDistLineSegment.points.start, closestPoint);
|
|
201
|
+
const t = curveSegmentLengthToPoint / minDistCurveSegment.length;
|
|
202
|
+
const u = closestPointCurveSegmentIndex + t;
|
|
203
|
+
return {
|
|
204
|
+
point: closestPoint,
|
|
205
|
+
uValue: u,
|
|
206
|
+
distance: Math.sqrt(minDistSquared),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
getClosestPointOnControlPointLines(point) {
|
|
210
|
+
const linePoints = [...this._controlPoints];
|
|
211
|
+
if (this._closed) {
|
|
212
|
+
linePoints.push(this._controlPoints[0]);
|
|
213
|
+
}
|
|
214
|
+
if (!linePoints.length) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
let closestPoint;
|
|
218
|
+
let minDistSquared = Infinity;
|
|
219
|
+
let startPoint = linePoints[0];
|
|
220
|
+
for (let i = 1, len = linePoints.length; i < len; i++) {
|
|
221
|
+
const endPoint = linePoints[i];
|
|
222
|
+
const { point: lineSegPoint, distanceSquared: lineSegDistSquared } = math.lineSegment.distanceToPointSquaredInfo(startPoint, endPoint, point);
|
|
223
|
+
if (lineSegDistSquared < minDistSquared) {
|
|
224
|
+
closestPoint = lineSegPoint;
|
|
225
|
+
minDistSquared = lineSegDistSquared;
|
|
226
|
+
}
|
|
227
|
+
startPoint = endPoint;
|
|
228
|
+
}
|
|
229
|
+
return {
|
|
230
|
+
point: closestPoint,
|
|
231
|
+
distance: Math.sqrt(minDistSquared),
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
getPolylinePoints() {
|
|
235
|
+
this._update();
|
|
236
|
+
return this._convertCurveSegmentsToPolyline(this._curveSegments);
|
|
237
|
+
}
|
|
238
|
+
getPreviewPolylinePoints(controlPointPreview, closeDistance) {
|
|
239
|
+
if (this._closed) {
|
|
240
|
+
return [];
|
|
241
|
+
}
|
|
242
|
+
this._update();
|
|
243
|
+
const closestControlPoint = this.getClosestControlPointWithinDistance(controlPointPreview, closeDistance);
|
|
244
|
+
const closeSpline = (closestControlPoint === null || closestControlPoint === void 0 ? void 0 : closestControlPoint.index) === 0;
|
|
245
|
+
const previewCurveSegments = this.getPreviewCurveSegments(controlPointPreview, closeSpline);
|
|
246
|
+
return (previewCurveSegments === null || previewCurveSegments === void 0 ? void 0 : previewCurveSegments.length)
|
|
247
|
+
? this._convertCurveSegmentsToPolyline(previewCurveSegments)
|
|
248
|
+
: [];
|
|
249
|
+
}
|
|
250
|
+
isPointNearCurve(point, maxDist) {
|
|
251
|
+
this._update();
|
|
252
|
+
const curveSegments = this._getCurveSegmmentsWithinDistance(point, maxDist);
|
|
253
|
+
const maxDistSquared = maxDist * maxDist;
|
|
254
|
+
for (let i = 0; i < curveSegments.length; i++) {
|
|
255
|
+
const { lineSegments } = curveSegments[i];
|
|
256
|
+
for (let j = 0; j < lineSegments.length; j++) {
|
|
257
|
+
const lineSegment = lineSegments[j];
|
|
258
|
+
const lineDistSquared = math.lineSegment.distanceToPointSquared(lineSegment.points.start, lineSegment.points.end, point);
|
|
259
|
+
if (lineDistSquared <= maxDistSquared) {
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
containsPoint(point) {
|
|
267
|
+
this._update();
|
|
268
|
+
const controlPoints = this._controlPoints;
|
|
269
|
+
if (controlPoints.length < 3) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
const curveSegments = [...this._curveSegments];
|
|
273
|
+
const closingCurveSegment = this._getClosingCurveSegmentWithStraightLineSegment();
|
|
274
|
+
if (closingCurveSegment) {
|
|
275
|
+
curveSegments.push(closingCurveSegment);
|
|
276
|
+
}
|
|
277
|
+
let numIntersections = 0;
|
|
278
|
+
for (let i = 0; i < curveSegments.length; i++) {
|
|
279
|
+
const curveSegment = curveSegments[i];
|
|
280
|
+
const { aabb: curveSegAABB } = curveSegment;
|
|
281
|
+
const mayIntersectCurveSegment = point[0] <= curveSegAABB.maxX &&
|
|
282
|
+
point[1] >= curveSegAABB.minY &&
|
|
283
|
+
point[1] < curveSegAABB.maxY;
|
|
284
|
+
if (!mayIntersectCurveSegment) {
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
const { lineSegments } = curveSegment;
|
|
288
|
+
for (let i = 0; i < lineSegments.length; i++) {
|
|
289
|
+
const lineSegment = lineSegments[i];
|
|
290
|
+
const { aabb: lineSegmentAABB } = lineSegment;
|
|
291
|
+
const mayIntersectLineSegment = point[0] <= lineSegmentAABB.maxX &&
|
|
292
|
+
point[1] >= lineSegmentAABB.minY &&
|
|
293
|
+
point[1] < lineSegmentAABB.maxY;
|
|
294
|
+
if (mayIntersectLineSegment) {
|
|
295
|
+
const { start: p1, end: p2 } = lineSegment.points;
|
|
296
|
+
const isVerticalLine = p1[0] === p2[0];
|
|
297
|
+
const xIntersection = ((point[1] - p1[1]) * (p2[0] - p1[0])) / (p2[1] - p1[1]) + p1[0];
|
|
298
|
+
numIntersections +=
|
|
299
|
+
isVerticalLine || point[0] <= xIntersection ? 1 : 0;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return numIntersections % 2 === 1;
|
|
304
|
+
}
|
|
305
|
+
_update() {
|
|
306
|
+
if (!this._invalidated) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const curveSegments = this.getSplineCurves();
|
|
310
|
+
let length = 0;
|
|
311
|
+
let minX = Infinity;
|
|
312
|
+
let minY = Infinity;
|
|
313
|
+
let maxX = -Infinity;
|
|
314
|
+
let maxY = -Infinity;
|
|
315
|
+
for (let i = 0, len = curveSegments.length; i < len; i++) {
|
|
316
|
+
const { aabb: curveSegAABB, length: curveSegLength } = curveSegments[i];
|
|
317
|
+
minX = minX <= curveSegAABB.minX ? minX : curveSegAABB.minX;
|
|
318
|
+
minY = minY <= curveSegAABB.minY ? minY : curveSegAABB.minY;
|
|
319
|
+
maxX = maxX >= curveSegAABB.maxX ? maxX : curveSegAABB.maxX;
|
|
320
|
+
maxY = maxY >= curveSegAABB.maxY ? maxY : curveSegAABB.maxY;
|
|
321
|
+
length += curveSegLength;
|
|
322
|
+
}
|
|
323
|
+
this._curveSegments = curveSegments;
|
|
324
|
+
this._aabb = { minX, minY, maxX, maxY };
|
|
325
|
+
this._length = length;
|
|
326
|
+
this._invalidated = false;
|
|
327
|
+
}
|
|
328
|
+
_convertCurveSegmentsToPolyline(curveSegments) {
|
|
329
|
+
this._update();
|
|
330
|
+
const polylinePoints = [];
|
|
331
|
+
curveSegments.forEach(({ lineSegments }, curveSegIndex) => {
|
|
332
|
+
lineSegments.forEach((lineSegment, lineSegIndex) => {
|
|
333
|
+
if (curveSegIndex === 0 && lineSegIndex === 0) {
|
|
334
|
+
polylinePoints.push([...lineSegment.points.start]);
|
|
335
|
+
}
|
|
336
|
+
polylinePoints.push([...lineSegment.points.end]);
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
return polylinePoints;
|
|
340
|
+
}
|
|
341
|
+
_getCurveSegmmentsDistanceSquaredInfo(point) {
|
|
342
|
+
this._update();
|
|
343
|
+
const curveSegmentsDistanceSquared = [];
|
|
344
|
+
const { _curveSegments: curveSegments } = this;
|
|
345
|
+
for (let i = 0; i < curveSegments.length; i++) {
|
|
346
|
+
const curveSegment = curveSegments[i];
|
|
347
|
+
const distanceSquared = math.aabb.distanceToPointSquared(curveSegment.aabb, point);
|
|
348
|
+
curveSegmentsDistanceSquared.push({
|
|
349
|
+
curveSegmentIndex: i,
|
|
350
|
+
curveSegment,
|
|
351
|
+
distanceSquared,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
return curveSegmentsDistanceSquared;
|
|
355
|
+
}
|
|
356
|
+
_getCurveSegmmentsWithinDistance(point, maxDist) {
|
|
357
|
+
this._update();
|
|
358
|
+
const maxDistSquared = maxDist * maxDist;
|
|
359
|
+
if (math.aabb.distanceToPointSquared(this.aabb, point) > maxDistSquared) {
|
|
360
|
+
return [];
|
|
361
|
+
}
|
|
362
|
+
const curveSegmentsDistance = this._getCurveSegmmentsDistanceSquaredInfo(point);
|
|
363
|
+
const curveSegmentsWithinRange = [];
|
|
364
|
+
for (let i = 0, len = curveSegmentsDistance.length; i < len; i++) {
|
|
365
|
+
const { curveSegment, distanceSquared: curveSegmentDistSquared } = curveSegmentsDistance[i];
|
|
366
|
+
if (curveSegmentDistSquared <= maxDistSquared) {
|
|
367
|
+
curveSegmentsWithinRange.push(curveSegment);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
return curveSegmentsWithinRange;
|
|
371
|
+
}
|
|
372
|
+
_getLineSegmentAt(u) {
|
|
373
|
+
this._update();
|
|
374
|
+
const curveSegmentIndex = Math.floor(u);
|
|
375
|
+
const t = u - curveSegmentIndex;
|
|
376
|
+
const curveSegment = this._curveSegments[curveSegmentIndex];
|
|
377
|
+
const { lineSegments } = curveSegment;
|
|
378
|
+
const pointLength = curveSegment.length * t;
|
|
379
|
+
for (let i = 0; i < lineSegments.length; i++) {
|
|
380
|
+
const lineSegment = lineSegments[i];
|
|
381
|
+
const lengthEnd = lineSegment.previousLineSegmentsLength + lineSegment.length;
|
|
382
|
+
if (pointLength >= lineSegment.previousLineSegmentsLength &&
|
|
383
|
+
pointLength <= lengthEnd) {
|
|
384
|
+
return lineSegment;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
_getClosingCurveSegmentWithStraightLineSegment() {
|
|
389
|
+
if (this.closed) {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const controlPoints = this._controlPoints;
|
|
393
|
+
const startControlPoint = controlPoints[0];
|
|
394
|
+
const endControlPoint = controlPoints[controlPoints.length - 1];
|
|
395
|
+
const closingLineSegment = {
|
|
396
|
+
points: {
|
|
397
|
+
start: [...startControlPoint],
|
|
398
|
+
end: [...endControlPoint],
|
|
399
|
+
},
|
|
400
|
+
aabb: {
|
|
401
|
+
minX: Math.min(startControlPoint[0], endControlPoint[0]),
|
|
402
|
+
minY: Math.min(startControlPoint[1], endControlPoint[1]),
|
|
403
|
+
maxX: Math.max(startControlPoint[0], endControlPoint[0]),
|
|
404
|
+
maxY: Math.max(startControlPoint[1], endControlPoint[1]),
|
|
405
|
+
},
|
|
406
|
+
};
|
|
407
|
+
return {
|
|
408
|
+
aabb: {
|
|
409
|
+
minX: closingLineSegment.aabb.minX,
|
|
410
|
+
minY: closingLineSegment.aabb.minY,
|
|
411
|
+
maxX: closingLineSegment.aabb.maxX,
|
|
412
|
+
maxY: closingLineSegment.aabb.maxY,
|
|
413
|
+
},
|
|
414
|
+
lineSegments: [closingLineSegment],
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
exports.default = Spline;
|
|
419
|
+
exports.Spline = Spline;
|
|
420
|
+
//# sourceMappingURL=Spline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spline.js","sourceRoot":"","sources":["../../../../../src/tools/annotation/splines/Spline.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ import DragProbeTool from './annotation/DragProbeTool';
|
|
|
24
24
|
import RectangleROITool from './annotation/RectangleROITool';
|
|
25
25
|
import EllipticalROITool from './annotation/EllipticalROITool';
|
|
26
26
|
import CircleROITool from './annotation/CircleROITool';
|
|
27
|
+
import SplineROITool from './annotation/SplineROITool';
|
|
27
28
|
import PlanarFreehandROITool from './annotation/PlanarFreehandROITool';
|
|
28
29
|
import ArrowAnnotateTool from './annotation/ArrowAnnotateTool';
|
|
29
30
|
import AngleTool from './annotation/AngleTool';
|
|
@@ -38,4 +39,4 @@ import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartE
|
|
|
38
39
|
import BrushTool from './segmentation/BrushTool';
|
|
39
40
|
import PaintFillTool from './segmentation/PaintFillTool';
|
|
40
41
|
import OrientationMarkerTool from './OrientationMarkerTool';
|
|
41
|
-
export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, KeyImageTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, };
|
|
42
|
+
export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, ReferenceCursors, CrosshairsTool, ReferenceLinesTool, OverlayGridTool, SegmentationIntersectionTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, SplineROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, KeyImageTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, AdvancedMagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, OrientationMarkerTool, };
|
package/dist/cjs/tools/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.OrientationMarkerTool = exports.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.AdvancedMagnifyTool = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.KeyImageTool = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.SegmentationIntersectionTool = exports.OverlayGridTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.ReferenceCursors = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = void 0;
|
|
6
|
+
exports.OrientationMarkerTool = exports.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.AdvancedMagnifyTool = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.KeyImageTool = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.SplineROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.SegmentationIntersectionTool = exports.OverlayGridTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.ReferenceCursors = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = void 0;
|
|
7
7
|
const base_1 = require("./base");
|
|
8
8
|
Object.defineProperty(exports, "BaseTool", { enumerable: true, get: function () { return base_1.BaseTool; } });
|
|
9
9
|
Object.defineProperty(exports, "AnnotationTool", { enumerable: true, get: function () { return base_1.AnnotationTool; } });
|
|
@@ -58,6 +58,8 @@ const EllipticalROITool_1 = __importDefault(require("./annotation/EllipticalROIT
|
|
|
58
58
|
exports.EllipticalROITool = EllipticalROITool_1.default;
|
|
59
59
|
const CircleROITool_1 = __importDefault(require("./annotation/CircleROITool"));
|
|
60
60
|
exports.CircleROITool = CircleROITool_1.default;
|
|
61
|
+
const SplineROITool_1 = __importDefault(require("./annotation/SplineROITool"));
|
|
62
|
+
exports.SplineROITool = SplineROITool_1.default;
|
|
61
63
|
const PlanarFreehandROITool_1 = __importDefault(require("./annotation/PlanarFreehandROITool"));
|
|
62
64
|
exports.PlanarFreehandROITool = PlanarFreehandROITool_1.default;
|
|
63
65
|
const ArrowAnnotateTool_1 = __importDefault(require("./annotation/ArrowAnnotateTool"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAyE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAyE;AAkDvE,yFAlDO,eAAQ,OAkDP;AACR,+FAnDiB,qBAAc,OAmDjB;AACd,sGApDiC,4BAAqB,OAoDjC;AAnDvB,wDAAgC;AAqD9B,kBArDK,iBAAO,CAqDL;AApDT,gFAAwD;AAqDtD,8BArDK,6BAAmB,CAqDL;AApDrB,wEAAgD;AAsD9C,0BAtDK,yBAAe,CAsDL;AArDjB,wEAAgD;AAsD9C,0BAtDK,yBAAe,CAsDL;AArDjB,0EAAkD;AAsDhD,2BAtDK,0BAAgB,CAsDL;AArDlB,oGAAwE;AAsDtE,oCAtDK,uCAAyB,CAsDL;AArD3B,0DAAkC;AAsDhC,mBAtDK,kBAAQ,CAsDL;AArDV,8FAAsE;AAsDpE,qCAtDK,oCAA0B,CAsDL;AArD5B,8EAAsD;AAsDpD,6BAtDK,4BAAkB,CAsDL;AArDpB,sEAA8C;AAwD5C,yBAxDK,wBAAc,CAwDL;AAvDhB,gEAAwC;AAgFtC,sBAhFK,qBAAW,CAgFL;AA/Eb,gFAAwD;AAgFtD,8BAhFK,6BAAmB,CAgFL;AA/ErB,8EAAsD;AAsDpD,6BAtDK,4BAAkB,CAsDL;AArDpB,wEAAgD;AAsD9C,0BAtDK,yBAAe,CAsDL;AArDjB,kGAA0E;AAsDxE,uCAtDK,sCAA4B,CAsDL;AArD9B,0EAAkD;AAgDhD,2BAhDK,0BAAgB,CAgDL;AA/ClB,8EAAkD;AA4EhD,yBA5EK,4BAAc,CA4EL;AA3EhB,0EAAkD;AA6EhD,2BA7EK,0BAAgB,CA6EL;AA1ElB,uFAA+D;AAiD7D,4BAjDK,2BAAiB,CAiDL;AAhDnB,yEAAiD;AAiD/C,qBAjDK,oBAAU,CAiDL;AAhDZ,uEAA+C;AAiD7C,oBAjDK,mBAAS,CAiDL;AAhDX,+EAAuD;AAgCrD,wBAhCK,uBAAa,CAgCL;AA/Bf,qFAA6D;AAgD3D,2BAhDK,0BAAgB,CAgDL;AA/ClB,uFAA+D;AAgD7D,4BAhDK,2BAAiB,CAgDL;AA/CnB,+EAAuD;AAgDrD,wBAhDK,uBAAa,CAgDL;AA/Cf,+EAAuD;AAgDrD,wBAhDK,uBAAa,CAgDL;AA/Cf,+FAAuE;AAgDrE,gCAhDK,+BAAqB,CAgDL;AA/CvB,uFAA+D;AAgD7D,4BAhDK,2BAAiB,CAgDL;AA/CnB,uEAA+C;AAgD7C,oBAhDK,mBAAS,CAgDL;AA/CX,+EAAuD;AAgDrD,wBAhDK,uBAAa,CAgDL;AA/Cf,6EAAqD;AAgDnD,uBAhDK,sBAAY,CAgDL;AA7Cd,qGAA6E;AA+C3E,kCA/CK,iCAAuB,CA+CL;AA5CzB,iGAAyE;AA8CvE,gCA9CK,+BAAqB,CA8CL;AA7CvB,2FAAmE;AA8CjE,6BA9CK,4BAAkB,CA8CL;AA7CpB,2FAAmE;AA8CjE,6BA9CK,4BAAkB,CA8CL;AA7CpB,yGAAiF;AA8C/E,oCA9CK,mCAAyB,CA8CL;AA7C3B,yHAAiG;AA8C/F,4CA9CK,2CAAiC,CA8CL;AA7CnC,yEAAiD;AA8C/C,oBA9CK,mBAAS,CA8CL;AA7CX,iFAAyD;AAiDvD,wBAjDK,uBAAa,CAiDL;AAhDf,oFAA4D;AAkD1D,gCAlDK,+BAAqB,CAkDL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardinalSplineProps.js","sourceRoot":"","sources":["../../../src/types/CardinalSplineProps.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClosestControlPoint.js","sourceRoot":"","sources":["../../../src/types/ClosestControlPoint.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClosestPoint.js","sourceRoot":"","sources":["../../../src/types/ClosestPoint.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClosestSplinePoint.js","sourceRoot":"","sources":["../../../src/types/ClosestSplinePoint.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlPointInfo.js","sourceRoot":"","sources":["../../../src/types/ControlPointInfo.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { ClosestPoint, ClosestControlPoint, ClosestSplinePoint, ControlPointInfo } from './';
|
|
3
|
+
export interface ISpline {
|
|
4
|
+
get numControlPoints(): number;
|
|
5
|
+
get resolution(): number;
|
|
6
|
+
set resolution(resolution: number);
|
|
7
|
+
get closed(): boolean;
|
|
8
|
+
set closed(closed: boolean);
|
|
9
|
+
get aabb(): Types.AABB2;
|
|
10
|
+
get length(): number;
|
|
11
|
+
get invalidated(): boolean;
|
|
12
|
+
hasTangentPoints(): boolean;
|
|
13
|
+
addControlPoint(point: Types.Point2): void;
|
|
14
|
+
addControlPoints(points: Types.Point2[]): void;
|
|
15
|
+
addControlPointAtU(u: number): ControlPointInfo;
|
|
16
|
+
deleteControlPointByIndex(index: number): boolean;
|
|
17
|
+
clearControlPoints(): void;
|
|
18
|
+
setControlPoints(points: Types.Point2[]): void;
|
|
19
|
+
updateControlPoint(index: number, newControlPoint: Types.Point2): void;
|
|
20
|
+
getControlPoints(): Types.Point2[];
|
|
21
|
+
getClosestControlPoint(point: Types.Point2): ClosestControlPoint;
|
|
22
|
+
getClosestControlPointWithinDistance(point: Types.Point2, range: number): ClosestControlPoint;
|
|
23
|
+
getClosestPoint(point: Types.Point2): ClosestSplinePoint;
|
|
24
|
+
getClosestPointOnControlPointLines(point: Types.Point2): ClosestPoint;
|
|
25
|
+
getPolylinePoints(): Types.Point2[];
|
|
26
|
+
getPreviewPolylinePoints(controlPointPreview: Types.Point2, closeDistance: number): Types.Point2[];
|
|
27
|
+
isPointNearCurve(point: Types.Point2, maxDist: number): boolean;
|
|
28
|
+
containsPoint(point: Types.Point2): boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ISpline.js","sourceRoot":"","sources":["../../../src/types/ISpline.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Types } from '@cornerstonejs/core';
|
|
2
|
+
import type { SplineLineSegment } from './SplineLineSegment';
|
|
3
|
+
export declare type SplineCurveSegment = {
|
|
4
|
+
controlPoints: {
|
|
5
|
+
p0: Types.Point2;
|
|
6
|
+
p1: Types.Point2;
|
|
7
|
+
p2: Types.Point2;
|
|
8
|
+
p3: Types.Point2;
|
|
9
|
+
};
|
|
10
|
+
aabb: Types.AABB2;
|
|
11
|
+
length: number;
|
|
12
|
+
previousCurveSegmentsLength: number;
|
|
13
|
+
lineSegments: SplineLineSegment[];
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SplineCurveSegment.js","sourceRoot":"","sources":["../../../src/types/SplineCurveSegment.ts"],"names":[],"mappings":""}
|