copper3d 3.0.0 → 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 +32 -18
- package/dist/Utils/segmentation/CommToolsData.js +69 -152
- package/dist/Utils/segmentation/CommToolsData.js.map +1 -1
- package/dist/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/Utils/segmentation/DragOperator.js +18 -8
- package/dist/Utils/segmentation/DragOperator.js.map +1 -1
- package/dist/Utils/segmentation/DrawToolCore.d.ts +24 -18
- package/dist/Utils/segmentation/DrawToolCore.js +255 -436
- package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
- package/dist/Utils/segmentation/NrrdTools.d.ts +152 -10
- package/dist/Utils/segmentation/NrrdTools.js +604 -203
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/core/MaskVolume.d.ts +1 -34
- package/dist/Utils/segmentation/core/MaskVolume.js +24 -124
- 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 -65
- 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 -9
- 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 -0
- package/dist/Utils/segmentation/eventRouter/EventRouter.js +19 -8
- 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 +11 -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 +12 -32
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js +45 -102
- 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 -3
- 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 +5 -4
- 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 +2451 -1622
- package/dist/bundle.umd.js +2451 -1622
- 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 +32 -18
- package/dist/types/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/types/Utils/segmentation/DrawToolCore.d.ts +24 -18
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +152 -10
- package/dist/types/Utils/segmentation/core/MaskVolume.d.ts +1 -34
- 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 -65
- package/dist/types/Utils/segmentation/coreTools/gui.d.ts +12 -9
- package/dist/types/Utils/segmentation/eventRouter/EventRouter.d.ts +2 -0
- package/dist/types/Utils/segmentation/eventRouter/types.d.ts +3 -3
- package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +11 -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 +12 -32
- package/dist/types/Utils/segmentation/tools/PanTool.d.ts +53 -0
- package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +208 -3
- 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,63 +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
|
-
enableCursorChoose: false,
|
|
47
|
-
isCursorSelect: false,
|
|
48
|
-
cursorPageX: 0,
|
|
49
|
-
cursorPageY: 0,
|
|
50
|
-
sphereOrigin: { x: [0, 0, 0], y: [0, 0, 0], z: [0, 0, 0] },
|
|
51
|
-
tumourSphereOrigin: null,
|
|
52
|
-
skinSphereOrigin: null,
|
|
53
|
-
ribSphereOrigin: null,
|
|
54
|
-
nippleSphereOrigin: null,
|
|
55
|
-
tumourColor: "#00ff00",
|
|
56
|
-
skinColor: "#FFEB3B",
|
|
57
|
-
ribcageColor: "#2196F3",
|
|
58
|
-
nippleColor: "#E91E63",
|
|
59
|
-
spherePlanB: true,
|
|
60
|
-
sphereRadius: 5,
|
|
61
|
-
Mouse_Over_x: 0,
|
|
62
|
-
Mouse_Over_y: 0,
|
|
63
|
-
Mouse_Over: false,
|
|
64
|
-
stepClear: 1,
|
|
65
|
-
sizeFoctor: this.baseCanvasesSize,
|
|
66
|
-
clearAllFlag: false,
|
|
67
|
-
previousPanelL: -99999,
|
|
68
|
-
previousPanelT: -99999,
|
|
69
|
-
switchSliceFlag: false,
|
|
70
|
-
layers: ["layer1", "layer2", "layer3"],
|
|
71
|
-
getMask: (sliceData, layerId, channelId, sliceIndex, axis, width, height, clearFlag) => { },
|
|
72
|
-
onClearLayerVolume: (layerId) => { },
|
|
73
|
-
onChannelColorChanged: () => { },
|
|
74
|
-
getSphere: (sphereOrigin, sphereRadius) => { },
|
|
75
|
-
getCalculateSpherePositions: (tumourSphereOrigin, skinSphereOrigin, ribSphereOrigin, nippleSphereOrigin, aixs) => { },
|
|
76
|
-
drawStartPos: { x: 1, y: 1 },
|
|
77
|
-
};
|
|
34
|
+
this.nrrd_states = new NrrdState(this.baseCanvasesSize);
|
|
78
35
|
this.cursorPage = {
|
|
79
36
|
x: {
|
|
80
37
|
cursorPageX: 0,
|
|
@@ -95,76 +52,19 @@ export class CommToolsData {
|
|
|
95
52
|
updated: false,
|
|
96
53
|
},
|
|
97
54
|
};
|
|
98
|
-
this.gui_states = {
|
|
99
|
-
mainAreaSize: 3,
|
|
100
|
-
dragSensitivity: 75,
|
|
101
|
-
Eraser: false,
|
|
102
|
-
globalAlpha: 0.6,
|
|
103
|
-
lineWidth: 2,
|
|
104
|
-
color: "#f50a33",
|
|
105
|
-
pencil: true,
|
|
106
|
-
fillColor: "#00ff00",
|
|
107
|
-
brushColor: "#00ff00",
|
|
108
|
-
brushAndEraserSize: 10,
|
|
109
|
-
cursor: "dot",
|
|
110
|
-
layer: "layer1",
|
|
111
|
-
cal_distance: "tumour",
|
|
112
|
-
sphere: false,
|
|
113
|
-
calculator: false,
|
|
114
|
-
readyToUpdate: true,
|
|
55
|
+
this.gui_states = new GuiState({
|
|
115
56
|
defaultPaintCursor: switchPencilIcon("dot"),
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
this.clearPaint();
|
|
120
|
-
},
|
|
121
|
-
clearAll: () => {
|
|
122
|
-
const text = "Are you sure remove annotations on All slice?";
|
|
123
|
-
if (confirm(text) === true) {
|
|
124
|
-
this.nrrd_states.clearAllFlag = true;
|
|
125
|
-
this.clearPaint();
|
|
126
|
-
this.clearStoreImages();
|
|
127
|
-
}
|
|
128
|
-
this.nrrd_states.clearAllFlag = false;
|
|
129
|
-
},
|
|
130
|
-
undo: () => {
|
|
131
|
-
this.undoLastPainting();
|
|
132
|
-
},
|
|
133
|
-
redo: () => {
|
|
134
|
-
this.redoLastPainting();
|
|
135
|
-
},
|
|
136
|
-
downloadCurrentMask: () => {
|
|
137
|
-
const config = {
|
|
138
|
-
axis: this.protectedData.axis,
|
|
139
|
-
currentIndex: this.nrrd_states.currentIndex,
|
|
140
|
-
drawingCanvas: this.protectedData.canvases.drawingCanvas,
|
|
141
|
-
originWidth: this.nrrd_states.originWidth,
|
|
142
|
-
originHeight: this.nrrd_states.originHeight,
|
|
143
|
-
};
|
|
144
|
-
enableDownload(config);
|
|
145
|
-
},
|
|
146
|
-
resetZoom: () => {
|
|
147
|
-
this.nrrd_states.sizeFoctor = this.baseCanvasesSize;
|
|
148
|
-
this.gui_states.mainAreaSize = this.baseCanvasesSize;
|
|
149
|
-
this.resizePaintArea(this.nrrd_states.sizeFoctor);
|
|
150
|
-
this.resetPaintAreaUIPosition();
|
|
151
|
-
},
|
|
152
|
-
activeChannel: 1,
|
|
153
|
-
layerVisibility: { layer1: true, layer2: true, layer3: true },
|
|
154
|
-
channelVisibility: {
|
|
155
|
-
layer1: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
156
|
-
layer2: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
157
|
-
layer3: { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
158
|
-
},
|
|
159
|
-
};
|
|
57
|
+
defaultFillColor: CHANNEL_HEX_COLORS[1],
|
|
58
|
+
defaultBrushColor: CHANNEL_HEX_COLORS[1],
|
|
59
|
+
});
|
|
160
60
|
const layers = (_a = options === null || options === void 0 ? void 0 : options.layers) !== null && _a !== void 0 ? _a : ["layer1", "layer2", "layer3"];
|
|
161
61
|
if (layers.length > 10) {
|
|
162
62
|
console.warn(`CommToolsData: ${layers.length} layers requested; recommended maximum is 10.`);
|
|
163
63
|
}
|
|
164
64
|
// Override the default states with the actual layer list
|
|
165
|
-
this.nrrd_states.layers = layers;
|
|
166
|
-
this.gui_states.layerVisibility = Object.fromEntries(layers.map((id) => [id, true]));
|
|
167
|
-
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) => [
|
|
168
68
|
id,
|
|
169
69
|
{ 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
170
70
|
]));
|
|
@@ -172,7 +72,7 @@ export class CommToolsData {
|
|
|
172
72
|
const layerTargets = this.generateLayerTargets(layers);
|
|
173
73
|
// Get NRRD dimensions (will be set later when NRRD loads)
|
|
174
74
|
// Default to 1x1x1 for now, will be re-initialized in NrrdTools when dimensions are known
|
|
175
|
-
const dims = this.nrrd_states.dimensions;
|
|
75
|
+
const dims = this.nrrd_states.image.dimensions;
|
|
176
76
|
const [width, height, depth] = dims.length === 3 ? dims : [1, 1, 1];
|
|
177
77
|
this.protectedData = {
|
|
178
78
|
container,
|
|
@@ -183,9 +83,7 @@ export class CommToolsData {
|
|
|
183
83
|
skipSlicesDic: {},
|
|
184
84
|
currentShowingSlice: undefined,
|
|
185
85
|
mainPreSlices: undefined,
|
|
186
|
-
|
|
187
|
-
Is_Ctrl_Pressed: false,
|
|
188
|
-
Is_Draw: false,
|
|
86
|
+
isDrawing: false,
|
|
189
87
|
axis: "z",
|
|
190
88
|
maskData: {
|
|
191
89
|
// Volumetric storage (Phase 3 — only storage mechanism)
|
|
@@ -259,7 +157,7 @@ export class CommToolsData {
|
|
|
259
157
|
const vol = volumes[layer];
|
|
260
158
|
if (vol)
|
|
261
159
|
return vol;
|
|
262
|
-
const firstLayerId = this.nrrd_states.layers[0];
|
|
160
|
+
const firstLayerId = this.nrrd_states.image.layers[0];
|
|
263
161
|
console.warn(`CommToolsData: unknown layer "${layer}", falling back to "${firstLayerId}"`);
|
|
264
162
|
return volumes[firstLayerId];
|
|
265
163
|
}
|
|
@@ -275,7 +173,7 @@ export class CommToolsData {
|
|
|
275
173
|
* ```
|
|
276
174
|
*/
|
|
277
175
|
getCurrentVolume() {
|
|
278
|
-
return this.getVolumeForLayer(this.gui_states.layer);
|
|
176
|
+
return this.getVolumeForLayer(this.gui_states.layerChannel.layer);
|
|
279
177
|
}
|
|
280
178
|
/**
|
|
281
179
|
* Get all three MaskVolume instances
|
|
@@ -311,10 +209,10 @@ export class CommToolsData {
|
|
|
311
209
|
return map;
|
|
312
210
|
}
|
|
313
211
|
/**
|
|
314
|
-
* Rewrite this {
|
|
212
|
+
* Rewrite this {clearActiveSlice} function under DrawToolCore
|
|
315
213
|
*/
|
|
316
|
-
|
|
317
|
-
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.");
|
|
318
216
|
}
|
|
319
217
|
/**
|
|
320
218
|
* Rewrite this {undoLastPainting} function under DrawToolCore
|
|
@@ -329,16 +227,10 @@ export class CommToolsData {
|
|
|
329
227
|
throw new Error("Child class must implement abstract redoLastPainting, currently you can find it in DrawToolCore.");
|
|
330
228
|
}
|
|
331
229
|
/**
|
|
332
|
-
* Rewrite this {
|
|
230
|
+
* Rewrite this {clearActiveLayer} function under NrrdTools
|
|
333
231
|
*/
|
|
334
|
-
|
|
335
|
-
throw new Error("Child class must implement abstract
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* Rewrite this {createEmptyPaintImage} function under NrrdTools
|
|
339
|
-
*/
|
|
340
|
-
createEmptyPaintImage(dimensions, paintImages) {
|
|
341
|
-
throw new Error("Child class must implement abstract clearStoreImages, currently you can find it in NrrdTools.");
|
|
232
|
+
clearActiveLayer() {
|
|
233
|
+
throw new Error("Child class must implement abstract clearActiveLayer, currently you can find it in NrrdTools.");
|
|
342
234
|
}
|
|
343
235
|
/**
|
|
344
236
|
* Rewrite this {resizePaintArea} function under NrrdTools
|
|
@@ -388,6 +280,21 @@ export class CommToolsData {
|
|
|
388
280
|
resetLayerCanvas() {
|
|
389
281
|
throw new Error("Child class must implement abstract resetLayerCanvas, currently you can find it in NrrdTools.");
|
|
390
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
|
+
}
|
|
391
298
|
/**
|
|
392
299
|
* Rewrite this {setSyncsliceNum} function under NrrdTools
|
|
393
300
|
*/
|
|
@@ -401,13 +308,13 @@ export class CommToolsData {
|
|
|
401
308
|
throw new Error("Child class must implement abstract redrawDisplayCanvas, currently you can find it in NrrdTools.");
|
|
402
309
|
}
|
|
403
310
|
/**
|
|
404
|
-
* Get a painted mask image
|
|
311
|
+
* Get a painted mask image based on current axis and input slice index.
|
|
405
312
|
*
|
|
406
|
-
* Phase 3: Reads directly from MaskVolume
|
|
313
|
+
* Phase 3: Reads directly from MaskVolume.
|
|
407
314
|
*
|
|
408
315
|
* @param axis "x" | "y" | "z"
|
|
409
316
|
* @param sliceIndex number
|
|
410
|
-
* @returns
|
|
317
|
+
* @returns Object with index and image, or undefined
|
|
411
318
|
*/
|
|
412
319
|
filterDrawedImage(axis, sliceIndex) {
|
|
413
320
|
try {
|
|
@@ -419,7 +326,7 @@ export class CommToolsData {
|
|
|
419
326
|
// Sagittal: width = depth (Z), height = height (Y)
|
|
420
327
|
: [dims.depth, dims.height];
|
|
421
328
|
const imageData = new ImageData(w, h);
|
|
422
|
-
const channelVis = this.gui_states.channelVisibility[this.gui_states.layer];
|
|
329
|
+
const channelVis = this.gui_states.layerChannel.channelVisibility[this.gui_states.layerChannel.layer];
|
|
423
330
|
volume.renderLabelSliceInto(sliceIndex, axis, imageData, channelVis);
|
|
424
331
|
return { index: sliceIndex, image: imageData };
|
|
425
332
|
}
|
|
@@ -441,7 +348,7 @@ export class CommToolsData {
|
|
|
441
348
|
*/
|
|
442
349
|
getOrCreateSliceBuffer(axis) {
|
|
443
350
|
try {
|
|
444
|
-
const vol = this.getVolumeForLayer(this.nrrd_states.layers[0]);
|
|
351
|
+
const vol = this.getVolumeForLayer(this.nrrd_states.image.layers[0]);
|
|
445
352
|
const dims = vol.getDimensions();
|
|
446
353
|
const [w, h] = axis === "z" ? [dims.width, dims.height] :
|
|
447
354
|
axis === "y" ? [dims.width, dims.depth] :
|
|
@@ -464,7 +371,7 @@ export class CommToolsData {
|
|
|
464
371
|
/**
|
|
465
372
|
* Render a layer's slice into a reusable buffer and draw to the target canvas.
|
|
466
373
|
*
|
|
467
|
-
* Uses MaskVolume.
|
|
374
|
+
* Uses MaskVolume.renderLabelSliceInto() for zero-allocation rendering.
|
|
468
375
|
* The caller should obtain the buffer via getOrCreateSliceBuffer() and reuse
|
|
469
376
|
* it across multiple layer renders.
|
|
470
377
|
*
|
|
@@ -482,16 +389,26 @@ export class CommToolsData {
|
|
|
482
389
|
if (!volume)
|
|
483
390
|
return;
|
|
484
391
|
// Get channel visibility for this layer
|
|
485
|
-
const channelVis = this.gui_states.channelVisibility[layer];
|
|
392
|
+
const channelVis = this.gui_states.layerChannel.channelVisibility[layer];
|
|
486
393
|
// Render label slice at full alpha — globalAlpha applied during compositeAllLayers
|
|
487
394
|
volume.renderLabelSliceInto(sliceIndex, axis, buffer, channelVis, 1.0);
|
|
488
395
|
this.setEmptyCanvasSize(axis);
|
|
489
396
|
this.protectedData.ctxes.emptyCtx.putImageData(buffer, 0, 0);
|
|
490
|
-
// No flip: MaskVolume stores in source coordinates matching the Three.js
|
|
491
|
-
// slice convention. Applying a display flip here would invert cross-axis
|
|
492
|
-
// slice indices (e.g. coronal 220 → 228 for a 448-slice volume).
|
|
493
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
|
+
}
|
|
494
408
|
targetCtx.drawImage(this.protectedData.canvases.emptyCanvas, 0, 0, scaledWidth, scaledHeight);
|
|
409
|
+
if (axis === 'y') {
|
|
410
|
+
targetCtx.restore();
|
|
411
|
+
}
|
|
495
412
|
}
|
|
496
413
|
catch (err) {
|
|
497
414
|
// Slice out of bounds or volume not ready — skip silently
|
|
@@ -540,13 +457,13 @@ export class CommToolsData {
|
|
|
540
457
|
*/
|
|
541
458
|
compositeAllLayers() {
|
|
542
459
|
const masterCtx = this.protectedData.ctxes.drawingLayerMasterCtx;
|
|
543
|
-
const width = this.nrrd_states.changedWidth;
|
|
544
|
-
const height = this.nrrd_states.changedHeight;
|
|
460
|
+
const width = this.nrrd_states.view.changedWidth;
|
|
461
|
+
const height = this.nrrd_states.view.changedHeight;
|
|
545
462
|
masterCtx.clearRect(0, 0, width, height);
|
|
546
463
|
// Master stores full-alpha composite; globalAlpha is applied once in
|
|
547
464
|
// start() when drawing master to drawingCtx (single point of control).
|
|
548
|
-
for (const layerId of this.nrrd_states.layers) {
|
|
549
|
-
if (!this.gui_states.layerVisibility[layerId])
|
|
465
|
+
for (const layerId of this.nrrd_states.image.layers) {
|
|
466
|
+
if (!this.gui_states.layerChannel.layerVisibility[layerId])
|
|
550
467
|
continue;
|
|
551
468
|
const target = this.protectedData.layerTargets.get(layerId);
|
|
552
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":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,OAAO,aAAa;IA4DxB,YACE,SAAsB,EACtB,iBAA8B,EAC9B,OAA+B;;QA9DjC,qBAAgB,GAAW,CAAC,CAAC;QAE7B,gEAAgE;QACxD,yBAAoB,GAAqB,IAAI,CAAC;QAC9C,yBAAoB,GAAW,CAAC,CAAC;QACjC,0BAAqB,GAAW,CAAC,CAAC;QAE1C,6DAA6D;QACnD,wBAAmB,GAAyB;YACpD,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC;YACxB,eAAe,EAAE,GAAG,EAAE,GAAG,CAAC;YAC1B,4BAA4B,EAAE,GAAG,EAAE,GAAG,CAAC;YACvC,oBAAoB,EAAE,GAAG,EAAE,GAAG,CAAC;YAC/B,qBAAqB,EAAE,GAAG,EAAE,GAAG,CAAC;SACjC,CAAC;QAEF,6EAA6E;QACnE,oBAAe,GAAY,KAAK,CAAC;QAE3C,yCAAyC;QAC/B,sBAAiB,GAAsB;YAC/C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;YAC7B,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,GAAG;YACX,UAAU,EAAE,aAAa;SAC1B,CAAC;QAEQ,gBAAW,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEnD,eAAU,GAAgB;YAClC,CAAC,EAAE;gBACD,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,KAAK;aACf;YACD,CAAC,EAAE;gBACD,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,KAAK;aACf;YACD,CAAC,EAAE;gBACD,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,KAAK;aACf;SACF,CAAC;QAEQ,eAAU,GAAG,IAAI,QAAQ,CAAC;YAClC,kBAAkB,EAAE,gBAAgB,CAAC,KAAK,CAAC;YAC3C,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACvC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;SACzC,CAAC,CAAC;QAOD,MAAM,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CACV,kBAAkB,MAAM,CAAC,MAAM,+CAA+C,CAC/E,CAAC;SACH;QAED,yDAAyD;QACzD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,CAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAC/B,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CACjE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;YACjB,EAAE;YACF,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE;SAC3E,CAAC,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAEvD,0DAA0D;QAC1D,0FAA0F;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEpE,IAAI,CAAC,aAAa,GAAG;YACnB,SAAS;YACT,iBAAiB;YACjB,cAAc,EAAE,EAAE;YAClB,aAAa,EAAE,EAAE;YACjB,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE;YACjB,mBAAmB,EAAE,SAAS;YAC9B,aAAa,EAAE,SAAS;YACxB,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE;gBACR,wDAAwD;gBACxD,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;oBACjC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBAClD,OAAO,GAAG,CAAC;gBACb,CAAC,EAAE,EAAgC,CAAC;aACrC;YACD,YAAY;YACZ,QAAQ,EAAE;gBACR;;;;mBAIG;gBACH,YAAY,EAAE,IAAI;gBAElB;;;;mBAIG;gBACH,aAAa,EAAE,cAAc,CAAC,aAAa;gBAE3C;;;mBAGG;gBACH,aAAa,EAAE,cAAc,CAAC,aAAa;gBAE3C;;;;mBAIG;gBACH,wBAAwB,EAAE,cAAc,CAAC,wBAAwB;gBAEjE;;;mBAGG;gBACH,mBAAmB,EAAE,cAAc,CAAC,mBAAmB;gBAEvD;;;mBAGG;gBACH,WAAW,EAAE,cAAc,CAAC,WAAW;aACxC;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAA6B;gBACrF,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAA6B;gBACrF,qBAAqB,EAAE,cAAc,CAAC,wBAAwB,CAAC,UAAU,CAAC,IAAI,CAA6B;gBAC3G,gBAAgB,EAAE,cAAc,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAA6B;gBACjG,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE;oBACpD,kBAAkB,EAAE,IAAI;iBACzB,CAA6B;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,0EAA0E;IAE1E;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,KAAa;QAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAChD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,iCAAiC,KAAK,uBAAuB,YAAY,GAAG,CAAC,CAAC;QAC3F,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;OAUG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,0EAA0E;IAElE,sBAAsB;QAC5B,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC/C,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC/C,wBAAwB,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC1D,mBAAmB,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;YACrD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;SAC9C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,QAAkB;QAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAC;QAClD,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE;YACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YAChE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;SAC9B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,gBAAgB;QACd,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,gBAAgB;QACd,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,gBAAgB;QACd,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,eAAe,CAAC,MAAc;QAC5B,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,cAAc,CAAC,MAAc;QAC3B,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,wBAAwB;QACtB,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,sBAAsB;QACpB,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,wBAAwB,CAAC,CAAU,EAAE,CAAU;QAC7C,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,kBAAkB,CAAC,IAAsB;QACvC,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,kBAAkB,CAChB,IAAqB,EACrB,EAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,iBAAyB;QAEzB,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,gBAAgB;QACd,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD;;;;OAIG;IACH,eAAe;QACb,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD;;;OAGG;IACH,cAAc;QACZ,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,eAAe;QACb,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IACD;;OAEG;IACH,mBAAmB;QACjB,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAqB,EACrB,UAAkB;QAElB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,MAAM,EAAE;gBACV,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;gBACpC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;oBACrD,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;wBACvC,mDAAmD;wBACnD,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtG,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBACrE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAChD;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,0CAA0C;SAC3C;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACH,sBAAsB,CAAC,IAAqB;QAC1C,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GACV,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBACvC,mDAAmD;oBACnD,yEAAyE;oBACzE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEhC,IACE,CAAC,IAAI,CAAC,oBAAoB;gBAC1B,IAAI,CAAC,oBAAoB,KAAK,CAAC;gBAC/B,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAChC;gBACA,IAAI,CAAC,oBAAoB,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;aAChC;YAED,OAAO,IAAI,CAAC,oBAAoB,CAAC;SAClC;QAAC,WAAM;YACN,OAAO,IAAI,CAAC,CAAC,mBAAmB;SACjC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CACjB,KAAa,EACb,IAAqB,EACrB,UAAkB,EAClB,MAAiB,EACjB,SAAmC,EACnC,WAAmB,EACnB,YAAoB;QAEpB,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,wCAAwC;YACxC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEzE,mFAAmF;YACnF,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACxC,wEAAwE;YACxE,iEAAiE;YACjE,mEAAmE;YACnE,0DAA0D;YAC1D,2EAA2E;YAC3E,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjB,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvB,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;aACvC;YACD,SAAS,CAAC,SAAS,CACjB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EACvC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,YAAY,CAChC,CAAC;YACF,IAAI,IAAI,KAAK,GAAG,EAAE;gBAChB,SAAS,CAAC,OAAO,EAAE,CAAC;aACrB;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,0DAA0D;SAC3D;IACH,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,oBAAoB,CAClB,GAA6B,EAC7B,KAAa,EACb,MAAc,EACd,IAAqB;QAErB,QAAQ,IAAI,EAAE;YACZ,KAAK,GAAG,EAAE,2BAA2B;gBACnC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClB,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,GAAG,EAAE,2BAA2B;gBACnC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC1B,MAAM;YACR,KAAK,GAAG,EAAE,yBAAyB;gBACjC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC1B,MAAM;SACT;IACH,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;QAEnD,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAEzC,qEAAqE;QACrE,uEAAuE;QACvE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;YACnD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC;gBAAE,SAAS;YACrE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,MAAM;gBAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACrE;IACH,CAAC;CACF"}
|
|
@@ -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.
|
|
@@ -79,13 +88,14 @@ export class DragOperator {
|
|
|
79
88
|
this.eventRouter.subscribeModeChange((prevMode, newMode) => {
|
|
80
89
|
const prev = prevMode;
|
|
81
90
|
const next = newMode;
|
|
82
|
-
// When entering draw or
|
|
83
|
-
if (next === 'draw' || next === 'contrast') {
|
|
91
|
+
// When entering draw, contrast, or crosshair mode, remove drag mode
|
|
92
|
+
if (next === 'draw' || next === 'contrast' || next === 'crosshair') {
|
|
84
93
|
this.removeDragMode();
|
|
85
94
|
}
|
|
86
|
-
// When leaving draw or
|
|
87
|
-
|
|
88
|
-
|
|
95
|
+
// When leaving draw, contrast, or crosshair mode (returning to idle), restore drag mode
|
|
96
|
+
// Do NOT restore if sphere mode is active
|
|
97
|
+
if ((prev === 'draw' || prev === 'contrast' || prev === 'crosshair') && next === 'idle') {
|
|
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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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IConvertObjType, IDrawingEvents, IContrastEvents, IDrawOpts
|
|
1
|
+
import { IConvertObjType, IDrawingEvents, IContrastEvents, IDrawOpts } from "./coreTools/coreType";
|
|
2
2
|
import { CommToolsData } from "./CommToolsData";
|
|
3
3
|
import { EventRouter } from "./eventRouter";
|
|
4
4
|
import { SphereTool } from "./tools/SphereTool";
|
|
@@ -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
|
-
* re-stores, and notifies external via getMask callback with clearFlag=true.
|
|
75
|
-
* Phase 6: Also records a MaskDelta for undo support.
|
|
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,10 +102,7 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
93
102
|
*/
|
|
94
103
|
private applyUndoRedoToCanvas;
|
|
95
104
|
/****************************Store images (delegated to ImageStoreHelper)****************************************************/
|
|
96
|
-
|
|
97
|
-
storeAllImages(index: number, layer: string): void;
|
|
98
|
-
storeImageToLayer(index: number, canvas: HTMLCanvasElement, paintedImages: IPaintImages): ImageData;
|
|
99
|
-
storeEachLayerImage(index: number, layer: string): void;
|
|
105
|
+
syncLayerSliceData(index: number, layer: string): void;
|
|
100
106
|
/******************************** Utils gui related functions (delegated to ContrastTool) ***************************************/
|
|
101
107
|
setupConrastEvents(callback: (step: number, towards: "horizental" | "vertical") => void): void;
|
|
102
108
|
configContrastDragMode: () => void;
|