@cornerstonejs/tools 1.13.1 → 1.13.3

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.
Files changed (127) hide show
  1. package/dist/cjs/drawingSvg/drawCircle.js +9 -5
  2. package/dist/cjs/drawingSvg/drawCircle.js.map +1 -1
  3. package/dist/cjs/drawingSvg/drawEllipse.js +4 -4
  4. package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
  5. package/dist/cjs/drawingSvg/drawHandles.js +4 -4
  6. package/dist/cjs/drawingSvg/drawHandles.js.map +1 -1
  7. package/dist/cjs/drawingSvg/drawLine.js +4 -4
  8. package/dist/cjs/drawingSvg/drawLine.js.map +1 -1
  9. package/dist/cjs/drawingSvg/drawPolyline.js +4 -4
  10. package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
  11. package/dist/cjs/drawingSvg/drawRect.js +4 -4
  12. package/dist/cjs/drawingSvg/drawRect.js.map +1 -1
  13. package/dist/cjs/drawingSvg/drawTextBox.js +4 -4
  14. package/dist/cjs/drawingSvg/drawTextBox.js.map +1 -1
  15. package/dist/cjs/drawingSvg/index.d.ts +3 -1
  16. package/dist/cjs/drawingSvg/index.js +5 -1
  17. package/dist/cjs/drawingSvg/index.js.map +1 -1
  18. package/dist/cjs/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
  19. package/dist/cjs/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +5 -5
  20. package/dist/cjs/drawingSvg/setAttributesIfNecessary.js.map +1 -0
  21. package/dist/cjs/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
  22. package/dist/cjs/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +5 -5
  23. package/dist/cjs/drawingSvg/setNewAttributesIfValid.js.map +1 -0
  24. package/dist/cjs/index.d.ts +2 -2
  25. package/dist/cjs/index.js +3 -2
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/store/ToolGroupManager/ToolGroup.js +1 -1
  28. package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
  29. package/dist/cjs/tools/base/AnnotationTool.js +16 -14
  30. package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
  31. package/dist/cjs/tools/base/index.d.ts +2 -1
  32. package/dist/cjs/tools/base/index.js +3 -1
  33. package/dist/cjs/tools/base/index.js.map +1 -1
  34. package/dist/cjs/tools/index.d.ts +2 -2
  35. package/dist/cjs/tools/index.js +2 -1
  36. package/dist/cjs/tools/index.js.map +1 -1
  37. package/dist/cjs/tools/segmentation/BrushTool.js +24 -17
  38. package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
  39. package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
  40. package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  41. package/dist/cjs/tools/segmentation/strategies/fillCircle.js +5 -7
  42. package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
  43. package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +3 -0
  44. package/dist/cjs/tools/segmentation/strategies/fillSphere.js +38 -10
  45. package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
  46. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
  47. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +10 -0
  48. package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
  49. package/dist/esm/drawingSvg/drawCircle.js +9 -5
  50. package/dist/esm/drawingSvg/drawCircle.js.map +1 -1
  51. package/dist/esm/drawingSvg/drawEllipse.js +4 -4
  52. package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
  53. package/dist/esm/drawingSvg/drawHandles.js +4 -4
  54. package/dist/esm/drawingSvg/drawHandles.js.map +1 -1
  55. package/dist/esm/drawingSvg/drawLine.js +4 -4
  56. package/dist/esm/drawingSvg/drawLine.js.map +1 -1
  57. package/dist/esm/drawingSvg/drawPolyline.js +4 -4
  58. package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
  59. package/dist/esm/drawingSvg/drawRect.js +4 -4
  60. package/dist/esm/drawingSvg/drawRect.js.map +1 -1
  61. package/dist/esm/drawingSvg/drawTextBox.js +4 -4
  62. package/dist/esm/drawingSvg/drawTextBox.js.map +1 -1
  63. package/dist/esm/drawingSvg/index.d.ts +3 -1
  64. package/dist/esm/drawingSvg/index.js +3 -1
  65. package/dist/esm/drawingSvg/index.js.map +1 -1
  66. package/dist/esm/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
  67. package/dist/esm/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +3 -3
  68. package/dist/esm/drawingSvg/setAttributesIfNecessary.js.map +1 -0
  69. package/dist/esm/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
  70. package/dist/esm/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +3 -3
  71. package/dist/esm/drawingSvg/setNewAttributesIfValid.js.map +1 -0
  72. package/dist/esm/index.d.ts +2 -2
  73. package/dist/esm/index.js +2 -2
  74. package/dist/esm/index.js.map +1 -1
  75. package/dist/esm/store/ToolGroupManager/ToolGroup.js +2 -2
  76. package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
  77. package/dist/esm/tools/base/AnnotationTool.js +16 -14
  78. package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
  79. package/dist/esm/tools/base/index.d.ts +2 -1
  80. package/dist/esm/tools/base/index.js +2 -1
  81. package/dist/esm/tools/base/index.js.map +1 -1
  82. package/dist/esm/tools/index.d.ts +2 -2
  83. package/dist/esm/tools/index.js +2 -2
  84. package/dist/esm/tools/index.js.map +1 -1
  85. package/dist/esm/tools/segmentation/BrushTool.js +25 -18
  86. package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
  87. package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
  88. package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
  89. package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -6
  90. package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
  91. package/dist/esm/tools/segmentation/strategies/fillSphere.d.ts +3 -0
  92. package/dist/esm/tools/segmentation/strategies/fillSphere.js +33 -9
  93. package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
  94. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
  95. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +8 -0
  96. package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
  97. package/dist/umd/index.js +1 -1
  98. package/dist/umd/index.js.map +1 -1
  99. package/package.json +3 -3
  100. package/src/drawingSvg/drawCircle.ts +17 -5
  101. package/src/drawingSvg/drawEllipse.ts +4 -4
  102. package/src/drawingSvg/drawHandles.ts +4 -4
  103. package/src/drawingSvg/drawLine.ts +4 -4
  104. package/src/drawingSvg/drawPolyline.ts +4 -4
  105. package/src/drawingSvg/drawRect.ts +4 -4
  106. package/src/drawingSvg/drawTextBox.ts +4 -4
  107. package/src/drawingSvg/index.ts +4 -0
  108. package/src/drawingSvg/{_setAttributesIfNecessary.ts → setAttributesIfNecessary.ts} +2 -2
  109. package/src/drawingSvg/{_setNewAttributesIfValid.ts → setNewAttributesIfValid.ts} +2 -2
  110. package/src/index.ts +2 -0
  111. package/src/store/ToolGroupManager/ToolGroup.ts +4 -1
  112. package/src/tools/base/AnnotationTool.ts +19 -17
  113. package/src/tools/base/index.ts +2 -1
  114. package/src/tools/index.ts +2 -1
  115. package/src/tools/segmentation/BrushTool.ts +42 -19
  116. package/src/tools/segmentation/strategies/eraseSphere.ts +2 -0
  117. package/src/tools/segmentation/strategies/fillCircle.ts +1 -13
  118. package/src/tools/segmentation/strategies/fillSphere.ts +56 -8
  119. package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +16 -0
  120. package/dist/cjs/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
  121. package/dist/cjs/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
  122. package/dist/cjs/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
  123. package/dist/cjs/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
  124. package/dist/esm/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
  125. package/dist/esm/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
  126. package/dist/esm/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
  127. package/dist/esm/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,16 @@ import type { Types } from '@cornerstonejs/core';
2
2
  declare type OperationData = {
3
3
  points: [Types.Point3, Types.Point3, Types.Point3, Types.Point3];
4
4
  volume: Types.IImageVolume;
5
+ imageVolume: Types.IImageVolume;
5
6
  segmentIndex: number;
6
7
  segmentationId: string;
7
8
  segmentsLocked: number[];
8
9
  viewPlaneNormal: Types.Point3;
9
10
  viewUp: Types.Point3;
11
+ strategySpecificConfiguration: any;
10
12
  constraintFn: () => boolean;
11
13
  };
12
14
  export declare function fillInsideSphere(enabledElement: Types.IEnabledElement, operationData: OperationData): void;
15
+ export declare function thresholdInsideSphere(enabledElement: Types.IEnabledElement, operationData: OperationData): void;
13
16
  export declare function fillOutsideSphere(enabledElement: Types.IEnabledElement, operationData: OperationData): void;
14
17
  export {};
@@ -1,18 +1,34 @@
1
+ import { utilities as csUtils } from '@cornerstonejs/core';
1
2
  import { triggerSegmentationDataModified } from '../../../stateManagement/segmentation/triggerSegmentationEvents';
2
3
  import { pointInSurroundingSphereCallback } from '../../../utilities';
3
- function fillSphere(enabledElement, operationData, _inside = true) {
4
+ import isWithinThreshold from './utils/isWithinThreshold';
5
+ function fillSphere(enabledElement, operationData, _inside = true, threshold = false) {
4
6
  const { viewport } = enabledElement;
5
- const { volume: segmentation, segmentsLocked, segmentIndex, segmentationId, points, } = operationData;
7
+ const { volume: segmentation, segmentsLocked, segmentIndex, imageVolume, strategySpecificConfiguration, segmentationId, points, } = operationData;
6
8
  const { imageData, dimensions } = segmentation;
7
9
  const scalarData = segmentation.getScalarData();
8
10
  const scalarIndex = [];
9
- const callback = ({ index, value }) => {
10
- if (segmentsLocked.includes(value)) {
11
- return;
12
- }
13
- scalarData[index] = segmentIndex;
14
- scalarIndex.push(index);
15
- };
11
+ let callback;
12
+ if (threshold) {
13
+ callback = ({ value, index, pointIJK }) => {
14
+ if (segmentsLocked.includes(value)) {
15
+ return;
16
+ }
17
+ if (isWithinThreshold(index, imageVolume, strategySpecificConfiguration)) {
18
+ scalarData[index] = segmentIndex;
19
+ scalarIndex.push(index);
20
+ }
21
+ };
22
+ }
23
+ else {
24
+ callback = ({ index, value }) => {
25
+ if (segmentsLocked.includes(value)) {
26
+ return;
27
+ }
28
+ scalarData[index] = segmentIndex;
29
+ scalarIndex.push(index);
30
+ };
31
+ }
16
32
  pointInSurroundingSphereCallback(imageData, [points[0], points[1]], callback, viewport);
17
33
  const zMultiple = dimensions[0] * dimensions[1];
18
34
  const minSlice = Math.floor(scalarIndex[0] / zMultiple);
@@ -23,6 +39,14 @@ function fillSphere(enabledElement, operationData, _inside = true) {
23
39
  export function fillInsideSphere(enabledElement, operationData) {
24
40
  fillSphere(enabledElement, operationData, true);
25
41
  }
42
+ export function thresholdInsideSphere(enabledElement, operationData) {
43
+ const { volume, imageVolume } = operationData;
44
+ if (!csUtils.isEqual(volume.dimensions, imageVolume.dimensions) ||
45
+ !csUtils.isEqual(volume.direction, imageVolume.direction)) {
46
+ throw new Error('Only source data the same dimensions/size/orientation as the segmentation currently supported.');
47
+ }
48
+ fillSphere(enabledElement, operationData, true, true);
49
+ }
26
50
  export function fillOutsideSphere(enabledElement, operationData) {
27
51
  fillSphere(enabledElement, operationData, false);
28
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAatE,SAAS,UAAU,CACjB,cAAqC,EACrC,aAA4B,EAC5B,OAAO,GAAG,IAAI;IAEd,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;IACpC,MAAM,EACJ,MAAM,EAAE,YAAY,EACpB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,MAAM,GACP,GAAG,aAAa,CAAC;IAElB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;IAC/C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACR;QACD,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,gCAAgC,CAC9B,SAAS,EACT,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EACtB,QAAQ,EACR,QAAiC,CAClC,CAAC;IAKF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,CAAC,EAAE,EACnC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,CACvB,CAAC;IAEF,+BAA+B,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC9D,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAC9B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAE5B,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Types } from '@cornerstonejs/core';
2
+ declare function isWithinThreshold(index: number, imageVolume: Types.IImageVolume, strategySpecificConfiguration: any): boolean;
3
+ export default isWithinThreshold;
@@ -0,0 +1,8 @@
1
+ function isWithinThreshold(index, imageVolume, strategySpecificConfiguration) {
2
+ const { THRESHOLD_INSIDE_CIRCLE } = strategySpecificConfiguration;
3
+ const voxelValue = imageVolume.getScalarData()[index];
4
+ const { threshold } = THRESHOLD_INSIDE_CIRCLE;
5
+ return threshold[0] <= voxelValue && voxelValue <= threshold[1];
6
+ }
7
+ export default isWithinThreshold;
8
+ //# sourceMappingURL=isWithinThreshold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isWithinThreshold.js","sourceRoot":"","sources":["../../../../../../src/tools/segmentation/strategies/utils/isWithinThreshold.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CACxB,KAAa,EACb,WAA+B,EAC/B,6BAAkC;IAElC,MAAM,EAAE,uBAAuB,EAAE,GAAG,6BAA6B,CAAC;IAElE,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,EAAE,SAAS,EAAE,GAAG,uBAAuB,CAAC;IAE9C,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,eAAe,iBAAiB,CAAC"}