@cornerstonejs/tools 0.41.1 → 0.42.1
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/index.d.ts +2 -2
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/tools/StackRotateTool.d.ts +10 -0
- package/dist/cjs/tools/StackRotateTool.js +46 -0
- package/dist/cjs/tools/StackRotateTool.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/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tools/StackRotateTool.d.ts +10 -0
- package/dist/esm/tools/StackRotateTool.js +41 -0
- package/dist/esm/tools/StackRotateTool.js.map +1 -0
- package/dist/esm/tools/index.d.ts +2 -1
- package/dist/esm/tools/index.js +2 -1
- package/dist/esm/tools/index.js.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +5 -5
package/dist/cjs/index.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ import * as cursors from './cursors';
|
|
|
8
8
|
import * as Types from './types';
|
|
9
9
|
import * as annotation from './stateManagement/annotation';
|
|
10
10
|
import * as segmentation from './stateManagement/segmentation';
|
|
11
|
-
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
|
|
11
|
+
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
|
|
12
12
|
import * as Enums from './enums';
|
|
13
|
-
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
|
13
|
+
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
exports.cursors = exports.utilities = void 0;
|
|
26
|
+
exports.annotation = exports.drawing = exports.CONSTANTS = exports.Enums = exports.ToolGroupManager = exports.state = exports.Types = exports.PaintFillTool = exports.SynchronizerManager = exports.Synchronizer = exports.synchronizers = exports.BrushTool = exports.RectangleROIStartEndThresholdTool = exports.RectangleROIThresholdTool = exports.SphereScissorsTool = exports.CircleScissorsTool = exports.RectangleScissorsTool = exports.SegmentationDisplayTool = exports.ScaleOverlayTool = exports.ReferenceLines = exports.ReferenceCursors = exports.MagnifyTool = exports.CobbAngleTool = exports.AngleTool = exports.ArrowAnnotateTool = exports.PlanarFreehandROITool = exports.BidirectionalTool = exports.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.LengthTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.StackScrollMouseWheelTool = exports.StackRotateTool = exports.StackScrollTool = exports.ZoomTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = exports.AnnotationTool = exports.BaseTool = exports.cancelActiveManipulations = exports.removeTool = exports.addTool = exports.destroy = exports.init = void 0;
|
|
27
|
+
exports.cursors = exports.utilities = exports.segmentation = void 0;
|
|
28
28
|
const init_1 = require("./init");
|
|
29
29
|
Object.defineProperty(exports, "init", { enumerable: true, get: function () { return init_1.init; } });
|
|
30
30
|
Object.defineProperty(exports, "destroy", { enumerable: true, get: function () { return init_1.destroy; } });
|
|
@@ -61,6 +61,7 @@ Object.defineProperty(exports, "DragProbeTool", { enumerable: true, get: functio
|
|
|
61
61
|
Object.defineProperty(exports, "WindowLevelTool", { enumerable: true, get: function () { return tools_1.WindowLevelTool; } });
|
|
62
62
|
Object.defineProperty(exports, "ZoomTool", { enumerable: true, get: function () { return tools_1.ZoomTool; } });
|
|
63
63
|
Object.defineProperty(exports, "StackScrollTool", { enumerable: true, get: function () { return tools_1.StackScrollTool; } });
|
|
64
|
+
Object.defineProperty(exports, "StackRotateTool", { enumerable: true, get: function () { return tools_1.StackRotateTool; } });
|
|
64
65
|
Object.defineProperty(exports, "StackScrollMouseWheelTool", { enumerable: true, get: function () { return tools_1.StackScrollMouseWheelTool; } });
|
|
65
66
|
Object.defineProperty(exports, "VolumeRotateMouseWheelTool", { enumerable: true, get: function () { return tools_1.VolumeRotateMouseWheelTool; } });
|
|
66
67
|
Object.defineProperty(exports, "MIPJumpToClickTool", { enumerable: true, get: function () { return tools_1.MIPJumpToClickTool; } });
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAuC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAuC;AAgErC,qFAhEO,WAAI,OAgEP;AACJ,wFAjEa,cAAO,OAiEb;AAhET,mCAQiB;AAyDf,wFAhEA,eAAO,OAgEA;AACP,2FAhEA,kBAAU,OAgEA;AA+CV,sFA9GA,aAAK,OA8GA;AAEL,iGA/GA,wBAAgB,OA+GA;AALhB,oGAzGA,2BAAmB,OAyGA;AADnB,6FAvGA,oBAAY,OAuGA;AA1CZ,0GA5DA,iCAAyB,OA4DA;AAzD3B,uDAAyC;AA6GvC,8BAAS;AA1GX,+DAAiD;AA+F/C,sCAAa;AA9Ff,sDAAwC;AA2GtC,0BAAO;AA1GT,uDAAyC;AAgHvC,8BAAS;AA/GX,mDAAqC;AAgHnC,0BAAO;AA/GT,+CAAiC;AA+F/B,sBAAK;AA9FP,yEAA2D;AAyGzD,gCAAU;AAxGZ,6EAA+D;AA0G7D,oCAAY;AAxGd,mCAoCiB;AAYf,yFA/CA,gBAAQ,OA+CA;AACR,+FA/CA,sBAAc,OA+CA;AAEd,wFAhDA,eAAO,OAgDA;AACP,oGAhDA,2BAAmB,OAgDA;AACnB,8FAhDA,qBAAa,OAgDA;AACb,gGAhDA,uBAAe,OAgDA;AACf,yFAhDA,gBAAQ,OAgDA;AACR,gGAhDA,uBAAe,OAgDA;AACf,gGAhDA,uBAAe,OAgDA;AACf,0GAhDA,iCAAyB,OAgDA;AACzB,2GAhDA,kCAA0B,OAgDA;AAC1B,mGAhDA,0BAAkB,OAgDA;AAElB,2FAjDA,kBAAU,OAiDA;AAGV,0FAnDA,iBAAS,OAmDA;AACT,iGAnDA,wBAAgB,OAmDA;AAChB,kGAnDA,yBAAiB,OAmDA;AACjB,kGAnDA,yBAAiB,OAmDA;AACjB,sGAnDA,6BAAqB,OAmDA;AACrB,kGAnDA,yBAAiB,OAmDA;AAPjB,+FA3CA,sBAAc,OA2CA;AACd,mGA3CA,0BAAkB,OA2CA;AAgBlB,sGA1DA,6BAAqB,OA0DA;AACrB,mGA1DA,0BAAkB,OA0DA;AAClB,mGA1DA,0BAAkB,OA0DA;AAClB,0GA1DA,iCAAyB,OA0DA;AACzB,kHA1DA,yCAAiC,OA0DA;AANjC,wGAnDA,+BAAuB,OAmDA;AAOvB,0FAzDA,iBAAS,OAyDA;AAdT,0FA1CA,iBAAS,OA0CA;AACT,8FA1CA,qBAAa,OA0CA;AACb,4FA1CA,mBAAW,OA0CA;AACX,iGA1CA,wBAAgB,OA0CA;AAChB,+FA1CA,sBAAc,OA0CA;AAed,8FAxDA,qBAAa,OAwDA;AAdb,iGAzCA,wBAAgB,OAyCA;AAtClB,+CAAiC;AA0D/B,sBAAK"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseTool } from './base';
|
|
2
|
+
import { PublicToolProps, ToolProps, EventTypes } from '../types';
|
|
3
|
+
declare class StackRotateTool extends BaseTool {
|
|
4
|
+
static toolName: any;
|
|
5
|
+
touchDragCallback: (evt: EventTypes.MouseDragEventType) => void;
|
|
6
|
+
mouseDragCallback: (evt: EventTypes.MouseDragEventType) => void;
|
|
7
|
+
constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
|
|
8
|
+
_dragCallback(evt: EventTypes.MouseDragEventType): void;
|
|
9
|
+
}
|
|
10
|
+
export default StackRotateTool;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const core_1 = require("@cornerstonejs/core");
|
|
7
|
+
const gl_matrix_1 = require("gl-matrix");
|
|
8
|
+
const base_1 = require("./base");
|
|
9
|
+
const angleBetweenLines_1 = __importDefault(require("../utilities/math/angle/angleBetweenLines"));
|
|
10
|
+
class StackRotateTool extends base_1.BaseTool {
|
|
11
|
+
constructor(toolProps = {}, defaultToolProps = {
|
|
12
|
+
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
13
|
+
}) {
|
|
14
|
+
super(toolProps, defaultToolProps);
|
|
15
|
+
this.touchDragCallback = this._dragCallback.bind(this);
|
|
16
|
+
this.mouseDragCallback = this._dragCallback.bind(this);
|
|
17
|
+
}
|
|
18
|
+
_dragCallback(evt) {
|
|
19
|
+
const { element, currentPoints, startPoints } = evt.detail;
|
|
20
|
+
const currentPointWorld = currentPoints.world;
|
|
21
|
+
const startPointWorld = startPoints.world;
|
|
22
|
+
const enabledElement = (0, core_1.getEnabledElement)(element);
|
|
23
|
+
const { viewport } = enabledElement;
|
|
24
|
+
const camera = viewport.getCamera();
|
|
25
|
+
const width = element.clientWidth;
|
|
26
|
+
const height = element.clientHeight;
|
|
27
|
+
const centerCanvas = [width * 0.5, height * 0.5];
|
|
28
|
+
const centerWorld = viewport.canvasToWorld(centerCanvas);
|
|
29
|
+
let angle = (0, angleBetweenLines_1.default)([startPointWorld, centerWorld], [centerWorld, currentPointWorld]);
|
|
30
|
+
const { viewPlaneNormal } = camera;
|
|
31
|
+
const v1 = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), centerWorld, startPointWorld);
|
|
32
|
+
const v2 = gl_matrix_1.vec3.sub(gl_matrix_1.vec3.create(), centerWorld, currentPointWorld);
|
|
33
|
+
const cross = gl_matrix_1.vec3.cross(gl_matrix_1.vec3.create(), v1, v2);
|
|
34
|
+
if (gl_matrix_1.vec3.dot(viewPlaneNormal, cross) > 0) {
|
|
35
|
+
angle = -angle;
|
|
36
|
+
}
|
|
37
|
+
if (Number.isNaN(angle))
|
|
38
|
+
return;
|
|
39
|
+
const { rotation } = viewport.getProperties();
|
|
40
|
+
viewport.setProperties({ rotation: rotation + angle });
|
|
41
|
+
viewport.render();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
StackRotateTool.toolName = 'StackRotate';
|
|
45
|
+
exports.default = StackRotateTool;
|
|
46
|
+
//# sourceMappingURL=StackRotateTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackRotateTool.js","sourceRoot":"","sources":["../../../src/tools/StackRotateTool.ts"],"names":[],"mappings":";;;;;AAAA,8CAA+D;AAC/D,yCAAiC;AACjC,iCAAkC;AAClC,kGAA0E;AAO1E,MAAM,eAAgB,SAAQ,eAAQ;IAKpC,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC9C;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,GAAkC;QAC9C,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;QAC9C,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC;QAC1C,MAAM,cAAc,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QAEpC,MAAM,YAAY,GAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAI,KAAK,GAAG,IAAA,2BAAiB,EAC3B,CAAC,eAAe,EAAE,WAAW,CAAC,EAC9B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CACjC,CAAC;QAEF,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QAEnC,MAAM,EAAE,GAAG,gBAAI,CAAC,GAAG,CAAC,gBAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,gBAAI,CAAC,GAAG,CAAC,gBAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,gBAAI,CAAC,KAAK,CAAC,gBAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,gBAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YACxC,KAAK,GAAG,CAAC,KAAK,CAAC;SAChB;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO;QAEhC,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;QAEvD,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED,eAAe,CAAC,QAAQ,GAAG,aAAa,CAAC;AACzC,kBAAe,eAAe,CAAC"}
|
|
@@ -3,6 +3,7 @@ import PanTool from './PanTool';
|
|
|
3
3
|
import TrackballRotateTool from './TrackballRotateTool';
|
|
4
4
|
import WindowLevelTool from './WindowLevelTool';
|
|
5
5
|
import StackScrollTool from './StackScrollTool';
|
|
6
|
+
import StackRotateTool from './StackRotateTool';
|
|
6
7
|
import StackScrollMouseWheelTool from './StackScrollToolMouseWheelTool';
|
|
7
8
|
import ZoomTool from './ZoomTool';
|
|
8
9
|
import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
|
|
@@ -31,4 +32,4 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
|
|
|
31
32
|
import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
|
|
32
33
|
import BrushTool from './segmentation/BrushTool';
|
|
33
34
|
import PaintFillTool from './segmentation/PaintFillTool';
|
|
34
|
-
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
|
35
|
+
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
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.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.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = 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.EllipticalROITool = exports.RectangleROITool = exports.ProbeTool = exports.LengthTool = exports.BidirectionalTool = exports.ReferenceLinesTool = exports.CrosshairsTool = exports.MIPJumpToClickTool = exports.VolumeRotateMouseWheelTool = exports.ZoomTool = exports.StackScrollMouseWheelTool = exports.StackRotateTool = exports.StackScrollTool = exports.WindowLevelTool = exports.DragProbeTool = exports.TrackballRotateTool = exports.PanTool = 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; } });
|
|
@@ -15,6 +15,8 @@ const WindowLevelTool_1 = __importDefault(require("./WindowLevelTool"));
|
|
|
15
15
|
exports.WindowLevelTool = WindowLevelTool_1.default;
|
|
16
16
|
const StackScrollTool_1 = __importDefault(require("./StackScrollTool"));
|
|
17
17
|
exports.StackScrollTool = StackScrollTool_1.default;
|
|
18
|
+
const StackRotateTool_1 = __importDefault(require("./StackRotateTool"));
|
|
19
|
+
exports.StackRotateTool = StackRotateTool_1.default;
|
|
18
20
|
const StackScrollToolMouseWheelTool_1 = __importDefault(require("./StackScrollToolMouseWheelTool"));
|
|
19
21
|
exports.StackScrollMouseWheelTool = StackScrollToolMouseWheelTool_1.default;
|
|
20
22
|
const ZoomTool_1 = __importDefault(require("./ZoomTool"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAkD;AA0ChD,yFA1CO,eAAQ,OA0CP;AACR,+FA3CiB,qBAAc,OA2CjB;AA1ChB,wDAAgC;AA4C9B,kBA5CK,iBAAO,CA4CL;AA3CT,gFAAwD;AA4CtD,8BA5CK,6BAAmB,CA4CL;AA3CrB,wEAAgD;AA6C9C,0BA7CK,yBAAe,CA6CL;AA5CjB,wEAAgD;AA6C9C,0BA7CK,yBAAe,CA6CL;AA5CjB,wEAAgD;AA6C9C,0BA7CK,yBAAe,CA6CL;AA5CjB,oGAAwE;AA6CtE,oCA7CK,uCAAyB,CA6CL;AA5C3B,0DAAkC;AA6ChC,mBA7CK,kBAAQ,CA6CL;AA5CV,8FAAsE;AA6CpE,qCA7CK,oCAA0B,CA6CL;AA5C5B,8EAAsD;AA6CpD,6BA7CK,4BAAkB,CA6CL;AA5CpB,sEAA8C;AA8C5C,yBA9CK,wBAAc,CA8CL;AA7ChB,gEAAwC;AAkEtC,sBAlEK,qBAAW,CAkEL;AAjEb,8EAAsD;AA6CpD,6BA7CK,4BAAkB,CA6CL;AA3CpB,uFAA+D;AA4C7D,4BA5CK,2BAAiB,CA4CL;AA3CnB,yEAAiD;AA4C/C,qBA5CK,oBAAU,CA4CL;AA3CZ,uEAA+C;AA4C7C,oBA5CK,mBAAS,CA4CL;AA3CX,+EAAuD;AA8BrD,wBA9BK,uBAAa,CA8BL;AA7Bf,qFAA6D;AA2C3D,2BA3CK,0BAAgB,CA2CL;AA1ClB,uFAA+D;AA2C7D,4BA3CK,2BAAiB,CA2CL;AA1CnB,+FAAuE;AA2CrE,gCA3CK,+BAAqB,CA2CL;AA1CvB,uFAA+D;AA2C7D,4BA3CK,2BAAiB,CA2CL;AA1CnB,uEAA+C;AA2C7C,oBA3CK,mBAAS,CA2CL;AA1CX,+EAAuD;AA2CrD,wBA3CK,uBAAa,CA2CL;AA1Cf,0EAAkD;AA2ChD,2BA3CK,0BAAgB,CA2CL;AA1ClB,8EAAkD;AAqDhD,yBArDK,4BAAc,CAqDL;AApDhB,0EAAkD;AAsDhD,2BAtDK,0BAAgB,CAsDL;AAnDlB,qGAA6E;AAwC3E,kCAxCK,iCAAuB,CAwCL;AArCzB,iGAAyE;AAuCvE,gCAvCK,+BAAqB,CAuCL;AAtCvB,2FAAmE;AAuCjE,6BAvCK,4BAAkB,CAuCL;AAtCpB,2FAAmE;AAuCjE,6BAvCK,4BAAkB,CAuCL;AAtCpB,yGAAiF;AAuC/E,oCAvCK,mCAAyB,CAuCL;AAtC3B,yHAAiG;AAuC/F,4CAvCK,2CAAiC,CAuCL;AAtCnC,yEAAiD;AAuC/C,oBAvCK,mBAAS,CAuCL;AAtCX,iFAAyD;AAyCvD,wBAzCK,uBAAa,CAyCL"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ import * as cursors from './cursors';
|
|
|
8
8
|
import * as Types from './types';
|
|
9
9
|
import * as annotation from './stateManagement/annotation';
|
|
10
10
|
import * as segmentation from './stateManagement/segmentation';
|
|
11
|
-
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
|
|
11
|
+
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool } from './tools';
|
|
12
12
|
import * as Enums from './enums';
|
|
13
|
-
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
|
13
|
+
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
package/dist/esm/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import * as cursors from './cursors';
|
|
|
8
8
|
import * as Types from './types';
|
|
9
9
|
import * as annotation from './stateManagement/annotation';
|
|
10
10
|
import * as segmentation from './stateManagement/segmentation';
|
|
11
|
-
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, } from './tools';
|
|
11
|
+
import { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, CrosshairsTool, ReferenceLinesTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, SegmentationDisplayTool, BrushTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, PaintFillTool, ScaleOverlayTool, } from './tools';
|
|
12
12
|
import * as Enums from './enums';
|
|
13
|
-
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
|
13
|
+
export { init, destroy, addTool, removeTool, cancelActiveManipulations, BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, ZoomTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, LengthTool, CrosshairsTool, ReferenceLinesTool, ProbeTool, RectangleROITool, EllipticalROITool, BidirectionalTool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, MagnifyTool, ReferenceCursors, ReferenceLines, ScaleOverlayTool, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, synchronizers, Synchronizer, SynchronizerManager, PaintFillTool, Types, state, ToolGroupManager, Enums, CONSTANTS, drawing, annotation, segmentation, utilities, cursors, };
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAEL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,EACV,yBAAyB,EAEzB,QAAQ,EACR,cAAc,EAEd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAElB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EAET,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,KAAK,EAEL,gBAAgB,EAEhB,KAAK,EAEL,SAAS,EAET,OAAO,EAEP,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,OAAO,GACR,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,YAAY,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAEL,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,EACV,yBAAyB,EAEzB,QAAQ,EACR,cAAc,EAEd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAElB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EAET,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,KAAK,EACL,KAAK,EAEL,gBAAgB,EAEhB,KAAK,EAEL,SAAS,EAET,OAAO,EAEP,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,OAAO,GACR,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseTool } from './base';
|
|
2
|
+
import { PublicToolProps, ToolProps, EventTypes } from '../types';
|
|
3
|
+
declare class StackRotateTool extends BaseTool {
|
|
4
|
+
static toolName: any;
|
|
5
|
+
touchDragCallback: (evt: EventTypes.MouseDragEventType) => void;
|
|
6
|
+
mouseDragCallback: (evt: EventTypes.MouseDragEventType) => void;
|
|
7
|
+
constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
|
|
8
|
+
_dragCallback(evt: EventTypes.MouseDragEventType): void;
|
|
9
|
+
}
|
|
10
|
+
export default StackRotateTool;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getEnabledElement } from '@cornerstonejs/core';
|
|
2
|
+
import { vec3 } from 'gl-matrix';
|
|
3
|
+
import { BaseTool } from './base';
|
|
4
|
+
import angleBetweenLines from '../utilities/math/angle/angleBetweenLines';
|
|
5
|
+
class StackRotateTool extends BaseTool {
|
|
6
|
+
constructor(toolProps = {}, defaultToolProps = {
|
|
7
|
+
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
8
|
+
}) {
|
|
9
|
+
super(toolProps, defaultToolProps);
|
|
10
|
+
this.touchDragCallback = this._dragCallback.bind(this);
|
|
11
|
+
this.mouseDragCallback = this._dragCallback.bind(this);
|
|
12
|
+
}
|
|
13
|
+
_dragCallback(evt) {
|
|
14
|
+
const { element, currentPoints, startPoints } = evt.detail;
|
|
15
|
+
const currentPointWorld = currentPoints.world;
|
|
16
|
+
const startPointWorld = startPoints.world;
|
|
17
|
+
const enabledElement = getEnabledElement(element);
|
|
18
|
+
const { viewport } = enabledElement;
|
|
19
|
+
const camera = viewport.getCamera();
|
|
20
|
+
const width = element.clientWidth;
|
|
21
|
+
const height = element.clientHeight;
|
|
22
|
+
const centerCanvas = [width * 0.5, height * 0.5];
|
|
23
|
+
const centerWorld = viewport.canvasToWorld(centerCanvas);
|
|
24
|
+
let angle = angleBetweenLines([startPointWorld, centerWorld], [centerWorld, currentPointWorld]);
|
|
25
|
+
const { viewPlaneNormal } = camera;
|
|
26
|
+
const v1 = vec3.sub(vec3.create(), centerWorld, startPointWorld);
|
|
27
|
+
const v2 = vec3.sub(vec3.create(), centerWorld, currentPointWorld);
|
|
28
|
+
const cross = vec3.cross(vec3.create(), v1, v2);
|
|
29
|
+
if (vec3.dot(viewPlaneNormal, cross) > 0) {
|
|
30
|
+
angle = -angle;
|
|
31
|
+
}
|
|
32
|
+
if (Number.isNaN(angle))
|
|
33
|
+
return;
|
|
34
|
+
const { rotation } = viewport.getProperties();
|
|
35
|
+
viewport.setProperties({ rotation: rotation + angle });
|
|
36
|
+
viewport.render();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
StackRotateTool.toolName = 'StackRotate';
|
|
40
|
+
export default StackRotateTool;
|
|
41
|
+
//# sourceMappingURL=StackRotateTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StackRotateTool.js","sourceRoot":"","sources":["../../../src/tools/StackRotateTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAS,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,iBAAiB,MAAM,2CAA2C,CAAC;AAO1E,MAAM,eAAgB,SAAQ,QAAQ;IAKpC,YACE,YAA6B,EAAE,EAC/B,mBAA8B;QAC5B,yBAAyB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC9C;QAED,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,GAAkC;QAC9C,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC3D,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC;QAC9C,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,CAAC;QAC1C,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAClC,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QAEpC,MAAM,YAAY,GAAiB,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAEzD,IAAI,KAAK,GAAG,iBAAiB,CAC3B,CAAC,eAAe,EAAE,WAAW,CAAC,EAC9B,CAAC,WAAW,EAAE,iBAAiB,CAAC,CACjC,CAAC;QAEF,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QAEnC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;YACxC,KAAK,GAAG,CAAC,KAAK,CAAC;SAChB;QAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO;QAEhC,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC;QAEvD,QAAQ,CAAC,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAED,eAAe,CAAC,QAAQ,GAAG,aAAa,CAAC;AACzC,eAAe,eAAe,CAAC"}
|
|
@@ -3,6 +3,7 @@ import PanTool from './PanTool';
|
|
|
3
3
|
import TrackballRotateTool from './TrackballRotateTool';
|
|
4
4
|
import WindowLevelTool from './WindowLevelTool';
|
|
5
5
|
import StackScrollTool from './StackScrollTool';
|
|
6
|
+
import StackRotateTool from './StackRotateTool';
|
|
6
7
|
import StackScrollMouseWheelTool from './StackScrollToolMouseWheelTool';
|
|
7
8
|
import ZoomTool from './ZoomTool';
|
|
8
9
|
import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
|
|
@@ -31,4 +32,4 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
|
|
|
31
32
|
import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
|
|
32
33
|
import BrushTool from './segmentation/BrushTool';
|
|
33
34
|
import PaintFillTool from './segmentation/PaintFillTool';
|
|
34
|
-
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
|
35
|
+
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
package/dist/esm/tools/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import PanTool from './PanTool';
|
|
|
3
3
|
import TrackballRotateTool from './TrackballRotateTool';
|
|
4
4
|
import WindowLevelTool from './WindowLevelTool';
|
|
5
5
|
import StackScrollTool from './StackScrollTool';
|
|
6
|
+
import StackRotateTool from './StackRotateTool';
|
|
6
7
|
import StackScrollMouseWheelTool from './StackScrollToolMouseWheelTool';
|
|
7
8
|
import ZoomTool from './ZoomTool';
|
|
8
9
|
import VolumeRotateMouseWheelTool from './VolumeRotateMouseWheelTool';
|
|
@@ -31,5 +32,5 @@ import RectangleROIThresholdTool from './segmentation/RectangleROIThresholdTool'
|
|
|
31
32
|
import RectangleROIStartEndThresholdTool from './segmentation/RectangleROIStartEndThresholdTool';
|
|
32
33
|
import BrushTool from './segmentation/BrushTool';
|
|
33
34
|
import PaintFillTool from './segmentation/PaintFillTool';
|
|
34
|
-
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
|
35
|
+
export { BaseTool, AnnotationTool, PanTool, TrackballRotateTool, DragProbeTool, WindowLevelTool, StackScrollTool, StackRotateTool, StackScrollMouseWheelTool, ZoomTool, VolumeRotateMouseWheelTool, MIPJumpToClickTool, CrosshairsTool, ReferenceLinesTool, BidirectionalTool, LengthTool, ProbeTool, RectangleROITool, EllipticalROITool, PlanarFreehandROITool, ArrowAnnotateTool, AngleTool, CobbAngleTool, ReferenceCursors, SegmentationDisplayTool, RectangleScissorsTool, CircleScissorsTool, SphereScissorsTool, RectangleROIThresholdTool, RectangleROIStartEndThresholdTool, BrushTool, MagnifyTool, ReferenceLines, PaintFillTool, ScaleOverlayTool, };
|
|
35
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AACxE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAG7E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,iCAAiC,MAAM,kDAAkD,CAAC;AACjG,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAEL,QAAQ,EACR,cAAc,EAEd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAElB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AACxE,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,qBAAqB,MAAM,oCAAoC,CAAC;AACvE,OAAO,iBAAiB,MAAM,gCAAgC,CAAC;AAC/D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAGlD,OAAO,uBAAuB,MAAM,wCAAwC,CAAC;AAG7E,OAAO,qBAAqB,MAAM,sCAAsC,CAAC;AACzE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,kBAAkB,MAAM,mCAAmC,CAAC;AACnE,OAAO,yBAAyB,MAAM,0CAA0C,CAAC;AACjF,OAAO,iCAAiC,MAAM,kDAAkD,CAAC;AACjG,OAAO,SAAS,MAAM,0BAA0B,CAAC;AACjD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAEL,QAAQ,EACR,cAAc,EAEd,OAAO,EACP,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAElB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,gBAAgB,EAEhB,uBAAuB,EAEvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,iCAAiC,EACjC,SAAS,EACT,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,CAAC"}
|