@cornerstonejs/tools 1.70.8 → 1.70.9
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/tools/TrackballRotateTool.d.ts +5 -0
- package/dist/cjs/tools/TrackballRotateTool.js +42 -0
- package/dist/cjs/tools/TrackballRotateTool.js.map +1 -1
- package/dist/esm/tools/TrackballRotateTool.js +43 -1
- package/dist/esm/tools/TrackballRotateTool.js.map +1 -1
- package/dist/types/tools/TrackballRotateTool.d.ts +5 -0
- package/dist/types/tools/TrackballRotateTool.d.ts.map +1 -1
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
- package/src/tools/TrackballRotateTool.ts +70 -1
|
@@ -5,8 +5,13 @@ declare class TrackballRotateTool extends BaseTool {
|
|
|
5
5
|
touchDragCallback: (evt: EventTypes.InteractionEventType) => void;
|
|
6
6
|
mouseDragCallback: (evt: EventTypes.InteractionEventType) => void;
|
|
7
7
|
cleanUp: () => void;
|
|
8
|
+
_resizeObservers: Map<any, any>;
|
|
9
|
+
_viewportAddedListener: (evt: any) => void;
|
|
8
10
|
constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
|
|
9
11
|
preMouseDownCallback: (evt: EventTypes.InteractionEventType) => boolean;
|
|
12
|
+
_getViewportsInfo: () => any[];
|
|
13
|
+
onSetToolActive: () => void;
|
|
14
|
+
onSetToolDisabled: () => void;
|
|
10
15
|
rotateCamera: (viewport: any, centerWorld: any, axis: any, angle: any) => void;
|
|
11
16
|
_dragCallback(evt: EventTypes.InteractionEventType): void;
|
|
12
17
|
}
|
|
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const Math_1 = __importDefault(require("@kitware/vtk.js/Common/Core/Math"));
|
|
7
|
+
const enums_1 = require("../enums");
|
|
7
8
|
const core_1 = require("@cornerstonejs/core");
|
|
8
9
|
const gl_matrix_1 = require("gl-matrix");
|
|
9
10
|
const base_1 = require("./base");
|
|
11
|
+
const ToolGroupManager_1 = require("../store/ToolGroupManager");
|
|
10
12
|
class TrackballRotateTool extends base_1.BaseTool {
|
|
11
13
|
constructor(toolProps = {}, defaultToolProps = {
|
|
12
14
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -15,6 +17,7 @@ class TrackballRotateTool extends base_1.BaseTool {
|
|
|
15
17
|
},
|
|
16
18
|
}) {
|
|
17
19
|
super(toolProps, defaultToolProps);
|
|
20
|
+
this._resizeObservers = new Map();
|
|
18
21
|
this.preMouseDownCallback = (evt) => {
|
|
19
22
|
const eventDetail = evt.detail;
|
|
20
23
|
const { element } = eventDetail;
|
|
@@ -35,6 +38,45 @@ class TrackballRotateTool extends base_1.BaseTool {
|
|
|
35
38
|
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
36
39
|
return true;
|
|
37
40
|
};
|
|
41
|
+
this._getViewportsInfo = () => {
|
|
42
|
+
const viewports = (0, ToolGroupManager_1.getToolGroup)(this.toolGroupId).viewportsInfo;
|
|
43
|
+
return viewports;
|
|
44
|
+
};
|
|
45
|
+
this.onSetToolActive = () => {
|
|
46
|
+
const subscribeToElementResize = () => {
|
|
47
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
48
|
+
viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
|
|
49
|
+
if (!this._resizeObservers.has(viewportId)) {
|
|
50
|
+
const { viewport } = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
51
|
+
const { element } = viewport;
|
|
52
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
53
|
+
const { viewport } = (0, core_1.getEnabledElementByIds)(viewportId, renderingEngineId);
|
|
54
|
+
viewport.resetCamera();
|
|
55
|
+
viewport.render();
|
|
56
|
+
});
|
|
57
|
+
resizeObserver.observe(element);
|
|
58
|
+
this._resizeObservers.set(viewportId, resizeObserver);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
subscribeToElementResize();
|
|
63
|
+
this._viewportAddedListener = (evt) => {
|
|
64
|
+
if (evt.detail.toolGroupId === this.toolGroupId) {
|
|
65
|
+
subscribeToElementResize();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
core_1.eventTarget.addEventListener(enums_1.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
69
|
+
};
|
|
70
|
+
this.onSetToolDisabled = () => {
|
|
71
|
+
this._resizeObservers.forEach((resizeObserver, viewportId) => {
|
|
72
|
+
resizeObserver.disconnect();
|
|
73
|
+
this._resizeObservers.delete(viewportId);
|
|
74
|
+
});
|
|
75
|
+
if (this._viewportAddedListener) {
|
|
76
|
+
core_1.eventTarget.removeEventListener(enums_1.Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
77
|
+
this._viewportAddedListener = null;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
38
80
|
this.rotateCamera = (viewport, centerWorld, axis, angle) => {
|
|
39
81
|
const vtkCamera = viewport.getVtkActiveCamera();
|
|
40
82
|
const viewUp = vtkCamera.getViewUp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackballRotateTool.js","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuD;
|
|
1
|
+
{"version":3,"file":"TrackballRotateTool.js","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import vtkMath from '@kitware/vtk.js/Common/Core/Math';
|
|
2
|
-
import {
|
|
2
|
+
import { Events } from '../enums';
|
|
3
|
+
import { eventTarget, getEnabledElement, getEnabledElementByIds, } from '@cornerstonejs/core';
|
|
3
4
|
import { mat4, vec3 } from 'gl-matrix';
|
|
4
5
|
import { BaseTool } from './base';
|
|
6
|
+
import { getToolGroup } from '../store/ToolGroupManager';
|
|
5
7
|
class TrackballRotateTool extends BaseTool {
|
|
6
8
|
constructor(toolProps = {}, defaultToolProps = {
|
|
7
9
|
supportedInteractionTypes: ['Mouse', 'Touch'],
|
|
@@ -10,6 +12,7 @@ class TrackballRotateTool extends BaseTool {
|
|
|
10
12
|
},
|
|
11
13
|
}) {
|
|
12
14
|
super(toolProps, defaultToolProps);
|
|
15
|
+
this._resizeObservers = new Map();
|
|
13
16
|
this.preMouseDownCallback = (evt) => {
|
|
14
17
|
const eventDetail = evt.detail;
|
|
15
18
|
const { element } = eventDetail;
|
|
@@ -30,6 +33,45 @@ class TrackballRotateTool extends BaseTool {
|
|
|
30
33
|
document.addEventListener('mouseup', this.cleanUp, { once: true });
|
|
31
34
|
return true;
|
|
32
35
|
};
|
|
36
|
+
this._getViewportsInfo = () => {
|
|
37
|
+
const viewports = getToolGroup(this.toolGroupId).viewportsInfo;
|
|
38
|
+
return viewports;
|
|
39
|
+
};
|
|
40
|
+
this.onSetToolActive = () => {
|
|
41
|
+
const subscribeToElementResize = () => {
|
|
42
|
+
const viewportsInfo = this._getViewportsInfo();
|
|
43
|
+
viewportsInfo.forEach(({ viewportId, renderingEngineId }) => {
|
|
44
|
+
if (!this._resizeObservers.has(viewportId)) {
|
|
45
|
+
const { viewport } = getEnabledElementByIds(viewportId, renderingEngineId);
|
|
46
|
+
const { element } = viewport;
|
|
47
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
48
|
+
const { viewport } = getEnabledElementByIds(viewportId, renderingEngineId);
|
|
49
|
+
viewport.resetCamera();
|
|
50
|
+
viewport.render();
|
|
51
|
+
});
|
|
52
|
+
resizeObserver.observe(element);
|
|
53
|
+
this._resizeObservers.set(viewportId, resizeObserver);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
subscribeToElementResize();
|
|
58
|
+
this._viewportAddedListener = (evt) => {
|
|
59
|
+
if (evt.detail.toolGroupId === this.toolGroupId) {
|
|
60
|
+
subscribeToElementResize();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
eventTarget.addEventListener(Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
64
|
+
};
|
|
65
|
+
this.onSetToolDisabled = () => {
|
|
66
|
+
this._resizeObservers.forEach((resizeObserver, viewportId) => {
|
|
67
|
+
resizeObserver.disconnect();
|
|
68
|
+
this._resizeObservers.delete(viewportId);
|
|
69
|
+
});
|
|
70
|
+
if (this._viewportAddedListener) {
|
|
71
|
+
eventTarget.removeEventListener(Events.TOOLGROUP_VIEWPORT_ADDED, this._viewportAddedListener);
|
|
72
|
+
this._viewportAddedListener = null;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
33
75
|
this.rotateCamera = (viewport, centerWorld, axis, angle) => {
|
|
34
76
|
const vtkCamera = viewport.getVtkActiveCamera();
|
|
35
77
|
const viewUp = vtkCamera.getViewUp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackballRotateTool.js","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"TrackballRotateTool.js","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,13 @@ declare class TrackballRotateTool extends BaseTool {
|
|
|
5
5
|
touchDragCallback: (evt: EventTypes.InteractionEventType) => void;
|
|
6
6
|
mouseDragCallback: (evt: EventTypes.InteractionEventType) => void;
|
|
7
7
|
cleanUp: () => void;
|
|
8
|
+
_resizeObservers: Map<any, any>;
|
|
9
|
+
_viewportAddedListener: (evt: any) => void;
|
|
8
10
|
constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps);
|
|
9
11
|
preMouseDownCallback: (evt: EventTypes.InteractionEventType) => boolean;
|
|
12
|
+
_getViewportsInfo: () => any[];
|
|
13
|
+
onSetToolActive: () => void;
|
|
14
|
+
onSetToolDisabled: () => void;
|
|
10
15
|
rotateCamera: (viewport: any, centerWorld: any, axis: any, angle: any) => void;
|
|
11
16
|
_dragCallback(evt: EventTypes.InteractionEventType): void;
|
|
12
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrackballRotateTool.d.ts","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TrackballRotateTool.d.ts","sourceRoot":"","sources":["../../../src/tools/TrackballRotateTool.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,cAAM,mBAAoB,SAAQ,QAAQ;IACxC,MAAM,CAAC,QAAQ,MAAC;IAChB,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAClE,iBAAiB,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,oBAAoB,KAAK,IAAI,CAAC;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,gBAAa;IAC7B,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;gBAGzC,SAAS,GAAE,eAAoB,EAC/B,gBAAgB,GAAE,SAKjB;IAQH,oBAAoB,QAAS,WAAW,oBAAoB,aAyB1D;IAEF,iBAAiB,cAIf;IAEF,eAAe,aAsCb;IAEF,iBAAiB,aAcf;IAEF,YAAY,mEA8BV;IAIF,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,oBAAoB,GAAG,IAAI;CAyE1D;AAGD,eAAe,mBAAmB,CAAC"}
|