copper3d 2.0.9 → 2.1.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/Renderer/baseRenderer.js +5 -2
- package/dist/Renderer/baseRenderer.js.map +1 -1
- package/dist/Renderer/copperRenderer.js +3 -1
- package/dist/Renderer/copperRenderer.js.map +1 -1
- package/dist/Utils/segmentation/CommToolsData.d.ts +4 -0
- package/dist/Utils/segmentation/CommToolsData.js +17 -0
- package/dist/Utils/segmentation/CommToolsData.js.map +1 -1
- package/dist/Utils/segmentation/DrawToolCore.d.ts +17 -0
- package/dist/Utils/segmentation/DrawToolCore.js +211 -40
- package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
- package/dist/Utils/segmentation/NrrdTools.d.ts +3 -2
- package/dist/Utils/segmentation/NrrdTools.js +23 -4
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/coreType.d.ts +20 -0
- package/dist/Utils/segmentation/coreTools/coreType.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/gui.js +57 -0
- package/dist/Utils/segmentation/coreTools/gui.js.map +1 -1
- package/dist/bundle.esm.js +318 -49
- package/dist/bundle.umd.js +318 -49
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/types/Utils/segmentation/CommToolsData.d.ts +4 -0
- package/dist/types/Utils/segmentation/DrawToolCore.d.ts +17 -0
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +3 -2
- package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +20 -0
- package/dist/types/index.d.ts +3 -3
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ import Stats from "three/examples/jsm/libs/stats.module";
|
|
|
6
6
|
import { GUI } from "dat.gui";
|
|
7
7
|
export class baseRenderer {
|
|
8
8
|
constructor(container, options) {
|
|
9
|
-
var _a, _b, _c, _d;
|
|
9
|
+
var _a, _b, _c, _d, _e;
|
|
10
10
|
this.visualCtrls = [];
|
|
11
11
|
this.container = container;
|
|
12
12
|
this.options = options;
|
|
@@ -36,7 +36,7 @@ export class baseRenderer {
|
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
this.currentScene.sceneName = "default";
|
|
39
|
-
!!this.currentScene.vignette &&
|
|
39
|
+
(!!this.currentScene.vignette && !(!!((_e = this.options) === null || _e === void 0 ? void 0 : _e.alpha))) &&
|
|
40
40
|
this.updateEnvironment(this.currentScene.vignette);
|
|
41
41
|
this.state = {
|
|
42
42
|
playbackSpeed: 1.0,
|
|
@@ -68,6 +68,9 @@ export class baseRenderer {
|
|
|
68
68
|
this.container.appendChild(this.renderer.domElement);
|
|
69
69
|
}
|
|
70
70
|
updateEnvironment(vignette) {
|
|
71
|
+
var _a;
|
|
72
|
+
if (!!((_a = this.options) === null || _a === void 0 ? void 0 : _a.alpha))
|
|
73
|
+
return;
|
|
71
74
|
const environment = environments.filter((entry) => entry.name === "Venice Sunset")[0];
|
|
72
75
|
this.getCubeMapTexture(environment).then((envMap) => {
|
|
73
76
|
const currentScene = this.getCurrentScene();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseRenderer.js","sourceRoot":"","sources":["../../src/Renderer/baseRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAmB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,MAAM,sCAAsC,CAAC;AACzD,OAAO,EAAE,GAAG,EAAiB,MAAM,SAAS,CAAC;AAO7C,MAAM,OAAO,YAAY;IAiBvB,YAAY,SAAyB,EAAE,OAA0B;;QAHzD,gBAAW,GAAyB,EAAE,CAAC;QAI7C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC;YACtC,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAA;YAC5B,sBAAsB,EAAE,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,sBAAsB,CAAA;SAC/D,CAAC,CAAC;QACH,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QAED,wCAAwC;QACxC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,4BAA4B,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,CAAA,EAAE;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC/D,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;gBAC/D,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"baseRenderer.js","sourceRoot":"","sources":["../../src/Renderer/baseRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,7 +67,9 @@ export class copperRenderer extends baseRenderer {
|
|
|
67
67
|
alpha: alpha,
|
|
68
68
|
});
|
|
69
69
|
new_scene.sceneName = name;
|
|
70
|
-
|
|
70
|
+
if (!alpha) {
|
|
71
|
+
this.updateEnvironment(new_scene.vignette);
|
|
72
|
+
}
|
|
71
73
|
this.sceneMap[name] = new_scene;
|
|
72
74
|
return new_scene;
|
|
73
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copperRenderer.js","sourceRoot":"","sources":["../../src/Renderer/copperRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,cAAe,SAAQ,YAAY;IAS9C,YAAY,SAAyB,EAAE,OAA0B;QAC/D,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QATpB,aAAQ,GAAiB,EAAE,CAAC;QAC5B,QAAG,GAAW,EAAE,CAAC;QACjB,gBAAW,GAAgB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7C,UAAK,GAAW,CAAC,CAAC;QAClB,aAAQ,GAAW,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;QAExC,+BAA0B,GAAoB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"copperRenderer.js","sourceRoot":"","sources":["../../src/Renderer/copperRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ export declare class CommToolsData {
|
|
|
19
19
|
* Rewrite this {clearStoreImages} function under NrrdTools
|
|
20
20
|
*/
|
|
21
21
|
clearStoreImages(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Rewrite this {createEmptyPaintImage} function under NrrdTools
|
|
24
|
+
*/
|
|
25
|
+
createEmptyPaintImage(dimensions: Array<number>, paintImages: IPaintImages): void;
|
|
22
26
|
/**
|
|
23
27
|
* Rewrite this {resizePaintArea} function under NrrdTools
|
|
24
28
|
*/
|
|
@@ -32,6 +32,14 @@ export class CommToolsData {
|
|
|
32
32
|
cursorPageX: 0,
|
|
33
33
|
cursorPageY: 0,
|
|
34
34
|
sphereOrigin: { x: [0, 0, 0], y: [0, 0, 0], z: [0, 0, 0] },
|
|
35
|
+
tumourSphereOrigin: null,
|
|
36
|
+
skinSphereOrigin: null,
|
|
37
|
+
ribSphereOrigin: null,
|
|
38
|
+
nippleSphereOrigin: null,
|
|
39
|
+
tumourColor: "#00ff00",
|
|
40
|
+
skinColor: "#FFEB3B",
|
|
41
|
+
ribcageColor: "#2196F3",
|
|
42
|
+
nippleColor: "#E91E63",
|
|
35
43
|
spherePlanB: true,
|
|
36
44
|
sphereRadius: 10,
|
|
37
45
|
Mouse_Over_x: 0,
|
|
@@ -46,6 +54,7 @@ export class CommToolsData {
|
|
|
46
54
|
labels: ["label1", "label2", "label3"],
|
|
47
55
|
getMask: (mask, sliceId, label, width, height, clearAllFlag) => { },
|
|
48
56
|
getSphere: (sphereOrigin, sphereRadius) => { },
|
|
57
|
+
getCalculateSpherePositions: (tumourSphereOrigin, skinSphereOrigin, ribSphereOrigin, nippleSphereOrigin, aixs) => { },
|
|
49
58
|
drawStartPos: { x: 1, y: 1 },
|
|
50
59
|
};
|
|
51
60
|
this.cursorPage = {
|
|
@@ -81,7 +90,9 @@ export class CommToolsData {
|
|
|
81
90
|
brushAndEraserSize: 15,
|
|
82
91
|
cursor: "dot",
|
|
83
92
|
label: "label1",
|
|
93
|
+
cal_distance: "tumour",
|
|
84
94
|
sphere: false,
|
|
95
|
+
calculator: false,
|
|
85
96
|
readyToUpdate: true,
|
|
86
97
|
defaultPaintCursor: switchPencilIcon("dot"),
|
|
87
98
|
max_sensitive: 100,
|
|
@@ -191,6 +202,12 @@ export class CommToolsData {
|
|
|
191
202
|
clearStoreImages() {
|
|
192
203
|
throw new Error("Child class must implement abstract clearStoreImages, currently you can find it in NrrdTools.");
|
|
193
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Rewrite this {createEmptyPaintImage} function under NrrdTools
|
|
207
|
+
*/
|
|
208
|
+
createEmptyPaintImage(dimensions, paintImages) {
|
|
209
|
+
throw new Error("Child class must implement abstract clearStoreImages, currently you can find it in NrrdTools.");
|
|
210
|
+
}
|
|
194
211
|
/**
|
|
195
212
|
* Rewrite this {resizePaintArea} function under NrrdTools
|
|
196
213
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommToolsData.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/CommToolsData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommToolsData.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/CommToolsData.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,10 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
15
15
|
setPencilIconUrls(urls: string[]): void;
|
|
16
16
|
private setCurrentLayer;
|
|
17
17
|
draw(opts?: IDrawOpts): void;
|
|
18
|
+
drawCalSphereDown(x: number, y: number, sliceIndex: number, cal_position: "tumour" | "skin" | "nipple" | "ribcage"): void;
|
|
19
|
+
drawCalSphereUp(): void;
|
|
20
|
+
private zoomActionAfterDrawSphere;
|
|
21
|
+
private clearSpherePrintStoreImages;
|
|
18
22
|
private paintOnCanvas;
|
|
19
23
|
/*************************************May consider to move outside *******************************************/
|
|
20
24
|
private drawLine;
|
|
@@ -25,13 +29,26 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
25
29
|
private configMouseZoomWheel;
|
|
26
30
|
private enableCrosshair;
|
|
27
31
|
drawImageOnEmptyImage(canvas: HTMLCanvasElement): void;
|
|
32
|
+
/****************************Sphere calculate distance functions****************************************************/
|
|
33
|
+
private getSpherePosition;
|
|
34
|
+
drawCalculatorSphereOnEachViews(axis: "x" | "y" | "z"): void;
|
|
28
35
|
/****************************Sphere functions****************************************************/
|
|
29
36
|
private storeSphereImages;
|
|
30
37
|
private drawSphereOnEachViews;
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param ctx draw sphere canvas ctx
|
|
41
|
+
* @param x width must be match the origin size, size factor 1, ignore the size factor
|
|
42
|
+
* @param y height must be match the origin size, size factor 1, ignore the size factor
|
|
43
|
+
* @param radius radius must be match the origin size, size factor 1, ignore the size factor
|
|
44
|
+
* @param color sphere color
|
|
45
|
+
*/
|
|
31
46
|
private drawSphereCore;
|
|
32
47
|
private setSphereCanvasSize;
|
|
33
48
|
private configMouseSphereWheel;
|
|
49
|
+
drawCalculatorSphere(radius: number): void;
|
|
34
50
|
drawSphere(mouseX: number, mouseY: number, radius: number): void;
|
|
51
|
+
private clearSphereCanvas;
|
|
35
52
|
/**
|
|
36
53
|
* We generate the MRI slice from threejs based on mm, but when we display it is based on pixel size/distance.
|
|
37
54
|
* So, the index munber on each axis (sagittal, axial, coronal) is the slice's depth in mm distance. And the width and height displayed on screen is the slice's width and height in pixel distance.
|
|
@@ -59,7 +59,7 @@ export class DrawToolCore extends CommToolsData {
|
|
|
59
59
|
initDrawToolCore() {
|
|
60
60
|
let undoFlag = false;
|
|
61
61
|
this.container.addEventListener("keydown", (ev) => {
|
|
62
|
-
if (ev.key === "Shift" && !this.gui_states.sphere) {
|
|
62
|
+
if (ev.key === "Shift" && !this.gui_states.sphere && !this.gui_states.calculator) {
|
|
63
63
|
if (this.protectedData.Is_Ctrl_Pressed) {
|
|
64
64
|
this.protectedData.Is_Shift_Pressed = false;
|
|
65
65
|
return;
|
|
@@ -136,9 +136,64 @@ export class DrawToolCore extends CommToolsData {
|
|
|
136
136
|
if (!!opts) {
|
|
137
137
|
this.nrrd_states.getMask = opts === null || opts === void 0 ? void 0 : opts.getMaskData;
|
|
138
138
|
this.nrrd_states.getSphere = opts === null || opts === void 0 ? void 0 : opts.getSphereData;
|
|
139
|
+
this.nrrd_states.getCalculateSpherePositions = opts === null || opts === void 0 ? void 0 : opts.getCalculateSpherePositionsData;
|
|
139
140
|
}
|
|
140
141
|
this.paintOnCanvas();
|
|
141
142
|
}
|
|
143
|
+
drawCalSphereDown(x, y, sliceIndex, cal_position) {
|
|
144
|
+
this.nrrd_states.sphereRadius = 5;
|
|
145
|
+
this.protectedData.canvases.drawingCanvas.removeEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
146
|
+
let mouseX = x / this.nrrd_states.sizeFoctor;
|
|
147
|
+
let mouseY = y / this.nrrd_states.sizeFoctor;
|
|
148
|
+
// record mouseX,Y, and enable crosshair function
|
|
149
|
+
this.nrrd_states.sphereOrigin[this.protectedData.axis] = [
|
|
150
|
+
mouseX,
|
|
151
|
+
mouseY,
|
|
152
|
+
sliceIndex,
|
|
153
|
+
];
|
|
154
|
+
this.setUpSphereOrigins(mouseX, mouseY, sliceIndex);
|
|
155
|
+
switch (cal_position) {
|
|
156
|
+
case "tumour":
|
|
157
|
+
this.nrrd_states.tumourSphereOrigin = JSON.parse(JSON.stringify(this.nrrd_states.sphereOrigin));
|
|
158
|
+
break;
|
|
159
|
+
case "skin":
|
|
160
|
+
this.nrrd_states.skinSphereOrigin = JSON.parse(JSON.stringify(this.nrrd_states.sphereOrigin));
|
|
161
|
+
break;
|
|
162
|
+
case "nipple":
|
|
163
|
+
this.nrrd_states.nippleSphereOrigin = JSON.parse(JSON.stringify(this.nrrd_states.sphereOrigin));
|
|
164
|
+
break;
|
|
165
|
+
case "ribcage":
|
|
166
|
+
this.nrrd_states.ribSphereOrigin = JSON.parse(JSON.stringify(this.nrrd_states.sphereOrigin));
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
this.nrrd_states.cursorPageX = mouseX;
|
|
170
|
+
this.nrrd_states.cursorPageY = mouseY;
|
|
171
|
+
this.enableCrosshair();
|
|
172
|
+
// draw circle setup width/height for sphere canvas
|
|
173
|
+
this.drawCalculatorSphere(this.nrrd_states.sphereRadius);
|
|
174
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
175
|
+
}
|
|
176
|
+
drawCalSphereUp() {
|
|
177
|
+
// TODO send data to outside
|
|
178
|
+
// this.clearStoreImages();
|
|
179
|
+
this.clearSpherePrintStoreImages();
|
|
180
|
+
this.drawCalculatorSphereOnEachViews("x");
|
|
181
|
+
this.drawCalculatorSphereOnEachViews("y");
|
|
182
|
+
this.drawCalculatorSphereOnEachViews("z");
|
|
183
|
+
!!this.nrrd_states.getCalculateSpherePositions &&
|
|
184
|
+
this.nrrd_states.getCalculateSpherePositions(this.nrrd_states.tumourSphereOrigin, this.nrrd_states.skinSphereOrigin, this.nrrd_states.ribSphereOrigin, this.nrrd_states.nippleSphereOrigin, this.protectedData.axis);
|
|
185
|
+
this.zoomActionAfterDrawSphere();
|
|
186
|
+
this.protectedData.canvases.drawingCanvas.removeEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
187
|
+
}
|
|
188
|
+
zoomActionAfterDrawSphere() {
|
|
189
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
190
|
+
}
|
|
191
|
+
clearSpherePrintStoreImages() {
|
|
192
|
+
this.protectedData.maskData.paintImages.x.length = 0;
|
|
193
|
+
this.protectedData.maskData.paintImages.y.length = 0;
|
|
194
|
+
this.protectedData.maskData.paintImages.z.length = 0;
|
|
195
|
+
this.createEmptyPaintImage(this.nrrd_states.dimensions, this.protectedData.maskData.paintImages);
|
|
196
|
+
}
|
|
142
197
|
paintOnCanvas() {
|
|
143
198
|
var _a, _b, _c;
|
|
144
199
|
/**
|
|
@@ -261,25 +316,13 @@ export class DrawToolCore extends CommToolsData {
|
|
|
261
316
|
this.nrrd_states.cursorPageY =
|
|
262
317
|
e.offsetY / this.nrrd_states.sizeFoctor;
|
|
263
318
|
this.enableCrosshair();
|
|
319
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
264
320
|
}
|
|
265
321
|
else if (this.gui_states.sphere && !this.nrrd_states.enableCursorChoose) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
this.nrrd_states.sphereOrigin[this.protectedData.axis] = [
|
|
271
|
-
mouseX,
|
|
272
|
-
mouseY,
|
|
273
|
-
this.nrrd_states.currentIndex,
|
|
274
|
-
];
|
|
275
|
-
this.setUpSphereOrigins(mouseX, mouseY);
|
|
276
|
-
this.nrrd_states.cursorPageX = mouseX;
|
|
277
|
-
this.nrrd_states.cursorPageY = mouseY;
|
|
278
|
-
this.enableCrosshair();
|
|
279
|
-
// draw circle setup width/height for sphere canvas
|
|
280
|
-
this.drawSphere(e.offsetX, e.offsetY, this.nrrd_states.sphereRadius);
|
|
281
|
-
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleSphereWheel, true);
|
|
282
|
-
this.protectedData.canvases.drawingCanvas.addEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
322
|
+
sphere(e);
|
|
323
|
+
}
|
|
324
|
+
else if (this.gui_states.calculator && !this.nrrd_states.enableCursorChoose) {
|
|
325
|
+
this.drawCalSphereDown(e.offsetX, e.offsetY, this.nrrd_states.currentIndex, this.gui_states.cal_distance);
|
|
283
326
|
}
|
|
284
327
|
}
|
|
285
328
|
else if (e.button === 2) {
|
|
@@ -298,6 +341,27 @@ export class DrawToolCore extends CommToolsData {
|
|
|
298
341
|
};
|
|
299
342
|
// disable browser right click menu
|
|
300
343
|
this.protectedData.canvases.drawingCanvas.addEventListener("pointerdown", this.drawingPrameters.handleOnDrawingMouseDown, true);
|
|
344
|
+
const sphere = (e) => {
|
|
345
|
+
// set sphere size
|
|
346
|
+
this.nrrd_states.sphereRadius = 10;
|
|
347
|
+
this.protectedData.canvases.drawingCanvas.removeEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
348
|
+
let mouseX = e.offsetX / this.nrrd_states.sizeFoctor;
|
|
349
|
+
let mouseY = e.offsetY / this.nrrd_states.sizeFoctor;
|
|
350
|
+
// record mouseX,Y, and enable crosshair function
|
|
351
|
+
this.nrrd_states.sphereOrigin[this.protectedData.axis] = [
|
|
352
|
+
mouseX,
|
|
353
|
+
mouseY,
|
|
354
|
+
this.nrrd_states.currentIndex,
|
|
355
|
+
];
|
|
356
|
+
this.setUpSphereOrigins(mouseX, mouseY, this.nrrd_states.currentIndex);
|
|
357
|
+
this.nrrd_states.cursorPageX = mouseX;
|
|
358
|
+
this.nrrd_states.cursorPageY = mouseY;
|
|
359
|
+
this.enableCrosshair();
|
|
360
|
+
// draw circle setup width/height for sphere canvas
|
|
361
|
+
this.drawSphere(mouseX, mouseY, this.nrrd_states.sphereRadius);
|
|
362
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleSphereWheel, true);
|
|
363
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
364
|
+
};
|
|
301
365
|
const redrawPreviousImageToLabelCtx = (ctx, label = "default") => {
|
|
302
366
|
var _a;
|
|
303
367
|
let paintImages;
|
|
@@ -391,7 +455,8 @@ export class DrawToolCore extends CommToolsData {
|
|
|
391
455
|
// findout all index in the sphere radius range in Axial view
|
|
392
456
|
if (this.nrrd_states.spherePlanB) {
|
|
393
457
|
// clear stroe images
|
|
394
|
-
this.clearStoreImages();
|
|
458
|
+
// this.clearStoreImages();
|
|
459
|
+
this.clearSpherePrintStoreImages();
|
|
395
460
|
for (let i = 0; i < this.nrrd_states.sphereRadius; i++) {
|
|
396
461
|
this.drawSphereOnEachViews(i, "x");
|
|
397
462
|
this.drawSphereOnEachViews(i, "y");
|
|
@@ -400,18 +465,31 @@ export class DrawToolCore extends CommToolsData {
|
|
|
400
465
|
}
|
|
401
466
|
!!this.nrrd_states.getSphere &&
|
|
402
467
|
this.nrrd_states.getSphere(this.nrrd_states.sphereOrigin.z, this.nrrd_states.sphereRadius / this.nrrd_states.sizeFoctor);
|
|
403
|
-
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
404
468
|
this.protectedData.canvases.drawingCanvas.removeEventListener("wheel", this.drawingPrameters.handleSphereWheel, true);
|
|
469
|
+
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
470
|
+
this.protectedData.canvases.drawingCanvas.removeEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
405
471
|
}
|
|
406
|
-
else if (this.gui_states.sphere &&
|
|
472
|
+
else if ((this.gui_states.sphere || this.gui_states.calculator) &&
|
|
407
473
|
this.nrrd_states.enableCursorChoose) {
|
|
408
474
|
this.protectedData.canvases.drawingCanvas.addEventListener("wheel", this.drawingPrameters.handleZoomWheel);
|
|
475
|
+
this.protectedData.canvases.drawingCanvas.removeEventListener("pointerup", this.drawingPrameters.handleOnDrawingMouseUp);
|
|
476
|
+
}
|
|
477
|
+
else if (this.gui_states.calculator &&
|
|
478
|
+
!this.nrrd_states.enableCursorChoose) {
|
|
479
|
+
// When mouse up
|
|
480
|
+
this.drawCalSphereUp();
|
|
409
481
|
}
|
|
410
482
|
}
|
|
411
483
|
else if (e.button === 2) {
|
|
412
484
|
rightclicked = false;
|
|
413
485
|
this.protectedData.canvases.drawingCanvas.style.cursor = "grab";
|
|
486
|
+
setTimeout(() => {
|
|
487
|
+
this.protectedData.canvases.drawingCanvas.style.cursor = this.gui_states.defaultPaintCursor;
|
|
488
|
+
}, 2000);
|
|
414
489
|
this.protectedData.canvases.drawingCanvas.removeEventListener("pointermove", this.drawingPrameters.handleOnPanMouseMove);
|
|
490
|
+
if (this.gui_states.sphere || this.gui_states.calculator) {
|
|
491
|
+
this.zoomActionAfterDrawSphere();
|
|
492
|
+
}
|
|
415
493
|
}
|
|
416
494
|
else {
|
|
417
495
|
return;
|
|
@@ -473,8 +551,8 @@ export class DrawToolCore extends CommToolsData {
|
|
|
473
551
|
this.protectedData.ctxes.drawingCtx.clearRect(0, 0, this.nrrd_states.changedWidth, this.nrrd_states.changedHeight);
|
|
474
552
|
const ex = this.nrrd_states.cursorPageX * this.nrrd_states.sizeFoctor;
|
|
475
553
|
const ey = this.nrrd_states.cursorPageY * this.nrrd_states.sizeFoctor;
|
|
476
|
-
this.drawLine(ex, 0, ex, this.
|
|
477
|
-
this.drawLine(0, ey, this.
|
|
554
|
+
this.drawLine(ex, 0, ex, this.nrrd_states.changedWidth);
|
|
555
|
+
this.drawLine(0, ey, this.nrrd_states.changedHeight, ey);
|
|
478
556
|
}
|
|
479
557
|
}
|
|
480
558
|
this.protectedData.ctxes.drawingCtx.drawImage(this.protectedData.canvases.drawingCanvasLayerMaster, 0, 0);
|
|
@@ -604,15 +682,17 @@ export class DrawToolCore extends CommToolsData {
|
|
|
604
682
|
moveDistance = w / this.nrrd_states.originWidth;
|
|
605
683
|
if (moveDistance > 8) {
|
|
606
684
|
moveDistance = 8;
|
|
685
|
+
this.resetPaintAreaUIPosition();
|
|
607
686
|
}
|
|
608
687
|
else if (moveDistance < 1) {
|
|
609
688
|
moveDistance = 1;
|
|
689
|
+
this.resetPaintAreaUIPosition();
|
|
610
690
|
}
|
|
611
691
|
else {
|
|
612
|
-
this.resizePaintArea(moveDistance);
|
|
613
692
|
this.resetPaintAreaUIPosition(l, t);
|
|
614
|
-
this.setIsDrawFalse(1000);
|
|
615
693
|
}
|
|
694
|
+
this.resizePaintArea(moveDistance);
|
|
695
|
+
this.setIsDrawFalse(1000);
|
|
616
696
|
this.nrrd_states.sizeFoctor = moveDistance;
|
|
617
697
|
};
|
|
618
698
|
return handleZoomWheelMove;
|
|
@@ -640,6 +720,60 @@ export class DrawToolCore extends CommToolsData {
|
|
|
640
720
|
drawImageOnEmptyImage(canvas) {
|
|
641
721
|
this.protectedData.ctxes.emptyCtx.drawImage(canvas, 0, 0, this.protectedData.canvases.emptyCanvas.width, this.protectedData.canvases.emptyCanvas.height);
|
|
642
722
|
}
|
|
723
|
+
/****************************Sphere calculate distance functions****************************************************/
|
|
724
|
+
getSpherePosition(position, axis) {
|
|
725
|
+
const mouseX = position[axis][0];
|
|
726
|
+
const mouseY = position[axis][1];
|
|
727
|
+
const sliceIndex = position[axis][2];
|
|
728
|
+
return { x: mouseX, y: mouseY, z: sliceIndex };
|
|
729
|
+
}
|
|
730
|
+
drawCalculatorSphereOnEachViews(axis) {
|
|
731
|
+
// init sphere canvas width and height
|
|
732
|
+
this.setSphereCanvasSize(axis);
|
|
733
|
+
// get drawingSphere canvas for storing
|
|
734
|
+
const ctx = this.protectedData.ctxes.drawingSphereCtx;
|
|
735
|
+
const canvas = this.protectedData.canvases.drawingSphereCanvas;
|
|
736
|
+
let tumourPosition = !!this.nrrd_states.tumourSphereOrigin ? Object.assign(this.getSpherePosition(this.nrrd_states.tumourSphereOrigin, axis), { color: this.nrrd_states.tumourColor }) : null;
|
|
737
|
+
let skinPosition = !!this.nrrd_states.skinSphereOrigin ? Object.assign(this.getSpherePosition(this.nrrd_states.skinSphereOrigin, axis), { color: this.nrrd_states.skinColor }) : null;
|
|
738
|
+
let ribcagePosition = !!this.nrrd_states.ribSphereOrigin ? Object.assign(this.getSpherePosition(this.nrrd_states.ribSphereOrigin, axis), { color: this.nrrd_states.ribcageColor }) : null;
|
|
739
|
+
let nipplePosition = !!this.nrrd_states.nippleSphereOrigin ? Object.assign(this.getSpherePosition(this.nrrd_states.nippleSphereOrigin, axis), { color: this.nrrd_states.nippleColor }) : null;
|
|
740
|
+
let positionGroup = [];
|
|
741
|
+
if (!!tumourPosition)
|
|
742
|
+
positionGroup.push(tumourPosition);
|
|
743
|
+
if (!!skinPosition)
|
|
744
|
+
positionGroup.push(skinPosition);
|
|
745
|
+
if (!!ribcagePosition)
|
|
746
|
+
positionGroup.push(ribcagePosition);
|
|
747
|
+
if (!!nipplePosition)
|
|
748
|
+
positionGroup.push(nipplePosition);
|
|
749
|
+
let copyPosition = JSON.parse(JSON.stringify(positionGroup));
|
|
750
|
+
let rePositionGroup = [];
|
|
751
|
+
// group same slice points
|
|
752
|
+
positionGroup.forEach((p) => {
|
|
753
|
+
let temp = [];
|
|
754
|
+
let sameIndex = [];
|
|
755
|
+
for (let i = 0; i < copyPosition.length; i++) {
|
|
756
|
+
if (p.z == copyPosition[i].z) {
|
|
757
|
+
temp.push(copyPosition[i]);
|
|
758
|
+
sameIndex.push(i);
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
sameIndex.reverse();
|
|
762
|
+
sameIndex.forEach(i => copyPosition.splice(i, 1));
|
|
763
|
+
if (temp.length > 0)
|
|
764
|
+
rePositionGroup.push(temp);
|
|
765
|
+
if (copyPosition.length == 0) {
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
});
|
|
769
|
+
rePositionGroup.forEach((group) => {
|
|
770
|
+
group.forEach(p => {
|
|
771
|
+
this.drawSphereCore(ctx, p.x, p.y, this.nrrd_states.sphereRadius, p.color);
|
|
772
|
+
});
|
|
773
|
+
this.storeSphereImages(group[0].z, axis);
|
|
774
|
+
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
775
|
+
});
|
|
776
|
+
}
|
|
643
777
|
/****************************Sphere functions****************************************************/
|
|
644
778
|
// for sphere
|
|
645
779
|
storeSphereImages(index, axis) {
|
|
@@ -659,21 +793,29 @@ export class DrawToolCore extends CommToolsData {
|
|
|
659
793
|
const ctx = this.protectedData.ctxes.drawingSphereCtx;
|
|
660
794
|
const canvas = this.protectedData.canvases.drawingSphereCanvas;
|
|
661
795
|
if (preIndex === nextIndex) {
|
|
662
|
-
this.drawSphereCore(ctx, mouseX, mouseY, this.nrrd_states.sphereRadius
|
|
796
|
+
this.drawSphereCore(ctx, mouseX, mouseY, this.nrrd_states.sphereRadius, this.gui_states.fillColor);
|
|
663
797
|
this.storeSphereImages(preIndex, axis);
|
|
664
798
|
}
|
|
665
799
|
else {
|
|
666
|
-
this.drawSphereCore(ctx, mouseX, mouseY, (this.nrrd_states.sphereRadius - decay)
|
|
800
|
+
this.drawSphereCore(ctx, mouseX, mouseY, (this.nrrd_states.sphereRadius - decay), this.gui_states.fillColor);
|
|
667
801
|
this.drawImageOnEmptyImage(canvas);
|
|
668
802
|
this.storeSphereImages(preIndex, axis);
|
|
669
803
|
this.storeSphereImages(nextIndex, axis);
|
|
670
804
|
}
|
|
671
805
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
|
672
806
|
}
|
|
673
|
-
|
|
807
|
+
/**
|
|
808
|
+
*
|
|
809
|
+
* @param ctx draw sphere canvas ctx
|
|
810
|
+
* @param x width must be match the origin size, size factor 1, ignore the size factor
|
|
811
|
+
* @param y height must be match the origin size, size factor 1, ignore the size factor
|
|
812
|
+
* @param radius radius must be match the origin size, size factor 1, ignore the size factor
|
|
813
|
+
* @param color sphere color
|
|
814
|
+
*/
|
|
815
|
+
drawSphereCore(ctx, x, y, radius, color) {
|
|
674
816
|
ctx.beginPath();
|
|
675
817
|
ctx.arc(x, y, radius, 0, 2 * Math.PI);
|
|
676
|
-
ctx.fillStyle =
|
|
818
|
+
ctx.fillStyle = color;
|
|
677
819
|
ctx.fill();
|
|
678
820
|
ctx.closePath();
|
|
679
821
|
}
|
|
@@ -718,17 +860,46 @@ export class DrawToolCore extends CommToolsData {
|
|
|
718
860
|
};
|
|
719
861
|
return sphereEvent;
|
|
720
862
|
}
|
|
863
|
+
drawCalculatorSphere(radius) {
|
|
864
|
+
// clear canvas
|
|
865
|
+
const [canvas, ctx] = this.clearSphereCanvas();
|
|
866
|
+
if (!!this.nrrd_states.tumourSphereOrigin && this.nrrd_states.tumourSphereOrigin[this.protectedData.axis][2] === this.nrrd_states.currentIndex) {
|
|
867
|
+
this.drawSphereCore(ctx, this.nrrd_states.tumourSphereOrigin[this.protectedData.axis][0], this.nrrd_states.tumourSphereOrigin[this.protectedData.axis][1], radius, this.nrrd_states.tumourColor);
|
|
868
|
+
}
|
|
869
|
+
if (!!this.nrrd_states.skinSphereOrigin && this.nrrd_states.skinSphereOrigin[this.protectedData.axis][2] === this.nrrd_states.currentIndex) {
|
|
870
|
+
this.drawSphereCore(ctx, this.nrrd_states.skinSphereOrigin[this.protectedData.axis][0], this.nrrd_states.skinSphereOrigin[this.protectedData.axis][1], radius, this.nrrd_states.skinColor);
|
|
871
|
+
}
|
|
872
|
+
if (!!this.nrrd_states.ribSphereOrigin && this.nrrd_states.ribSphereOrigin[this.protectedData.axis][2] === this.nrrd_states.currentIndex) {
|
|
873
|
+
this.drawSphereCore(ctx, this.nrrd_states.ribSphereOrigin[this.protectedData.axis][0], this.nrrd_states.ribSphereOrigin[this.protectedData.axis][1], radius, this.nrrd_states.ribcageColor);
|
|
874
|
+
}
|
|
875
|
+
if (!!this.nrrd_states.nippleSphereOrigin && this.nrrd_states.nippleSphereOrigin[this.protectedData.axis][2] === this.nrrd_states.currentIndex) {
|
|
876
|
+
this.drawSphereCore(ctx, this.nrrd_states.nippleSphereOrigin[this.protectedData.axis][0], this.nrrd_states.nippleSphereOrigin[this.protectedData.axis][1], radius, this.nrrd_states.nippleColor);
|
|
877
|
+
}
|
|
878
|
+
this.protectedData.ctxes.drawingLayerMasterCtx.drawImage(canvas, 0, 0, this.nrrd_states.changedWidth, this.nrrd_states.changedHeight);
|
|
879
|
+
}
|
|
721
880
|
drawSphere(mouseX, mouseY, radius) {
|
|
722
881
|
// clear canvas
|
|
723
|
-
this.
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
882
|
+
const [canvas, ctx] = this.clearSphereCanvas();
|
|
883
|
+
this.drawSphereCore(ctx, mouseX, mouseY, radius, this.gui_states.fillColor);
|
|
884
|
+
console.log("when drawing shpere on canvas");
|
|
885
|
+
console.log("Line 1256 mastercanvasesize:", this.protectedData.canvases.drawingCanvasLayerMaster.width, this.protectedData.canvases.drawingCanvasLayerMaster.height);
|
|
886
|
+
console.log("current xy:", mouseX, mouseY);
|
|
887
|
+
console.log("current changed width:", this.nrrd_states.changedWidth, this.nrrd_states.changedHeight);
|
|
888
|
+
this.protectedData.ctxes.drawingLayerMasterCtx.drawImage(canvas, 0, 0, this.nrrd_states.changedWidth, this.nrrd_states.changedHeight);
|
|
889
|
+
}
|
|
890
|
+
clearSphereCanvas() {
|
|
891
|
+
// this.protectedData.canvases.drawingSphereCanvas.width =
|
|
892
|
+
// this.protectedData.canvases.drawingCanvasLayerMaster.width;
|
|
893
|
+
// this.protectedData.canvases.drawingSphereCanvas.height =
|
|
894
|
+
// this.protectedData.canvases.drawingCanvasLayerMaster.height;
|
|
895
|
+
// clear drawingCanvasLayerMaster
|
|
896
|
+
this.protectedData.canvases.drawingCanvasLayerMaster.width = this.protectedData.canvases.drawingCanvasLayerMaster.width;
|
|
897
|
+
// resize sphere canvas size to original size
|
|
898
|
+
this.protectedData.canvases.drawingSphereCanvas.width = this.protectedData.canvases.originCanvas.width;
|
|
899
|
+
this.protectedData.canvases.drawingSphereCanvas.height = this.protectedData.canvases.originCanvas.height;
|
|
727
900
|
const canvas = this.protectedData.canvases.drawingSphereCanvas;
|
|
728
901
|
const ctx = this.protectedData.ctxes.drawingSphereCtx;
|
|
729
|
-
|
|
730
|
-
this.drawSphereCore(ctx, mouseX, mouseY, radius);
|
|
731
|
-
this.protectedData.ctxes.drawingLayerMasterCtx.drawImage(canvas, 0, 0, this.nrrd_states.changedWidth, this.nrrd_states.changedHeight);
|
|
902
|
+
return [canvas, ctx];
|
|
732
903
|
}
|
|
733
904
|
/**
|
|
734
905
|
* We generate the MRI slice from threejs based on mm, but when we display it is based on pixel size/distance.
|
|
@@ -826,9 +997,9 @@ export class DrawToolCore extends CommToolsData {
|
|
|
826
997
|
}
|
|
827
998
|
return { currentIndex, oldIndex, convertCursorNumX, convertCursorNumY };
|
|
828
999
|
}
|
|
829
|
-
setUpSphereOrigins(mouseX, mouseY) {
|
|
1000
|
+
setUpSphereOrigins(mouseX, mouseY, sliceIndex) {
|
|
830
1001
|
const convertCursor = (from, to) => {
|
|
831
|
-
const convertObj = this.convertCursorPoint(from, to, mouseX, mouseY,
|
|
1002
|
+
const convertObj = this.convertCursorPoint(from, to, mouseX, mouseY, sliceIndex);
|
|
832
1003
|
return {
|
|
833
1004
|
convertCursorNumX: convertObj === null || convertObj === void 0 ? void 0 : convertObj.convertCursorNumX,
|
|
834
1005
|
convertCursorNumY: convertObj === null || convertObj === void 0 ? void 0 : convertObj.convertCursorNumY,
|
|
@@ -955,7 +1126,7 @@ export class DrawToolCore extends CommToolsData {
|
|
|
955
1126
|
storeAllImages(index, label) {
|
|
956
1127
|
// const image: HTMLImageElement = new Image();
|
|
957
1128
|
// resize the drawing image data
|
|
958
|
-
if (!this.nrrd_states.loadMaskJson && !this.gui_states.sphere) {
|
|
1129
|
+
if (!this.nrrd_states.loadMaskJson && !this.gui_states.sphere && !this.gui_states.calculator) {
|
|
959
1130
|
this.setEmptyCanvasSize();
|
|
960
1131
|
this.drawImageOnEmptyImage(this.protectedData.canvases.drawingCanvasLayerMaster);
|
|
961
1132
|
}
|
|
@@ -1027,7 +1198,7 @@ export class DrawToolCore extends CommToolsData {
|
|
|
1027
1198
|
break;
|
|
1028
1199
|
}
|
|
1029
1200
|
this.storeImageToAxis(index, this.protectedData.maskData.paintImages, imageData);
|
|
1030
|
-
if (!this.nrrd_states.loadMaskJson && !this.gui_states.sphere) {
|
|
1201
|
+
if (!this.nrrd_states.loadMaskJson && !this.gui_states.sphere && !this.gui_states.calculator) {
|
|
1031
1202
|
this.storeEachLayerImage(index, label);
|
|
1032
1203
|
}
|
|
1033
1204
|
}
|