copper3d 3.0.1 → 3.0.2
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/README.md +195 -28
- package/dist/Utils/segmentation/CommToolsData.d.ts +24 -9
- package/dist/Utils/segmentation/CommToolsData.js +65 -139
- package/dist/Utils/segmentation/CommToolsData.js.map +1 -1
- package/dist/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/Utils/segmentation/DragOperator.js +14 -4
- package/dist/Utils/segmentation/DragOperator.js.map +1 -1
- package/dist/Utils/segmentation/DrawToolCore.d.ts +23 -16
- package/dist/Utils/segmentation/DrawToolCore.js +218 -401
- package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
- package/dist/Utils/segmentation/NrrdTools.d.ts +152 -10
- package/dist/Utils/segmentation/NrrdTools.js +599 -202
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/core/MaskVolume.d.ts +1 -1
- package/dist/Utils/segmentation/core/MaskVolume.js +24 -3
- package/dist/Utils/segmentation/core/MaskVolume.js.map +1 -1
- package/dist/Utils/segmentation/core/UndoManager.d.ts +1 -1
- package/dist/Utils/segmentation/core/UndoManager.js +1 -1
- package/dist/Utils/segmentation/core/index.d.ts +0 -2
- package/dist/Utils/segmentation/core/index.js +0 -1
- package/dist/Utils/segmentation/core/index.js.map +1 -1
- package/dist/Utils/segmentation/core/types.js +24 -24
- package/dist/Utils/segmentation/core/types.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/GuiState.d.ts +22 -0
- package/dist/Utils/segmentation/coreTools/GuiState.js +48 -0
- package/dist/Utils/segmentation/coreTools/GuiState.js.map +1 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.d.ts +25 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.js +85 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.js.map +1 -0
- package/dist/Utils/segmentation/coreTools/coreType.d.ts +88 -62
- package/dist/Utils/segmentation/coreTools/coreType.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/divControlTools.js +1 -1
- package/dist/Utils/segmentation/coreTools/divControlTools.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/gui.d.ts +12 -12
- package/dist/Utils/segmentation/coreTools/gui.js +81 -107
- package/dist/Utils/segmentation/coreTools/gui.js.map +1 -1
- package/dist/Utils/segmentation/eventRouter/EventRouter.d.ts +2 -1
- package/dist/Utils/segmentation/eventRouter/EventRouter.js +15 -10
- package/dist/Utils/segmentation/eventRouter/EventRouter.js.map +1 -1
- package/dist/Utils/segmentation/eventRouter/types.d.ts +3 -3
- package/dist/Utils/segmentation/tools/BaseTool.d.ts +8 -5
- package/dist/Utils/segmentation/tools/BaseTool.js +1 -2
- package/dist/Utils/segmentation/tools/BaseTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/CrosshairTool.js +25 -25
- package/dist/Utils/segmentation/tools/CrosshairTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/DragSliceTool.d.ts +2 -0
- package/dist/Utils/segmentation/tools/DragSliceTool.js +63 -53
- package/dist/Utils/segmentation/tools/DragSliceTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/DrawingTool.d.ts +93 -0
- package/dist/Utils/segmentation/tools/DrawingTool.js +222 -0
- package/dist/Utils/segmentation/tools/DrawingTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/EraserTool.js +8 -8
- package/dist/Utils/segmentation/tools/EraserTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/ImageStoreHelper.d.ts +11 -28
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js +39 -82
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js.map +1 -1
- package/dist/Utils/segmentation/tools/PanTool.d.ts +53 -0
- package/dist/Utils/segmentation/tools/PanTool.js +90 -0
- package/dist/Utils/segmentation/tools/PanTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/SphereTool.d.ts +208 -1
- package/dist/Utils/segmentation/tools/SphereTool.js +456 -45
- package/dist/Utils/segmentation/tools/SphereTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/ZoomTool.js +3 -3
- package/dist/Utils/segmentation/tools/ZoomTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/index.d.ts +6 -2
- package/dist/Utils/segmentation/tools/index.js +4 -1
- package/dist/Utils/segmentation/tools/index.js.map +1 -1
- package/dist/bundle.esm.js +2452 -1492
- package/dist/bundle.umd.js +2452 -1492
- package/dist/index.d.ts +6 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/Utils/segmentation/CommToolsData.d.ts +24 -9
- package/dist/types/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/types/Utils/segmentation/DrawToolCore.d.ts +23 -16
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +152 -10
- package/dist/types/Utils/segmentation/core/MaskVolume.d.ts +1 -1
- package/dist/types/Utils/segmentation/core/UndoManager.d.ts +1 -1
- package/dist/types/Utils/segmentation/core/index.d.ts +0 -2
- package/dist/types/Utils/segmentation/coreTools/GuiState.d.ts +22 -0
- package/dist/types/Utils/segmentation/coreTools/NrrdState.d.ts +25 -0
- package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +88 -62
- package/dist/types/Utils/segmentation/coreTools/gui.d.ts +12 -12
- package/dist/types/Utils/segmentation/eventRouter/EventRouter.d.ts +2 -1
- package/dist/types/Utils/segmentation/eventRouter/types.d.ts +3 -3
- package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +8 -5
- package/dist/types/Utils/segmentation/tools/DragSliceTool.d.ts +2 -0
- package/dist/types/Utils/segmentation/tools/DrawingTool.d.ts +93 -0
- package/dist/types/Utils/segmentation/tools/ImageStoreHelper.d.ts +11 -28
- package/dist/types/Utils/segmentation/tools/PanTool.d.ts +53 -0
- package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +208 -1
- package/dist/types/Utils/segmentation/tools/index.d.ts +6 -2
- package/dist/types/index.d.ts +6 -3
- package/package.json +1 -1
- package/dist/Utils/segmentation/core/MigrationUtils.d.ts +0 -97
- package/dist/Utils/segmentation/core/MigrationUtils.js +0 -163
- package/dist/Utils/segmentation/core/MigrationUtils.js.map +0 -1
- package/dist/types/Utils/segmentation/core/MigrationUtils.d.ts +0 -97
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { NrrdState } from "./coreTools/NrrdState";
|
|
2
|
+
import { GuiState } from "./coreTools/GuiState";
|
|
1
3
|
import { MaskVolume } from "./core/index";
|
|
2
4
|
import { switchPencilIcon } from "../utils";
|
|
3
|
-
import {
|
|
5
|
+
import { CHANNEL_HEX_COLORS } from "./core/types";
|
|
4
6
|
export class CommToolsData {
|
|
5
7
|
constructor(container, mainAreaContainer, options) {
|
|
6
8
|
var _a;
|
|
@@ -9,6 +11,14 @@ export class CommToolsData {
|
|
|
9
11
|
this._reusableSliceBuffer = null;
|
|
10
12
|
this._reusableBufferWidth = 0;
|
|
11
13
|
this._reusableBufferHeight = 0;
|
|
14
|
+
/** External annotation callbacks — set via draw() options */
|
|
15
|
+
this.annotationCallbacks = {
|
|
16
|
+
onMaskChanged: () => { },
|
|
17
|
+
onSphereChanged: () => { },
|
|
18
|
+
onCalculatorPositionsChanged: () => { },
|
|
19
|
+
onLayerVolumeCleared: () => { },
|
|
20
|
+
onChannelColorChanged: () => { },
|
|
21
|
+
};
|
|
12
22
|
/** Whether the keyboard-config dialog is open (suppresses all shortcuts). */
|
|
13
23
|
this._configKeyBoard = false;
|
|
14
24
|
/** Active keyboard shortcut bindings. */
|
|
@@ -18,62 +28,10 @@ export class CommToolsData {
|
|
|
18
28
|
redo: "y",
|
|
19
29
|
contrast: ["Control", "Meta"],
|
|
20
30
|
crosshair: "s",
|
|
31
|
+
sphere: "q",
|
|
21
32
|
mouseWheel: "Scroll:Zoom",
|
|
22
33
|
};
|
|
23
|
-
this.nrrd_states =
|
|
24
|
-
originWidth: 0,
|
|
25
|
-
originHeight: 0,
|
|
26
|
-
nrrd_x_mm: 0,
|
|
27
|
-
nrrd_y_mm: 0,
|
|
28
|
-
nrrd_z_mm: 0,
|
|
29
|
-
nrrd_x_pixel: 0,
|
|
30
|
-
nrrd_y_pixel: 0,
|
|
31
|
-
nrrd_z_pixel: 0,
|
|
32
|
-
changedWidth: 0,
|
|
33
|
-
changedHeight: 0,
|
|
34
|
-
oldIndex: 0,
|
|
35
|
-
currentIndex: 0,
|
|
36
|
-
maxIndex: 0,
|
|
37
|
-
minIndex: 0,
|
|
38
|
-
RSARatio: 0,
|
|
39
|
-
voxelSpacing: [],
|
|
40
|
-
spaceOrigin: [],
|
|
41
|
-
dimensions: [],
|
|
42
|
-
loadMaskJson: false,
|
|
43
|
-
ratios: { x: 1, y: 1, z: 1 },
|
|
44
|
-
contrastNum: 0,
|
|
45
|
-
showContrast: false,
|
|
46
|
-
isCursorSelect: false,
|
|
47
|
-
cursorPageX: 0,
|
|
48
|
-
cursorPageY: 0,
|
|
49
|
-
sphereOrigin: { x: [0, 0, 0], y: [0, 0, 0], z: [0, 0, 0] },
|
|
50
|
-
tumourSphereOrigin: null,
|
|
51
|
-
skinSphereOrigin: null,
|
|
52
|
-
ribSphereOrigin: null,
|
|
53
|
-
nippleSphereOrigin: null,
|
|
54
|
-
tumourColor: "#00ff00",
|
|
55
|
-
skinColor: "#FFEB3B",
|
|
56
|
-
ribcageColor: "#2196F3",
|
|
57
|
-
nippleColor: "#E91E63",
|
|
58
|
-
spherePlanB: true,
|
|
59
|
-
sphereRadius: 5,
|
|
60
|
-
Mouse_Over_x: 0,
|
|
61
|
-
Mouse_Over_y: 0,
|
|
62
|
-
Mouse_Over: false,
|
|
63
|
-
stepClear: 1,
|
|
64
|
-
sizeFoctor: this.baseCanvasesSize,
|
|
65
|
-
clearAllFlag: false,
|
|
66
|
-
previousPanelL: -99999,
|
|
67
|
-
previousPanelT: -99999,
|
|
68
|
-
switchSliceFlag: false,
|
|
69
|
-
layers: ["layer1", "layer2", "layer3"],
|
|
70
|
-
getMask: (sliceData, layerId, channelId, sliceIndex, axis, width, height, clearFlag) => { },
|
|
71
|
-
onClearLayerVolume: (layerId) => { },
|
|
72
|
-
onChannelColorChanged: () => { },
|
|
73
|
-
getSphere: (sphereOrigin, sphereRadius) => { },
|
|
74
|
-
getCalculateSpherePositions: (tumourSphereOrigin, skinSphereOrigin, ribSphereOrigin, nippleSphereOrigin, aixs) => { },
|
|
75
|
-
drawStartPos: { x: 1, y: 1 },
|
|
76
|
-
};
|
|
34
|
+
this.nrrd_states = new NrrdState(this.baseCanvasesSize);
|
|
77
35
|
this.cursorPage = {
|
|
78
36
|
x: {
|
|
79
37
|
cursorPageX: 0,
|
|
@@ -94,76 +52,19 @@ export class CommToolsData {
|
|
|
94
52
|
updated: false,
|
|
95
53
|
},
|
|
96
54
|
};
|
|
97
|
-
this.gui_states = {
|
|
98
|
-
mainAreaSize: 3,
|
|
99
|
-
dragSensitivity: 75,
|
|
100
|
-
Eraser: false,
|
|
101
|
-
globalAlpha: 0.6,
|
|
102
|
-
lineWidth: 2,
|
|
103
|
-
color: "#f50a33",
|
|
104
|
-
pencil: true,
|
|
105
|
-
fillColor: "#00ff00",
|
|
106
|
-
brushColor: "#00ff00",
|
|
107
|
-
brushAndEraserSize: 10,
|
|
108
|
-
cursor: "dot",
|
|
109
|
-
layer: "layer1",
|
|
110
|
-
cal_distance: "tumour",
|
|
111
|
-
sphere: false,
|
|
112
|
-
calculator: false,
|
|
113
|
-
readyToUpdate: true,
|
|
55
|
+
this.gui_states = new GuiState({
|
|
114
56
|
defaultPaintCursor: switchPencilIcon("dot"),
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
this.clearPaint();
|
|
119
|
-
},
|
|
120
|
-
clearAll: () => {
|
|
121
|
-
const text = "Are you sure remove annotations on All slice?";
|
|
122
|
-
if (confirm(text) === true) {
|
|
123
|
-
this.nrrd_states.clearAllFlag = true;
|
|
124
|
-
this.clearPaint();
|
|
125
|
-
this.clearStoreImages();
|
|
126
|
-
}
|
|
127
|
-
this.nrrd_states.clearAllFlag = false;
|
|
128
|
-
},
|
|
129
|
-
undo: () => {
|
|
130
|
-
this.undoLastPainting();
|
|
131
|
-
},
|
|
132
|
-
redo: () => {
|
|
133
|
-
this.redoLastPainting();
|
|
134
|
-
},
|
|
135
|
-
downloadCurrentMask: () => {
|
|
136
|
-
const config = {
|
|
137
|
-
axis: this.protectedData.axis,
|
|
138
|
-
currentIndex: this.nrrd_states.currentIndex,
|
|
139
|
-
drawingCanvas: this.protectedData.canvases.drawingCanvas,
|
|
140
|
-
originWidth: this.nrrd_states.originWidth,
|
|
141
|
-
originHeight: this.nrrd_states.originHeight,
|
|
142
|
-
};
|
|
143
|
-
enableDownload(config);
|
|
144
|
-
},
|
|
145
|
-
resetZoom: () => {
|
|
146
|
-
this.nrrd_states.sizeFoctor = this.baseCanvasesSize;
|
|
147
|
-
this.gui_states.mainAreaSize = this.baseCanvasesSize;
|
|
148
|
-
this.resizePaintArea(this.nrrd_states.sizeFoctor);
|
|
149
|
-
this.resetPaintAreaUIPosition();
|
|
150
|
-
},
|
|
151
|
-
activeChannel: 1,
|
|
152
|
-
layerVisibility: { layer1: true, layer2: true, layer3: true },
|
|
153
|
-
channelVisibility: {
|
|
154
|
-
layer1: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
155
|
-
layer2: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
156
|
-
layer3: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
157
|
-
},
|
|
158
|
-
};
|
|
57
|
+
defaultFillColor: CHANNEL_HEX_COLORS[1],
|
|
58
|
+
defaultBrushColor: CHANNEL_HEX_COLORS[1],
|
|
59
|
+
});
|
|
159
60
|
const layers = (_a = options === null || options === void 0 ? void 0 : options.layers) !== null && _a !== void 0 ? _a : ["layer1", "layer2", "layer3"];
|
|
160
61
|
if (layers.length > 10) {
|
|
161
62
|
console.warn(`CommToolsData: ${layers.length} layers requested; recommended maximum is 10.`);
|
|
162
63
|
}
|
|
163
64
|
// Override the default states with the actual layer list
|
|
164
|
-
this.nrrd_states.layers = layers;
|
|
165
|
-
this.gui_states.layerVisibility = Object.fromEntries(layers.map((id) => [id, true]));
|
|
166
|
-
this.gui_states.channelVisibility = Object.fromEntries(layers.map((id) => [
|
|
65
|
+
this.nrrd_states.image.layers = layers;
|
|
66
|
+
this.gui_states.layerChannel.layerVisibility = Object.fromEntries(layers.map((id) => [id, true]));
|
|
67
|
+
this.gui_states.layerChannel.channelVisibility = Object.fromEntries(layers.map((id) => [
|
|
167
68
|
id,
|
|
168
69
|
{ 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
169
70
|
]));
|
|
@@ -171,7 +72,7 @@ export class CommToolsData {
|
|
|
171
72
|
const layerTargets = this.generateLayerTargets(layers);
|
|
172
73
|
// Get NRRD dimensions (will be set later when NRRD loads)
|
|
173
74
|
// Default to 1x1x1 for now, will be re-initialized in NrrdTools when dimensions are known
|
|
174
|
-
const dims = this.nrrd_states.dimensions;
|
|
75
|
+
const dims = this.nrrd_states.image.dimensions;
|
|
175
76
|
const [width, height, depth] = dims.length === 3 ? dims : [1, 1, 1];
|
|
176
77
|
this.protectedData = {
|
|
177
78
|
container,
|
|
@@ -182,7 +83,7 @@ export class CommToolsData {
|
|
|
182
83
|
skipSlicesDic: {},
|
|
183
84
|
currentShowingSlice: undefined,
|
|
184
85
|
mainPreSlices: undefined,
|
|
185
|
-
|
|
86
|
+
isDrawing: false,
|
|
186
87
|
axis: "z",
|
|
187
88
|
maskData: {
|
|
188
89
|
// Volumetric storage (Phase 3 — only storage mechanism)
|
|
@@ -256,7 +157,7 @@ export class CommToolsData {
|
|
|
256
157
|
const vol = volumes[layer];
|
|
257
158
|
if (vol)
|
|
258
159
|
return vol;
|
|
259
|
-
const firstLayerId = this.nrrd_states.layers[0];
|
|
160
|
+
const firstLayerId = this.nrrd_states.image.layers[0];
|
|
260
161
|
console.warn(`CommToolsData: unknown layer "${layer}", falling back to "${firstLayerId}"`);
|
|
261
162
|
return volumes[firstLayerId];
|
|
262
163
|
}
|
|
@@ -272,7 +173,7 @@ export class CommToolsData {
|
|
|
272
173
|
* ```
|
|
273
174
|
*/
|
|
274
175
|
getCurrentVolume() {
|
|
275
|
-
return this.getVolumeForLayer(this.gui_states.layer);
|
|
176
|
+
return this.getVolumeForLayer(this.gui_states.layerChannel.layer);
|
|
276
177
|
}
|
|
277
178
|
/**
|
|
278
179
|
* Get all three MaskVolume instances
|
|
@@ -308,10 +209,10 @@ export class CommToolsData {
|
|
|
308
209
|
return map;
|
|
309
210
|
}
|
|
310
211
|
/**
|
|
311
|
-
* Rewrite this {
|
|
212
|
+
* Rewrite this {clearActiveSlice} function under DrawToolCore
|
|
312
213
|
*/
|
|
313
|
-
|
|
314
|
-
throw new Error("Child class must implement abstract
|
|
214
|
+
clearActiveSlice() {
|
|
215
|
+
throw new Error("Child class must implement abstract clearActiveSlice, currently you can find it in DrawToolCore.");
|
|
315
216
|
}
|
|
316
217
|
/**
|
|
317
218
|
* Rewrite this {undoLastPainting} function under DrawToolCore
|
|
@@ -326,10 +227,10 @@ export class CommToolsData {
|
|
|
326
227
|
throw new Error("Child class must implement abstract redoLastPainting, currently you can find it in DrawToolCore.");
|
|
327
228
|
}
|
|
328
229
|
/**
|
|
329
|
-
* Rewrite this {
|
|
230
|
+
* Rewrite this {clearActiveLayer} function under NrrdTools
|
|
330
231
|
*/
|
|
331
|
-
|
|
332
|
-
throw new Error("Child class must implement abstract
|
|
232
|
+
clearActiveLayer() {
|
|
233
|
+
throw new Error("Child class must implement abstract clearActiveLayer, currently you can find it in NrrdTools.");
|
|
333
234
|
}
|
|
334
235
|
/**
|
|
335
236
|
* Rewrite this {resizePaintArea} function under NrrdTools
|
|
@@ -379,6 +280,21 @@ export class CommToolsData {
|
|
|
379
280
|
resetLayerCanvas() {
|
|
380
281
|
throw new Error("Child class must implement abstract resetLayerCanvas, currently you can find it in NrrdTools.");
|
|
381
282
|
}
|
|
283
|
+
/**
|
|
284
|
+
* Enter sphere mode: clear all layer canvases (not MaskVolume),
|
|
285
|
+
* hide all mask data so sphere overlay is the only visible annotation.
|
|
286
|
+
* Rewrite this under NrrdTools.
|
|
287
|
+
*/
|
|
288
|
+
enterSphereMode() {
|
|
289
|
+
throw new Error("Child class must implement abstract enterSphereMode, currently you can find it in NrrdTools.");
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Exit sphere mode: clear sphere canvas overlay, reload all layer
|
|
293
|
+
* MaskVolume data back onto canvases. Rewrite this under NrrdTools.
|
|
294
|
+
*/
|
|
295
|
+
exitSphereMode() {
|
|
296
|
+
throw new Error("Child class must implement abstract exitSphereMode, currently you can find it in NrrdTools.");
|
|
297
|
+
}
|
|
382
298
|
/**
|
|
383
299
|
* Rewrite this {setSyncsliceNum} function under NrrdTools
|
|
384
300
|
*/
|
|
@@ -410,7 +326,7 @@ export class CommToolsData {
|
|
|
410
326
|
// Sagittal: width = depth (Z), height = height (Y)
|
|
411
327
|
: [dims.depth, dims.height];
|
|
412
328
|
const imageData = new ImageData(w, h);
|
|
413
|
-
const channelVis = this.gui_states.channelVisibility[this.gui_states.layer];
|
|
329
|
+
const channelVis = this.gui_states.layerChannel.channelVisibility[this.gui_states.layerChannel.layer];
|
|
414
330
|
volume.renderLabelSliceInto(sliceIndex, axis, imageData, channelVis);
|
|
415
331
|
return { index: sliceIndex, image: imageData };
|
|
416
332
|
}
|
|
@@ -432,7 +348,7 @@ export class CommToolsData {
|
|
|
432
348
|
*/
|
|
433
349
|
getOrCreateSliceBuffer(axis) {
|
|
434
350
|
try {
|
|
435
|
-
const vol = this.getVolumeForLayer(this.nrrd_states.layers[0]);
|
|
351
|
+
const vol = this.getVolumeForLayer(this.nrrd_states.image.layers[0]);
|
|
436
352
|
const dims = vol.getDimensions();
|
|
437
353
|
const [w, h] = axis === "z" ? [dims.width, dims.height] :
|
|
438
354
|
axis === "y" ? [dims.width, dims.depth] :
|
|
@@ -473,16 +389,26 @@ export class CommToolsData {
|
|
|
473
389
|
if (!volume)
|
|
474
390
|
return;
|
|
475
391
|
// Get channel visibility for this layer
|
|
476
|
-
const channelVis = this.gui_states.channelVisibility[layer];
|
|
392
|
+
const channelVis = this.gui_states.layerChannel.channelVisibility[layer];
|
|
477
393
|
// Render label slice at full alpha — globalAlpha applied during compositeAllLayers
|
|
478
394
|
volume.renderLabelSliceInto(sliceIndex, axis, buffer, channelVis, 1.0);
|
|
479
395
|
this.setEmptyCanvasSize(axis);
|
|
480
396
|
this.protectedData.ctxes.emptyCtx.putImageData(buffer, 0, 0);
|
|
481
|
-
// No flip: MaskVolume stores in source coordinates matching the Three.js
|
|
482
|
-
// slice convention. Applying a display flip here would invert cross-axis
|
|
483
|
-
// slice indices (e.g. coronal 220 → 228 for a 448-slice volume).
|
|
484
397
|
targetCtx.imageSmoothingEnabled = false;
|
|
398
|
+
// Coronal (axis='y') Z-flip: vertically flip the rendered mask to match
|
|
399
|
+
// the Z-flip applied during the write path (syncLayerSliceData).
|
|
400
|
+
// Same pattern as SphereTool.refreshSphereCanvas('y') scale(1,-1).
|
|
401
|
+
// Same-view: write_flip + read_flip = identity (correct).
|
|
402
|
+
// Cross-view (sagittal↔coronal): aligns Z-axis direction (fixes flip bug).
|
|
403
|
+
if (axis === 'y') {
|
|
404
|
+
targetCtx.save();
|
|
405
|
+
targetCtx.scale(1, -1);
|
|
406
|
+
targetCtx.translate(0, -scaledHeight);
|
|
407
|
+
}
|
|
485
408
|
targetCtx.drawImage(this.protectedData.canvases.emptyCanvas, 0, 0, scaledWidth, scaledHeight);
|
|
409
|
+
if (axis === 'y') {
|
|
410
|
+
targetCtx.restore();
|
|
411
|
+
}
|
|
486
412
|
}
|
|
487
413
|
catch (err) {
|
|
488
414
|
// Slice out of bounds or volume not ready — skip silently
|
|
@@ -531,13 +457,13 @@ export class CommToolsData {
|
|
|
531
457
|
*/
|
|
532
458
|
compositeAllLayers() {
|
|
533
459
|
const masterCtx = this.protectedData.ctxes.drawingLayerMasterCtx;
|
|
534
|
-
const width = this.nrrd_states.changedWidth;
|
|
535
|
-
const height = this.nrrd_states.changedHeight;
|
|
460
|
+
const width = this.nrrd_states.view.changedWidth;
|
|
461
|
+
const height = this.nrrd_states.view.changedHeight;
|
|
536
462
|
masterCtx.clearRect(0, 0, width, height);
|
|
537
463
|
// Master stores full-alpha composite; globalAlpha is applied once in
|
|
538
464
|
// start() when drawing master to drawingCtx (single point of control).
|
|
539
|
-
for (const layerId of this.nrrd_states.layers) {
|
|
540
|
-
if (!this.gui_states.layerVisibility[layerId])
|
|
465
|
+
for (const layerId of this.nrrd_states.image.layers) {
|
|
466
|
+
if (!this.gui_states.layerChannel.layerVisibility[layerId])
|
|
541
467
|
continue;
|
|
542
468
|
const target = this.protectedData.layerTargets.get(layerId);
|
|
543
469
|
if (target)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommToolsData.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/CommToolsData.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommToolsData.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/CommToolsData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { IDragOpts, IDrawingEvents, IProtected
|
|
1
|
+
import { IDragOpts, IDrawingEvents, IProtected } from "./coreTools/coreType";
|
|
2
|
+
import { NrrdState } from "./coreTools/NrrdState";
|
|
3
|
+
import { GuiState } from "./coreTools/GuiState";
|
|
2
4
|
import type { EventRouter } from "./eventRouter";
|
|
3
5
|
export declare class DragOperator {
|
|
4
6
|
container: HTMLElement;
|
|
@@ -16,10 +18,16 @@ export declare class DragOperator {
|
|
|
16
18
|
private setEmptyCanvasSize;
|
|
17
19
|
private getOrCreateSliceBuffer;
|
|
18
20
|
private renderSliceToCanvas;
|
|
21
|
+
private refreshSphereOverlayCb;
|
|
19
22
|
private eventRouter;
|
|
20
|
-
constructor(container: HTMLElement, nrrd_sates:
|
|
23
|
+
constructor(container: HTMLElement, nrrd_sates: NrrdState, gui_states: GuiState, protectedData: IProtected, drawingPrameters: IDrawingEvents, setSyncsliceNum: () => void, setIsDrawFalse: (target: number) => void, flipDisplayImageByAxis: () => void, setEmptyCanvasSize: (axis?: "x" | "y" | "z") => void, getOrCreateSliceBuffer: (axis: "x" | "y" | "z") => ImageData | null, renderSliceToCanvas: (layer: string, axis: "x" | "y" | "z", sliceIndex: number, buffer: ImageData, targetCtx: CanvasRenderingContext2D, scaledWidth: number, scaledHeight: number) => void);
|
|
21
24
|
private init;
|
|
22
25
|
setShowDragNumberDiv(sliceIndexContainer: HTMLDivElement): void;
|
|
26
|
+
/**
|
|
27
|
+
* Set the sphere overlay refresh callback.
|
|
28
|
+
* Called by NrrdTools after DrawToolCore is initialized.
|
|
29
|
+
*/
|
|
30
|
+
setRefreshSphereOverlay(cb: () => void): void;
|
|
23
31
|
/**
|
|
24
32
|
* Set the EventRouter reference for centralized event handling.
|
|
25
33
|
* Called by NrrdTools/DrawToolCore after EventRouter is initialized.
|
|
@@ -13,6 +13,7 @@ export class DragOperator {
|
|
|
13
13
|
handleOnDragMouseMove: (ev) => { },
|
|
14
14
|
};
|
|
15
15
|
this.sensitiveArray = [];
|
|
16
|
+
this.refreshSphereOverlayCb = null;
|
|
16
17
|
// EventRouter for centralized event handling
|
|
17
18
|
this.eventRouter = null;
|
|
18
19
|
this.configDragMode = () => {
|
|
@@ -41,7 +42,7 @@ export class DragOperator {
|
|
|
41
42
|
this.init();
|
|
42
43
|
}
|
|
43
44
|
init() {
|
|
44
|
-
for (let i = 0; i < this.gui_states.max_sensitive; i++) {
|
|
45
|
+
for (let i = 0; i < this.gui_states.viewConfig.max_sensitive; i++) {
|
|
45
46
|
this.sensitiveArray.push((i + 1) / 20);
|
|
46
47
|
}
|
|
47
48
|
const dragEffectCanvases = {
|
|
@@ -62,12 +63,20 @@ export class DragOperator {
|
|
|
62
63
|
setEmptyCanvasSize: (axis) => this.setEmptyCanvasSize(axis),
|
|
63
64
|
getOrCreateSliceBuffer: (axis) => this.getOrCreateSliceBuffer(axis),
|
|
64
65
|
renderSliceToCanvas: (layer, axis, sliceIndex, buffer, targetCtx, w, h) => this.renderSliceToCanvas(layer, axis, sliceIndex, buffer, targetCtx, w, h),
|
|
66
|
+
refreshSphereOverlay: () => { var _a; return (_a = this.refreshSphereOverlayCb) === null || _a === void 0 ? void 0 : _a.call(this); },
|
|
65
67
|
}, this.showDragNumberDiv, dragEffectCanvases);
|
|
66
68
|
}
|
|
67
69
|
setShowDragNumberDiv(sliceIndexContainer) {
|
|
68
70
|
this.showDragNumberDiv = sliceIndexContainer;
|
|
69
71
|
this.dragSliceTool.setShowDragNumberDiv(sliceIndexContainer);
|
|
70
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Set the sphere overlay refresh callback.
|
|
75
|
+
* Called by NrrdTools after DrawToolCore is initialized.
|
|
76
|
+
*/
|
|
77
|
+
setRefreshSphereOverlay(cb) {
|
|
78
|
+
this.refreshSphereOverlayCb = cb;
|
|
79
|
+
}
|
|
71
80
|
/**
|
|
72
81
|
* Set the EventRouter reference for centralized event handling.
|
|
73
82
|
* Called by NrrdTools/DrawToolCore after EventRouter is initialized.
|
|
@@ -84,8 +93,9 @@ export class DragOperator {
|
|
|
84
93
|
this.removeDragMode();
|
|
85
94
|
}
|
|
86
95
|
// When leaving draw, contrast, or crosshair mode (returning to idle), restore drag mode
|
|
96
|
+
// Do NOT restore if sphere mode is active
|
|
87
97
|
if ((prev === 'draw' || prev === 'contrast' || prev === 'crosshair') && next === 'idle') {
|
|
88
|
-
if (!this.gui_states.sphere) {
|
|
98
|
+
if (!this.gui_states.mode.sphere) {
|
|
89
99
|
this.configDragMode();
|
|
90
100
|
}
|
|
91
101
|
}
|
|
@@ -104,7 +114,7 @@ export class DragOperator {
|
|
|
104
114
|
this.dragPrameters.y = ev.offsetY / this.dragPrameters.h;
|
|
105
115
|
this.container.addEventListener("pointermove", this.dragPrameters.handleOnDragMouseMove, false);
|
|
106
116
|
this.dragPrameters.sensivity =
|
|
107
|
-
this.sensitiveArray[this.gui_states.dragSensitivity - 1];
|
|
117
|
+
this.sensitiveArray[this.gui_states.viewConfig.dragSensitivity - 1];
|
|
108
118
|
}
|
|
109
119
|
};
|
|
110
120
|
this.dragPrameters.handleOnDragMouseMove = throttle((ev) => {
|
|
@@ -118,7 +128,7 @@ export class DragOperator {
|
|
|
118
128
|
}
|
|
119
129
|
this.updateIndex(this.dragPrameters.move);
|
|
120
130
|
(opts === null || opts === void 0 ? void 0 : opts.getSliceNum) &&
|
|
121
|
-
opts.getSliceNum(this.nrrd_states.
|
|
131
|
+
opts.getSliceNum(this.nrrd_states.view.currentSliceIndex, this.nrrd_states.view.contrastNum);
|
|
122
132
|
this.dragPrameters.y = ev.offsetY / this.dragPrameters.h;
|
|
123
133
|
}, this.dragPrameters.sensivity * 200);
|
|
124
134
|
this.dragPrameters.handleOnDragMouseUp = (ev) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragOperator.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/DragOperator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AASpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"DragOperator.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/DragOperator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ import { CrosshairTool } from "./tools/CrosshairTool";
|
|
|
6
6
|
import { ContrastTool } from "./tools/ContrastTool";
|
|
7
7
|
import { ZoomTool } from "./tools/ZoomTool";
|
|
8
8
|
import { EraserTool } from "./tools/EraserTool";
|
|
9
|
+
import { PanTool } from "./tools/PanTool";
|
|
10
|
+
import { DrawingTool } from "./tools/DrawingTool";
|
|
9
11
|
import { ImageStoreHelper } from "./tools/ImageStoreHelper";
|
|
10
12
|
import { UndoManager } from "./core";
|
|
11
13
|
export declare class DrawToolCore extends CommToolsData {
|
|
@@ -16,17 +18,17 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
16
18
|
eraserUrls: string[];
|
|
17
19
|
pencilUrls: string[];
|
|
18
20
|
undoManager: UndoManager;
|
|
19
|
-
/** Snapshot of the active layer's slice captured on mouse-down (before drawing). */
|
|
20
|
-
private preDrawSlice;
|
|
21
|
-
private preDrawAxis;
|
|
22
|
-
private preDrawSliceIndex;
|
|
23
21
|
protected eventRouter: EventRouter | null;
|
|
24
22
|
protected sphereTool: SphereTool;
|
|
25
23
|
protected crosshairTool: CrosshairTool;
|
|
26
24
|
protected contrastTool: ContrastTool;
|
|
27
25
|
protected zoomTool: ZoomTool;
|
|
28
26
|
protected eraserTool: EraserTool;
|
|
27
|
+
protected panTool: PanTool;
|
|
28
|
+
protected drawingTool: DrawingTool;
|
|
29
29
|
protected imageStoreHelper: ImageStoreHelper;
|
|
30
|
+
/** Slice index recorded when paintOnCanvas() starts, guards stale-click */
|
|
31
|
+
private paintSliceIndex;
|
|
30
32
|
start: () => void;
|
|
31
33
|
constructor(container: HTMLElement, options?: {
|
|
32
34
|
layers?: string[];
|
|
@@ -37,15 +39,13 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
37
39
|
setPencilIconUrls(urls: string[]): void;
|
|
38
40
|
private setCurrentLayer;
|
|
39
41
|
draw(opts?: IDrawOpts): void;
|
|
40
|
-
drawCalSphereDown(x: number, y: number, sliceIndex: number, cal_position: "tumour" | "skin" | "nipple" | "ribcage"): void;
|
|
41
|
-
drawCalSphereUp(): void;
|
|
42
42
|
private zoomActionAfterDrawSphere;
|
|
43
43
|
private clearSpherePrintStoreImages;
|
|
44
44
|
private paintOnCanvas;
|
|
45
|
+
/** Extracted from paintOnCanvas() — handles sphere placement on left-click */
|
|
46
|
+
private handleSphereClick;
|
|
45
47
|
/*************************************May consider to move outside *******************************************/
|
|
46
48
|
private drawLine;
|
|
47
|
-
private drawLinesOnLayer;
|
|
48
|
-
private paintOnCanvasLayer;
|
|
49
49
|
private initAllCanvas;
|
|
50
50
|
private useEraser;
|
|
51
51
|
configMouseZoomWheel(): (e: WheelEvent) => void;
|
|
@@ -58,6 +58,11 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
58
58
|
private configMouseSphereWheel;
|
|
59
59
|
drawCalculatorSphere(radius: number): void;
|
|
60
60
|
drawSphere(mouseX: number, mouseY: number, radius: number): void;
|
|
61
|
+
/**
|
|
62
|
+
* Refresh sphere canvas from sphereMaskVolume for the current slice/axis.
|
|
63
|
+
* Called after view changes (slice switch, zoom, contrast, axis switch).
|
|
64
|
+
*/
|
|
65
|
+
refreshSphereOverlay(): void;
|
|
61
66
|
/**
|
|
62
67
|
* Convert cursor point between axis views.
|
|
63
68
|
* Delegated to CrosshairTool.
|
|
@@ -68,13 +73,17 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
68
73
|
getRestLayer(): string[];
|
|
69
74
|
/**************************** Undo/Redo functions (Phase 6 — Delta-based) ****************************/
|
|
70
75
|
/**
|
|
71
|
-
* Clear mask on current slice canvas.
|
|
76
|
+
* Clear the mask on the current slice canvas for the active layer ONLY.
|
|
77
|
+
*
|
|
78
|
+
* This method only clears the active layer's MaskVolume slice data for the
|
|
79
|
+
* currently viewed slice index. Other slices in the same layer remain intact.
|
|
80
|
+
* Other background layers are also left untouched.
|
|
81
|
+
* After clearing, all layer canvases are re-rendered from the `MaskVolume`
|
|
82
|
+
* to keep the visuals in sync.
|
|
72
83
|
*
|
|
73
|
-
*
|
|
74
|
-
* Other layers are left untouched. After clearing, all layer canvases
|
|
75
|
-
* are re-rendered from MaskVolume to keep visuals in sync.
|
|
84
|
+
* The operation is recorded to the UndoManager to allow for user rollback.
|
|
76
85
|
*/
|
|
77
|
-
|
|
86
|
+
clearActiveSlice(): void;
|
|
78
87
|
/**
|
|
79
88
|
* Undo the last drawing operation on the active layer.
|
|
80
89
|
* Restores the MaskVolume slice to its pre-draw state, re-renders
|
|
@@ -93,9 +102,7 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
93
102
|
*/
|
|
94
103
|
private applyUndoRedoToCanvas;
|
|
95
104
|
/****************************Store images (delegated to ImageStoreHelper)****************************************************/
|
|
96
|
-
|
|
97
|
-
storeImageToLayer(index: number, canvas: HTMLCanvasElement): ImageData;
|
|
98
|
-
storeEachLayerImage(index: number, layer: string): void;
|
|
105
|
+
syncLayerSliceData(index: number, layer: string): void;
|
|
99
106
|
/******************************** Utils gui related functions (delegated to ContrastTool) ***************************************/
|
|
100
107
|
setupConrastEvents(callback: (step: number, towards: "horizental" | "vertical") => void): void;
|
|
101
108
|
configContrastDragMode: () => void;
|