@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.
- package/dist/cjs/drawingSvg/drawCircle.js +9 -5
- package/dist/cjs/drawingSvg/drawCircle.js.map +1 -1
- package/dist/cjs/drawingSvg/drawEllipse.js +4 -4
- package/dist/cjs/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/cjs/drawingSvg/drawHandles.js +4 -4
- package/dist/cjs/drawingSvg/drawHandles.js.map +1 -1
- package/dist/cjs/drawingSvg/drawLine.js +4 -4
- package/dist/cjs/drawingSvg/drawLine.js.map +1 -1
- package/dist/cjs/drawingSvg/drawPolyline.js +4 -4
- package/dist/cjs/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/cjs/drawingSvg/drawRect.js +4 -4
- package/dist/cjs/drawingSvg/drawRect.js.map +1 -1
- package/dist/cjs/drawingSvg/drawTextBox.js +4 -4
- package/dist/cjs/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/cjs/drawingSvg/index.d.ts +3 -1
- package/dist/cjs/drawingSvg/index.js +5 -1
- package/dist/cjs/drawingSvg/index.js.map +1 -1
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +5 -5
- package/dist/cjs/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/cjs/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +5 -5
- package/dist/cjs/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- 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/ToolGroupManager/ToolGroup.js +1 -1
- package/dist/cjs/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/cjs/tools/base/AnnotationTool.js +16 -14
- package/dist/cjs/tools/base/AnnotationTool.js.map +1 -1
- package/dist/cjs/tools/base/index.d.ts +2 -1
- package/dist/cjs/tools/base/index.js +3 -1
- package/dist/cjs/tools/base/index.js.map +1 -1
- package/dist/cjs/tools/index.d.ts +2 -2
- package/dist/cjs/tools/index.js +2 -1
- package/dist/cjs/tools/index.js.map +1 -1
- package/dist/cjs/tools/segmentation/BrushTool.js +24 -17
- package/dist/cjs/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/cjs/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js +5 -7
- package/dist/cjs/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js +38 -10
- package/dist/cjs/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js +10 -0
- package/dist/cjs/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/esm/drawingSvg/drawCircle.js +9 -5
- package/dist/esm/drawingSvg/drawCircle.js.map +1 -1
- package/dist/esm/drawingSvg/drawEllipse.js +4 -4
- package/dist/esm/drawingSvg/drawEllipse.js.map +1 -1
- package/dist/esm/drawingSvg/drawHandles.js +4 -4
- package/dist/esm/drawingSvg/drawHandles.js.map +1 -1
- package/dist/esm/drawingSvg/drawLine.js +4 -4
- package/dist/esm/drawingSvg/drawLine.js.map +1 -1
- package/dist/esm/drawingSvg/drawPolyline.js +4 -4
- package/dist/esm/drawingSvg/drawPolyline.js.map +1 -1
- package/dist/esm/drawingSvg/drawRect.js +4 -4
- package/dist/esm/drawingSvg/drawRect.js.map +1 -1
- package/dist/esm/drawingSvg/drawTextBox.js +4 -4
- package/dist/esm/drawingSvg/drawTextBox.js.map +1 -1
- package/dist/esm/drawingSvg/index.d.ts +3 -1
- package/dist/esm/drawingSvg/index.js +3 -1
- package/dist/esm/drawingSvg/index.js.map +1 -1
- package/dist/esm/drawingSvg/setAttributesIfNecessary.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setAttributesIfNecessary.js → setAttributesIfNecessary.js} +3 -3
- package/dist/esm/drawingSvg/setAttributesIfNecessary.js.map +1 -0
- package/dist/esm/drawingSvg/setNewAttributesIfValid.d.ts +2 -0
- package/dist/esm/drawingSvg/{_setNewAttributesIfValid.js → setNewAttributesIfValid.js} +3 -3
- package/dist/esm/drawingSvg/setNewAttributesIfValid.js.map +1 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/store/ToolGroupManager/ToolGroup.js +2 -2
- package/dist/esm/store/ToolGroupManager/ToolGroup.js.map +1 -1
- package/dist/esm/tools/base/AnnotationTool.js +16 -14
- package/dist/esm/tools/base/AnnotationTool.js.map +1 -1
- package/dist/esm/tools/base/index.d.ts +2 -1
- package/dist/esm/tools/base/index.js +2 -1
- package/dist/esm/tools/base/index.js.map +1 -1
- package/dist/esm/tools/index.d.ts +2 -2
- package/dist/esm/tools/index.js +2 -2
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/esm/tools/segmentation/BrushTool.js +25 -18
- package/dist/esm/tools/segmentation/BrushTool.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/eraseSphere.d.ts +2 -0
- package/dist/esm/tools/segmentation/strategies/eraseSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillCircle.js +1 -6
- package/dist/esm/tools/segmentation/strategies/fillCircle.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/fillSphere.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/fillSphere.js +33 -9
- package/dist/esm/tools/segmentation/strategies/fillSphere.js.map +1 -1
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.d.ts +3 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js +8 -0
- package/dist/esm/tools/segmentation/strategies/utils/isWithinThreshold.js.map +1 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/drawingSvg/drawCircle.ts +17 -5
- package/src/drawingSvg/drawEllipse.ts +4 -4
- package/src/drawingSvg/drawHandles.ts +4 -4
- package/src/drawingSvg/drawLine.ts +4 -4
- package/src/drawingSvg/drawPolyline.ts +4 -4
- package/src/drawingSvg/drawRect.ts +4 -4
- package/src/drawingSvg/drawTextBox.ts +4 -4
- package/src/drawingSvg/index.ts +4 -0
- package/src/drawingSvg/{_setAttributesIfNecessary.ts → setAttributesIfNecessary.ts} +2 -2
- package/src/drawingSvg/{_setNewAttributesIfValid.ts → setNewAttributesIfValid.ts} +2 -2
- package/src/index.ts +2 -0
- package/src/store/ToolGroupManager/ToolGroup.ts +4 -1
- package/src/tools/base/AnnotationTool.ts +19 -17
- package/src/tools/base/index.ts +2 -1
- package/src/tools/index.ts +2 -1
- package/src/tools/segmentation/BrushTool.ts +42 -19
- package/src/tools/segmentation/strategies/eraseSphere.ts +2 -0
- package/src/tools/segmentation/strategies/fillCircle.ts +1 -13
- package/src/tools/segmentation/strategies/fillSphere.ts +56 -8
- package/src/tools/segmentation/strategies/utils/isWithinThreshold.ts +16 -0
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/cjs/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.d.ts +0 -2
- package/dist/esm/drawingSvg/_setAttributesIfNecessary.js.map +0 -1
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.d.ts +0 -2
- package/dist/esm/drawingSvg/_setNewAttributesIfValid.js.map +0 -1
|
@@ -3,9 +3,11 @@ 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.AnnotationTool = exports.BaseTool = void 0;
|
|
6
|
+
exports.AnnotationDisplayTool = exports.AnnotationTool = exports.BaseTool = void 0;
|
|
7
7
|
const BaseTool_1 = __importDefault(require("./BaseTool"));
|
|
8
8
|
exports.BaseTool = BaseTool_1.default;
|
|
9
9
|
const AnnotationTool_1 = __importDefault(require("./AnnotationTool"));
|
|
10
10
|
exports.AnnotationTool = AnnotationTool_1.default;
|
|
11
|
+
const AnnotationDisplayTool_1 = __importDefault(require("./AnnotationDisplayTool"));
|
|
12
|
+
exports.AnnotationDisplayTool = AnnotationDisplayTool_1.default;
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/base/index.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/base/index.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAIzB,mBAJF,kBAAQ,CAIE;AAHjB,sEAA8C;AAG3B,yBAHZ,wBAAc,CAGY;AAFjC,oFAA4D;AAEzB,gCAF5B,+BAAqB,CAE4B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTool, AnnotationTool } from './base';
|
|
1
|
+
import { BaseTool, AnnotationTool, AnnotationDisplayTool } from './base';
|
|
2
2
|
import PanTool from './PanTool';
|
|
3
3
|
import TrackballRotateTool from './TrackballRotateTool';
|
|
4
4
|
import WindowLevelTool from './WindowLevelTool';
|
|
@@ -33,4 +33,4 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
|
|
|
33
33
|
import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
|
|
34
34
|
import BrushTool from './segmentation/BrushTool';
|
|
35
35
|
import PaintFillTool from './segmentation/PaintFillTool';
|
|
36
|
-
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
|
36
|
+
export { BaseTool, AnnotationTool, AnnotationDisplayTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, PlanarRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, CircleROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
package/dist/cjs/tools/index.js
CHANGED
|
@@ -3,10 +3,11 @@ 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.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ReferenceCursors = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.PlanarRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationTool = exports.BaseTool = void 0;
|
|
6
|
+
exports.ScaleOverlayTool = exports.PaintFillTool = exports.ReferenceLines = exports.MagnifyTool = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ReferenceCursors = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.CircleROITool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = 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; } });
|
|
10
|
+
Object.defineProperty(exports, "AnnotationDisplayTool", { enumerable: true, get: function () { return base_1.AnnotationDisplayTool; } });
|
|
10
11
|
const PanTool_1 = __importDefault(require("./PanTool"));
|
|
11
12
|
exports.PanTool = PanTool_1.default;
|
|
12
13
|
const TrackballRotateTool_1 = __importDefault(require("./TrackballRotateTool"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAyE;AA2CvE,yFA3CO,eAAQ,OA2CP;AACR,+FA5CiB,qBAAc,OA4CjB;AACd,sGA7CiC,4BAAqB,OA6CjC;AA5CvB,wDAAgC;AA8C9B,kBA9CK,iBAAO,CA8CL;AA7CT,gFAAwD;AA8CtD,8BA9CK,6BAAmB,CA8CL;AA7CrB,wEAAgD;AA+C9C,0BA/CK,yBAAe,CA+CL;AA9CjB,wEAAgD;AA+C9C,0BA/CK,yBAAe,CA+CL;AA9CjB,0EAAkD;AA+ChD,2BA/CK,0BAAgB,CA+CL;AA9ClB,oGAAwE;AA+CtE,oCA/CK,uCAAyB,CA+CL;AA9C3B,0DAAkC;AA+ChC,mBA/CK,kBAAQ,CA+CL;AA9CV,8FAAsE;AA+CpE,qCA/CK,oCAA0B,CA+CL;AA9C5B,8EAAsD;AA+CpD,6BA/CK,4BAAkB,CA+CL;AA9CpB,sEAA8C;AAgD5C,yBAhDK,wBAAc,CAgDL;AA/ChB,gEAAwC;AAqEtC,sBArEK,qBAAW,CAqEL;AApEb,8EAAsD;AA+CpD,6BA/CK,4BAAkB,CA+CL;AA7CpB,uFAA+D;AA8C7D,4BA9CK,2BAAiB,CA8CL;AA7CnB,yEAAiD;AA8C/C,qBA9CK,oBAAU,CA8CL;AA7CZ,uEAA+C;AA8C7C,oBA9CK,mBAAS,CA8CL;AA7CX,+EAAuD;AAgCrD,wBAhCK,uBAAa,CAgCL;AA/Bf,qFAA6D;AA6C3D,2BA7CK,0BAAgB,CA6CL;AA5ClB,uFAA+D;AA6C7D,4BA7CK,2BAAiB,CA6CL;AA5CnB,+EAAuD;AA6CrD,wBA7CK,uBAAa,CA6CL;AA5Cf,+FAAuE;AA6CrE,gCA7CK,+BAAqB,CA6CL;AA5CvB,uFAA+D;AA6C7D,4BA7CK,2BAAiB,CA6CL;AA5CnB,uEAA+C;AA6C7C,oBA7CK,mBAAS,CA6CL;AA5CX,+EAAuD;AA6CrD,wBA7CK,uBAAa,CA6CL;AA5Cf,0EAAkD;AA6ChD,2BA7CK,0BAAgB,CA6CL;AA5ClB,8EAAkD;AAuDhD,yBAvDK,4BAAc,CAuDL;AAtDhB,0EAAkD;AAwDhD,2BAxDK,0BAAgB,CAwDL;AArDlB,qGAA6E;AA0C3E,kCA1CK,iCAAuB,CA0CL;AAvCzB,iGAAyE;AAyCvE,gCAzCK,+BAAqB,CAyCL;AAxCvB,2FAAmE;AAyCjE,6BAzCK,4BAAkB,CAyCL;AAxCpB,2FAAmE;AAyCjE,6BAzCK,4BAAkB,CAyCL;AAxCpB,yGAAiF;AAyC/E,oCAzCK,mCAAyB,CAyCL;AAxC3B,yHAAiG;AAyC/F,4CAzCK,2CAAiC,CAyCL;AAxCnC,yEAAiD;AAyC/C,oBAzCK,mBAAS,CAyCL;AAxCX,iFAAyD;AA2CvD,wBA3CK,uBAAa,CA2CL"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const core_1 = require("@cornerstonejs/core");
|
|
7
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
7
8
|
const base_1 = require("../base");
|
|
8
9
|
const fillSphere_1 = require("./strategies/fillSphere");
|
|
9
10
|
const eraseSphere_1 = require("./strategies/eraseSphere");
|
|
@@ -20,10 +21,11 @@ class BrushTool extends base_1.BaseTool {
|
|
|
20
21
|
configuration: {
|
|
21
22
|
strategies: {
|
|
22
23
|
FILL_INSIDE_CIRCLE: fillCircle_1.fillInsideCircle,
|
|
23
|
-
THRESHOLD_INSIDE_CIRCLE: fillCircle_1.thresholdInsideCircle,
|
|
24
24
|
ERASE_INSIDE_CIRCLE: eraseCircle_1.eraseInsideCircle,
|
|
25
25
|
FILL_INSIDE_SPHERE: fillSphere_1.fillInsideSphere,
|
|
26
26
|
ERASE_INSIDE_SPHERE: eraseSphere_1.eraseInsideSphere,
|
|
27
|
+
THRESHOLD_INSIDE_CIRCLE: fillCircle_1.thresholdInsideCircle,
|
|
28
|
+
THRESHOLD_INSIDE_SPHERE: fillSphere_1.thresholdInsideSphere,
|
|
27
29
|
},
|
|
28
30
|
strategySpecificConfiguration: {
|
|
29
31
|
THRESHOLD_INSIDE_CIRCLE: {
|
|
@@ -200,31 +202,36 @@ class BrushTool extends base_1.BaseTool {
|
|
|
200
202
|
const enabledElement = (0, core_1.getEnabledElement)(element);
|
|
201
203
|
const { viewport } = enabledElement;
|
|
202
204
|
const { canvasToWorld } = viewport;
|
|
205
|
+
const camera = viewport.getCamera();
|
|
203
206
|
const { brushSize } = this.configuration;
|
|
204
|
-
const
|
|
205
|
-
const
|
|
207
|
+
const viewUp = gl_matrix_1.vec3.fromValues(camera.viewUp[0], camera.viewUp[1], camera.viewUp[2]);
|
|
208
|
+
const viewPlaneNormal = gl_matrix_1.vec3.fromValues(camera.viewPlaneNormal[0], camera.viewPlaneNormal[1], camera.viewPlaneNormal[2]);
|
|
209
|
+
const viewRight = gl_matrix_1.vec3.create();
|
|
210
|
+
gl_matrix_1.vec3.cross(viewRight, viewUp, viewPlaneNormal);
|
|
211
|
+
const centerCursorInWorld = canvasToWorld([
|
|
206
212
|
centerCanvas[0],
|
|
207
|
-
centerCanvas[1] + radius,
|
|
208
|
-
];
|
|
209
|
-
const topCanvas = [centerCanvas[0], centerCanvas[1] - radius];
|
|
210
|
-
const leftCanvas = [
|
|
211
|
-
centerCanvas[0] - radius,
|
|
212
213
|
centerCanvas[1],
|
|
213
|
-
];
|
|
214
|
-
const
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
214
|
+
]);
|
|
215
|
+
const bottomCursorInWorld = gl_matrix_1.vec3.create();
|
|
216
|
+
const topCursorInWorld = gl_matrix_1.vec3.create();
|
|
217
|
+
const leftCursorInWorld = gl_matrix_1.vec3.create();
|
|
218
|
+
const rightCursorInWorld = gl_matrix_1.vec3.create();
|
|
219
|
+
for (let i = 0; i <= 2; i++) {
|
|
220
|
+
bottomCursorInWorld[i] = centerCursorInWorld[i] - viewUp[i] * brushSize;
|
|
221
|
+
topCursorInWorld[i] = centerCursorInWorld[i] + viewUp[i] * brushSize;
|
|
222
|
+
leftCursorInWorld[i] = centerCursorInWorld[i] - viewRight[i] * brushSize;
|
|
223
|
+
rightCursorInWorld[i] = centerCursorInWorld[i] + viewRight[i] * brushSize;
|
|
224
|
+
}
|
|
218
225
|
const { brushCursor } = this._hoverData;
|
|
219
226
|
const { data } = brushCursor;
|
|
220
227
|
if (data.handles === undefined) {
|
|
221
228
|
data.handles = {};
|
|
222
229
|
}
|
|
223
230
|
data.handles.points = [
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
231
|
+
bottomCursorInWorld,
|
|
232
|
+
topCursorInWorld,
|
|
233
|
+
leftCursorInWorld,
|
|
234
|
+
rightCursorInWorld,
|
|
228
235
|
];
|
|
229
236
|
data.invalidated = false;
|
|
230
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAA8E;
|
|
1
|
+
{"version":3,"file":"BrushTool.js","sourceRoot":"","sources":["../../../../src/tools/segmentation/BrushTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Types } from '@cornerstonejs/core';
|
|
2
2
|
declare type OperationData = {
|
|
3
3
|
points: [Types.Point3, Types.Point3, Types.Point3, Types.Point3];
|
|
4
|
+
imageVolume: Types.IImageVolume;
|
|
4
5
|
volume: Types.IImageVolume;
|
|
5
6
|
segmentIndex: number;
|
|
6
7
|
segmentationId: string;
|
|
@@ -8,6 +9,7 @@ declare type OperationData = {
|
|
|
8
9
|
viewPlaneNormal: Types.Point3;
|
|
9
10
|
viewUp: Types.Point3;
|
|
10
11
|
constraintFn: () => boolean;
|
|
12
|
+
strategySpecificConfiguration: any;
|
|
11
13
|
};
|
|
12
14
|
export declare function eraseInsideSphere(enabledElement: Types.IEnabledElement, operationData: OperationData): void;
|
|
13
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eraseSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/eraseSphere.ts"],"names":[],"mappings":";;;AAEA,6CAAgD;
|
|
1
|
+
{"version":3,"file":"eraseSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/eraseSphere.ts"],"names":[],"mappings":";;;AAEA,6CAAgD;AAehD,SAAgB,iBAAiB,CAC/B,cAAqC,EACrC,aAA4B;IAI5B,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;QAC1D,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IAEH,IAAA,6BAAgB,EAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACvD,CAAC;AAXD,8CAWC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.fillOutsideCircle = exports.thresholdInsideCircle = exports.fillInsideCircle = void 0;
|
|
4
7
|
const gl_matrix_1 = require("gl-matrix");
|
|
@@ -7,6 +10,7 @@ const ellipse_1 = require("../../../utilities/math/ellipse");
|
|
|
7
10
|
const boundingBox_1 = require("../../../utilities/boundingBox");
|
|
8
11
|
const triggerSegmentationEvents_1 = require("../../../stateManagement/segmentation/triggerSegmentationEvents");
|
|
9
12
|
const utilities_1 = require("../../../utilities");
|
|
13
|
+
const isWithinThreshold_1 = __importDefault(require("./utils/isWithinThreshold"));
|
|
10
14
|
const { transformWorldToIndex } = core_1.utilities;
|
|
11
15
|
function fillCircle(enabledElement, operationData, threshold = false) {
|
|
12
16
|
const { volume: segmentationVolume, imageVolume, points, segmentsLocked, segmentIndex, segmentationId, strategySpecificConfiguration, } = operationData;
|
|
@@ -40,7 +44,7 @@ function fillCircle(enabledElement, operationData, threshold = false) {
|
|
|
40
44
|
if (segmentsLocked.includes(value)) {
|
|
41
45
|
return;
|
|
42
46
|
}
|
|
43
|
-
if (
|
|
47
|
+
if ((0, isWithinThreshold_1.default)(index, imageVolume, strategySpecificConfiguration)) {
|
|
44
48
|
scalarData[index] = segmentIndex;
|
|
45
49
|
modifiedSlicesToUse.add(pointIJK[2]);
|
|
46
50
|
}
|
|
@@ -59,12 +63,6 @@ function fillCircle(enabledElement, operationData, threshold = false) {
|
|
|
59
63
|
const arrayOfSlices = Array.from(modifiedSlicesToUse);
|
|
60
64
|
(0, triggerSegmentationEvents_1.triggerSegmentationDataModified)(segmentationId, arrayOfSlices);
|
|
61
65
|
}
|
|
62
|
-
function isWithinThreshold(index, imageVolume, strategySpecificConfiguration) {
|
|
63
|
-
const { THRESHOLD_INSIDE_CIRCLE } = strategySpecificConfiguration;
|
|
64
|
-
const voxelValue = imageVolume.getScalarData()[index];
|
|
65
|
-
const { threshold } = THRESHOLD_INSIDE_CIRCLE;
|
|
66
|
-
return threshold[0] <= voxelValue && voxelValue <= threshold[1];
|
|
67
|
-
}
|
|
68
66
|
function fillInsideCircle(enabledElement, operationData) {
|
|
69
67
|
fillCircle(enabledElement, operationData, false);
|
|
70
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillCircle.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillCircle.ts"],"names":[],"mappings":"
|
|
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,21 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fillOutsideSphere = exports.fillInsideSphere = void 0;
|
|
6
|
+
exports.fillOutsideSphere = exports.thresholdInsideSphere = exports.fillInsideSphere = void 0;
|
|
7
|
+
const core_1 = require("@cornerstonejs/core");
|
|
4
8
|
const triggerSegmentationEvents_1 = require("../../../stateManagement/segmentation/triggerSegmentationEvents");
|
|
5
9
|
const utilities_1 = require("../../../utilities");
|
|
6
|
-
|
|
10
|
+
const isWithinThreshold_1 = __importDefault(require("./utils/isWithinThreshold"));
|
|
11
|
+
function fillSphere(enabledElement, operationData, _inside = true, threshold = false) {
|
|
7
12
|
const { viewport } = enabledElement;
|
|
8
|
-
const { volume: segmentation, segmentsLocked, segmentIndex, segmentationId, points, } = operationData;
|
|
13
|
+
const { volume: segmentation, segmentsLocked, segmentIndex, imageVolume, strategySpecificConfiguration, segmentationId, points, } = operationData;
|
|
9
14
|
const { imageData, dimensions } = segmentation;
|
|
10
15
|
const scalarData = segmentation.getScalarData();
|
|
11
16
|
const scalarIndex = [];
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
let callback;
|
|
18
|
+
if (threshold) {
|
|
19
|
+
callback = ({ value, index, pointIJK }) => {
|
|
20
|
+
if (segmentsLocked.includes(value)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if ((0, isWithinThreshold_1.default)(index, imageVolume, strategySpecificConfiguration)) {
|
|
24
|
+
scalarData[index] = segmentIndex;
|
|
25
|
+
scalarIndex.push(index);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
callback = ({ index, value }) => {
|
|
31
|
+
if (segmentsLocked.includes(value)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
scalarData[index] = segmentIndex;
|
|
35
|
+
scalarIndex.push(index);
|
|
36
|
+
};
|
|
37
|
+
}
|
|
19
38
|
(0, utilities_1.pointInSurroundingSphereCallback)(imageData, [points[0], points[1]], callback, viewport);
|
|
20
39
|
const zMultiple = dimensions[0] * dimensions[1];
|
|
21
40
|
const minSlice = Math.floor(scalarIndex[0] / zMultiple);
|
|
@@ -27,6 +46,15 @@ function fillInsideSphere(enabledElement, operationData) {
|
|
|
27
46
|
fillSphere(enabledElement, operationData, true);
|
|
28
47
|
}
|
|
29
48
|
exports.fillInsideSphere = fillInsideSphere;
|
|
49
|
+
function thresholdInsideSphere(enabledElement, operationData) {
|
|
50
|
+
const { volume, imageVolume } = operationData;
|
|
51
|
+
if (!core_1.utilities.isEqual(volume.dimensions, imageVolume.dimensions) ||
|
|
52
|
+
!core_1.utilities.isEqual(volume.direction, imageVolume.direction)) {
|
|
53
|
+
throw new Error('Only source data the same dimensions/size/orientation as the segmentation currently supported.');
|
|
54
|
+
}
|
|
55
|
+
fillSphere(enabledElement, operationData, true, true);
|
|
56
|
+
}
|
|
57
|
+
exports.thresholdInsideSphere = thresholdInsideSphere;
|
|
30
58
|
function fillOutsideSphere(enabledElement, operationData) {
|
|
31
59
|
fillSphere(enabledElement, operationData, false);
|
|
32
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fillSphere.js","sourceRoot":"","sources":["../../../../../src/tools/segmentation/strategies/fillSphere.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function isWithinThreshold(index, imageVolume, strategySpecificConfiguration) {
|
|
4
|
+
const { THRESHOLD_INSIDE_CIRCLE } = strategySpecificConfiguration;
|
|
5
|
+
const voxelValue = imageVolume.getScalarData()[index];
|
|
6
|
+
const { threshold } = THRESHOLD_INSIDE_CIRCLE;
|
|
7
|
+
return threshold[0] <= voxelValue && voxelValue <= threshold[1];
|
|
8
|
+
}
|
|
9
|
+
exports.default = isWithinThreshold;
|
|
10
|
+
//# 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,kBAAe,iBAAiB,CAAC"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import _getHash from './_getHash';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
3
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
4
4
|
function drawCircle(svgDrawingHelper, annotationUID, circleUID, center, radius, options = {}, dataId = '') {
|
|
5
|
-
const { color, fill, width, lineWidth, lineDash } = Object.assign({
|
|
5
|
+
const { color, fill, width, lineWidth, lineDash, fillOpacity, strokeOpacity, } = Object.assign({
|
|
6
6
|
color: 'dodgerblue',
|
|
7
7
|
fill: 'transparent',
|
|
8
8
|
width: '2',
|
|
9
9
|
lineDash: undefined,
|
|
10
10
|
lineWidth: undefined,
|
|
11
|
+
strokeOpacity: 1,
|
|
12
|
+
fillOpacity: 1,
|
|
11
13
|
}, options);
|
|
12
14
|
const strokeWidth = lineWidth || width;
|
|
13
15
|
const svgns = 'http://www.w3.org/2000/svg';
|
|
@@ -21,9 +23,11 @@ function drawCircle(svgDrawingHelper, annotationUID, circleUID, center, radius,
|
|
|
21
23
|
fill,
|
|
22
24
|
'stroke-width': strokeWidth,
|
|
23
25
|
'stroke-dasharray': lineDash,
|
|
26
|
+
'fill-opacity': fillOpacity,
|
|
27
|
+
'stroke-opacity': strokeOpacity,
|
|
24
28
|
};
|
|
25
29
|
if (existingCircleElement) {
|
|
26
|
-
|
|
30
|
+
setAttributesIfNecessary(attributes, existingCircleElement);
|
|
27
31
|
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
28
32
|
}
|
|
29
33
|
else {
|
|
@@ -31,7 +35,7 @@ function drawCircle(svgDrawingHelper, annotationUID, circleUID, center, radius,
|
|
|
31
35
|
if (dataId !== '') {
|
|
32
36
|
newCircleElement.setAttribute('data-id', dataId);
|
|
33
37
|
}
|
|
34
|
-
|
|
38
|
+
setNewAttributesIfValid(attributes, newCircleElement);
|
|
35
39
|
svgDrawingHelper.appendNode(newCircleElement, svgNodeHash);
|
|
36
40
|
}
|
|
37
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawCircle.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawCircle.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"drawCircle.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawCircle.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,SAAS,UAAU,CACjB,gBAAkC,EAClC,aAAqB,EACrB,SAAiB,EACjB,MAAoB,EACpB,MAAc,EACd,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,EAAE;IAEX,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,aAAa,GACd,GAAG,MAAM,CAAC,MAAM,CACf;QACE,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;KACf,EACD,OAAO,CACR,CAAC;IAGF,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAGvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvE,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;QAClB,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;QAClB,CAAC,EAAE,GAAG,MAAM,EAAE;QACd,MAAM,EAAE,KAAK;QACb,IAAI;QACJ,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;QAC5B,cAAc,EAAE,WAAW;QAC3B,gBAAgB,EAAE,aAAa;KAChC,CAAC;IAEF,IAAI,qBAAqB,EAAE;QACzB,wBAAwB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;QAE5D,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,gBAAgB,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEnE,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAClD;QAED,uBAAuB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAEtD,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _getHash from './_getHash';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
3
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
4
4
|
function drawEllipse(svgDrawingHelper, annotationUID, ellipseUID, corner1, corner2, options = {}, dataId = '') {
|
|
5
5
|
const { color, width, lineWidth, lineDash } = Object.assign({
|
|
6
6
|
color: 'dodgerblue',
|
|
@@ -30,7 +30,7 @@ function drawEllipse(svgDrawingHelper, annotationUID, ellipseUID, corner1, corne
|
|
|
30
30
|
'stroke-dasharray': lineDash,
|
|
31
31
|
};
|
|
32
32
|
if (existingEllipse) {
|
|
33
|
-
|
|
33
|
+
setAttributesIfNecessary(attributes, existingEllipse);
|
|
34
34
|
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
@@ -38,7 +38,7 @@ function drawEllipse(svgDrawingHelper, annotationUID, ellipseUID, corner1, corne
|
|
|
38
38
|
if (dataId !== '') {
|
|
39
39
|
svgEllipseElement.setAttribute('data-id', dataId);
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
setNewAttributesIfValid(attributes, svgEllipseElement);
|
|
42
42
|
svgDrawingHelper.appendNode(svgEllipseElement, svgNodeHash);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawEllipse.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawEllipse.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"drawEllipse.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawEllipse.ts"],"names":[],"mappings":"AAGA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,SAAS,WAAW,CAClB,gBAAkC,EAClC,aAAqB,EACrB,UAAkB,EAClB,OAAqB,EACrB,OAAqB,EACrB,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,EAAE;IAEX,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CACzD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;KACpB,EACD,OAAO,CACR,CAAC;IAGF,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEjE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IAEtB,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;QAClB,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;QAClB,EAAE,EAAE,GAAG,OAAO,EAAE;QAChB,EAAE,EAAE,GAAG,OAAO,EAAE;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,aAAa;QACnB,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,IAAI,eAAe,EAAE;QACnB,wBAAwB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEtD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,iBAAiB,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAErE,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,iBAAiB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SACnD;QAED,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAEvD,gBAAgB,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;KAC7D;AACH,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _getHash from './_getHash';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
3
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
4
4
|
function drawHandles(svgDrawingHelper, annotationUID, handleGroupUID, handlePoints, options = {}) {
|
|
5
5
|
const { color, handleRadius, width, lineWidth, fill, type, opacity } = Object.assign({
|
|
6
6
|
color: 'dodgerblue',
|
|
@@ -50,12 +50,12 @@ function drawHandles(svgDrawingHelper, annotationUID, handleGroupUID, handlePoin
|
|
|
50
50
|
}
|
|
51
51
|
const existingHandleElement = svgDrawingHelper.getSvgNode(svgNodeHash);
|
|
52
52
|
if (existingHandleElement) {
|
|
53
|
-
|
|
53
|
+
setAttributesIfNecessary(attributes, existingHandleElement);
|
|
54
54
|
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
55
55
|
}
|
|
56
56
|
else {
|
|
57
57
|
const newHandleElement = document.createElementNS(svgns, type);
|
|
58
|
-
|
|
58
|
+
setNewAttributesIfValid(attributes, newHandleElement);
|
|
59
59
|
svgDrawingHelper.appendNode(newHandleElement, svgNodeHash);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawHandles.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawHandles.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"drawHandles.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawHandles.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _getHash from './_getHash';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
3
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
4
4
|
export default function drawLine(svgDrawingHelper, annotationUID, lineUID, start, end, options = {}, dataId = '') {
|
|
5
5
|
if (isNaN(start[0]) || isNaN(start[1]) || isNaN(end[0]) || isNaN(end[1])) {
|
|
6
6
|
return;
|
|
@@ -30,7 +30,7 @@ export default function drawLine(svgDrawingHelper, annotationUID, lineUID, start
|
|
|
30
30
|
'stroke-dasharray': lineDash,
|
|
31
31
|
};
|
|
32
32
|
if (existingLine) {
|
|
33
|
-
|
|
33
|
+
setAttributesIfNecessary(attributes, existingLine);
|
|
34
34
|
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
@@ -38,7 +38,7 @@ export default function drawLine(svgDrawingHelper, annotationUID, lineUID, start
|
|
|
38
38
|
if (dataId !== '') {
|
|
39
39
|
newLine.setAttribute('data-id', dataId);
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
setNewAttributesIfValid(attributes, newLine);
|
|
42
42
|
svgDrawingHelper.appendNode(newLine, svgNodeHash);
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawLine.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawLine.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"drawLine.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawLine.ts"],"names":[],"mappings":"AAEA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAGlE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,gBAAkC,EAClC,aAAqB,EACrB,OAAe,EACf,KAAmB,EACnB,GAAiB,EACjB,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,EAAE;IAGX,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;QACxE,OAAO;KACR;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CACjE;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,MAAM,EAAE,SAAS;KAClB,EACD,OAAO,CACR,CAAC;IAGF,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,sBAAsB,gBAAgB,CAAC,eAAe,CAAC,EAAE,IAAI;QAC/D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;QACjB,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;QACjB,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;QACf,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;QACf,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,eAAe;QACtB,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,IAAI,YAAY,EAAE;QAEhB,wBAAwB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAEnD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAExD,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SACzC;QAED,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE7C,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;KACnD;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _getHash from './_getHash';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import setNewAttributesIfValid from './setNewAttributesIfValid';
|
|
3
|
+
import setAttributesIfNecessary from './setAttributesIfNecessary';
|
|
4
4
|
export default function drawPolyline(svgDrawingHelper, annotationUID, polylineUID, points, options) {
|
|
5
5
|
if (points.length < 2) {
|
|
6
6
|
return;
|
|
@@ -32,12 +32,12 @@ export default function drawPolyline(svgDrawingHelper, annotationUID, polylineUI
|
|
|
32
32
|
'stroke-dasharray': lineDash,
|
|
33
33
|
};
|
|
34
34
|
if (existingPolyLine) {
|
|
35
|
-
|
|
35
|
+
setAttributesIfNecessary(attributes, existingPolyLine);
|
|
36
36
|
svgDrawingHelper.setNodeTouched(svgNodeHash);
|
|
37
37
|
}
|
|
38
38
|
else {
|
|
39
39
|
const newPolyLine = document.createElementNS(svgns, 'polyline');
|
|
40
|
-
|
|
40
|
+
setNewAttributesIfValid(attributes, newPolyLine);
|
|
41
41
|
svgDrawingHelper.appendNode(newPolyLine, svgNodeHash);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawPolyline.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawPolyline.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"drawPolyline.js","sourceRoot":"","sources":["../../../src/drawingSvg/drawPolyline.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AASlE,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,gBAAkC,EAClC,aAAqB,EACrB,WAAmB,EACnB,MAAsB,EACtB,OAMC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,OAAO;KACR;IAED,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,MAAM,CACzD;QACE,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,kBAAkB,EAAE,KAAK;KAC1B,EACD,OAAO,CACR,CAAC;IAGF,MAAM,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,4BAA4B,CAAC;IAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAElE,IAAI,eAAe,GAAG,EAAE,CAAC;IAEzB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,eAAe,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;KAChD;IAED,IAAI,OAAO,CAAC,kBAAkB,EAAE;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAE7B,eAAe,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD;IAED,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,MAAM;QACZ,cAAc,EAAE,WAAW;QAC3B,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,IAAI,gBAAgB,EAAE;QAEpB,wBAAwB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAEvD,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KAC9C;SAAM;QACL,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAEhE,uBAAuB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEjD,gBAAgB,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;KACvD;AACH,CAAC"}
|