copper3d 2.2.3 → 3.0.0
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 +1056 -5
- package/dist/Scene/copperScene.d.ts +3 -0
- package/dist/Scene/copperScene.js +13 -0
- package/dist/Scene/copperScene.js.map +1 -1
- package/dist/Utils/segmentation/CommToolsData.d.ts +109 -6
- package/dist/Utils/segmentation/CommToolsData.js +314 -50
- package/dist/Utils/segmentation/CommToolsData.js.map +1 -1
- package/dist/Utils/segmentation/DragOperator.d.ts +13 -7
- package/dist/Utils/segmentation/DragOperator.js +51 -165
- package/dist/Utils/segmentation/DragOperator.js.map +1 -1
- package/dist/Utils/segmentation/DrawToolCore.d.ts +57 -76
- package/dist/Utils/segmentation/DrawToolCore.js +368 -878
- package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
- package/dist/Utils/segmentation/NrrdTools.d.ts +277 -15
- package/dist/Utils/segmentation/NrrdTools.js +594 -232
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/core/MaskVolume.d.ts +477 -0
- package/dist/Utils/segmentation/core/MaskVolume.js +1238 -0
- package/dist/Utils/segmentation/core/MaskVolume.js.map +1 -0
- package/dist/Utils/segmentation/core/MigrationUtils.d.ts +97 -0
- package/dist/Utils/segmentation/core/MigrationUtils.js +163 -0
- package/dist/Utils/segmentation/core/MigrationUtils.js.map +1 -0
- package/dist/Utils/segmentation/core/UndoManager.d.ts +47 -0
- package/dist/Utils/segmentation/core/UndoManager.js +86 -0
- package/dist/Utils/segmentation/core/UndoManager.js.map +1 -0
- package/dist/Utils/segmentation/core/index.d.ts +76 -0
- package/dist/Utils/segmentation/core/index.js +75 -0
- package/dist/Utils/segmentation/core/index.js.map +1 -0
- package/dist/Utils/segmentation/core/types.d.ts +106 -0
- package/dist/Utils/segmentation/core/types.js +98 -0
- package/dist/Utils/segmentation/core/types.js.map +1 -0
- package/dist/Utils/segmentation/coreTools/coreType.d.ts +55 -36
- package/dist/Utils/segmentation/coreTools/coreType.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/gui.d.ts +6 -16
- package/dist/Utils/segmentation/coreTools/gui.js +23 -27
- package/dist/Utils/segmentation/coreTools/gui.js.map +1 -1
- package/dist/Utils/segmentation/eventRouter/EventRouter.d.ts +144 -0
- package/dist/Utils/segmentation/eventRouter/EventRouter.js +369 -0
- package/dist/Utils/segmentation/eventRouter/EventRouter.js.map +1 -0
- package/dist/Utils/segmentation/eventRouter/index.d.ts +7 -0
- package/dist/Utils/segmentation/eventRouter/index.js +7 -0
- package/dist/Utils/segmentation/eventRouter/index.js.map +1 -0
- package/dist/Utils/segmentation/eventRouter/types.d.ts +70 -0
- package/dist/Utils/segmentation/eventRouter/types.js +7 -0
- package/dist/Utils/segmentation/eventRouter/types.js.map +1 -0
- package/dist/Utils/segmentation/tools/BaseTool.d.ts +25 -0
- package/dist/Utils/segmentation/tools/BaseTool.js +18 -0
- package/dist/Utils/segmentation/tools/BaseTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/ContrastTool.d.ts +26 -0
- package/dist/Utils/segmentation/tools/ContrastTool.js +118 -0
- package/dist/Utils/segmentation/tools/ContrastTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/CrosshairTool.d.ts +30 -0
- package/dist/Utils/segmentation/tools/CrosshairTool.js +157 -0
- package/dist/Utils/segmentation/tools/CrosshairTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/DragSliceTool.d.ts +44 -0
- package/dist/Utils/segmentation/tools/DragSliceTool.js +170 -0
- package/dist/Utils/segmentation/tools/DragSliceTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/EraserTool.d.ts +16 -0
- package/dist/Utils/segmentation/tools/EraserTool.js +92 -0
- package/dist/Utils/segmentation/tools/EraserTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/ImageStoreHelper.d.ts +65 -0
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js +174 -0
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js.map +1 -0
- package/dist/Utils/segmentation/tools/SphereTool.d.ts +38 -0
- package/dist/Utils/segmentation/tools/SphereTool.js +193 -0
- package/dist/Utils/segmentation/tools/SphereTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/ZoomTool.d.ts +20 -0
- package/dist/Utils/segmentation/tools/ZoomTool.js +59 -0
- package/dist/Utils/segmentation/tools/ZoomTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/index.d.ts +22 -0
- package/dist/Utils/segmentation/tools/index.js +23 -0
- package/dist/Utils/segmentation/tools/index.js.map +1 -0
- package/dist/bundle.esm.js +4740 -1979
- package/dist/bundle.umd.js +4743 -1978
- package/dist/index.d.ts +5 -3
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/types/Renderer/copperRenderer.d.ts +1 -1
- package/dist/types/Renderer/copperRendererOnDemond.d.ts +1 -1
- package/dist/types/Scene/copperScene.d.ts +3 -0
- package/dist/types/Utils/segmentation/CommToolsData.d.ts +109 -6
- package/dist/types/Utils/segmentation/DragOperator.d.ts +13 -7
- package/dist/types/Utils/segmentation/DrawToolCore.d.ts +57 -76
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +277 -15
- package/dist/types/Utils/segmentation/core/MaskVolume.d.ts +477 -0
- package/dist/types/Utils/segmentation/core/MigrationUtils.d.ts +97 -0
- package/dist/types/Utils/segmentation/core/UndoManager.d.ts +47 -0
- package/dist/types/Utils/segmentation/core/index.d.ts +76 -0
- package/dist/types/Utils/segmentation/core/types.d.ts +106 -0
- package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +55 -36
- package/dist/types/Utils/segmentation/coreTools/gui.d.ts +6 -16
- package/dist/types/Utils/segmentation/eventRouter/EventRouter.d.ts +144 -0
- package/dist/types/Utils/segmentation/eventRouter/index.d.ts +7 -0
- package/dist/types/Utils/segmentation/eventRouter/types.d.ts +70 -0
- package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +25 -0
- package/dist/types/Utils/segmentation/tools/ContrastTool.d.ts +26 -0
- package/dist/types/Utils/segmentation/tools/CrosshairTool.d.ts +30 -0
- package/dist/types/Utils/segmentation/tools/DragSliceTool.d.ts +44 -0
- package/dist/types/Utils/segmentation/tools/EraserTool.d.ts +16 -0
- package/dist/types/Utils/segmentation/tools/ImageStoreHelper.d.ts +65 -0
- package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +38 -0
- package/dist/types/Utils/segmentation/tools/ZoomTool.d.ts +20 -0
- package/dist/types/Utils/segmentation/tools/index.d.ts +22 -0
- package/dist/types/index.d.ts +5 -3
- package/dist/types/types/types.d.ts +3 -3
- package/dist/types/types.d.ts +3 -3
- package/package.json +1 -1
- package/dist/Utils/segmentation/coreTools/archive.d.ts +0 -1
- package/dist/Utils/segmentation/coreTools/archive.js +0 -23
- package/dist/Utils/segmentation/coreTools/archive.js.map +0 -1
- package/dist/types/Utils/segmentation/coreTools/archive.d.ts +0 -1
|
@@ -1,8 +1,25 @@
|
|
|
1
|
+
import { MaskVolume } from "./core/index";
|
|
1
2
|
import { switchPencilIcon } from "../utils";
|
|
2
3
|
import { enableDownload } from "./coreTools/divControlTools";
|
|
3
4
|
export class CommToolsData {
|
|
4
|
-
constructor(container, mainAreaContainer) {
|
|
5
|
+
constructor(container, mainAreaContainer, options) {
|
|
6
|
+
var _a;
|
|
5
7
|
this.baseCanvasesSize = 1;
|
|
8
|
+
// Reusable ImageData buffer for zero-allocation slice rendering
|
|
9
|
+
this._reusableSliceBuffer = null;
|
|
10
|
+
this._reusableBufferWidth = 0;
|
|
11
|
+
this._reusableBufferHeight = 0;
|
|
12
|
+
/** Whether the keyboard-config dialog is open (suppresses all shortcuts). */
|
|
13
|
+
this._configKeyBoard = false;
|
|
14
|
+
/** Active keyboard shortcut bindings. */
|
|
15
|
+
this._keyboardSettings = {
|
|
16
|
+
draw: "Shift",
|
|
17
|
+
undo: "z",
|
|
18
|
+
redo: "y",
|
|
19
|
+
contrast: ["Control", "Meta"],
|
|
20
|
+
crosshair: "s",
|
|
21
|
+
mouseWheel: "Scroll:Zoom",
|
|
22
|
+
};
|
|
6
23
|
this.nrrd_states = {
|
|
7
24
|
originWidth: 0,
|
|
8
25
|
originHeight: 0,
|
|
@@ -24,7 +41,6 @@ export class CommToolsData {
|
|
|
24
41
|
dimensions: [],
|
|
25
42
|
loadMaskJson: false,
|
|
26
43
|
ratios: { x: 1, y: 1, z: 1 },
|
|
27
|
-
sharedPlace: { x: [-1], y: [-1], z: [-1] },
|
|
28
44
|
contrastNum: 0,
|
|
29
45
|
showContrast: false,
|
|
30
46
|
enableCursorChoose: false,
|
|
@@ -51,16 +67,10 @@ export class CommToolsData {
|
|
|
51
67
|
previousPanelL: -99999,
|
|
52
68
|
previousPanelT: -99999,
|
|
53
69
|
switchSliceFlag: false,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
undo: "z",
|
|
59
|
-
contrast: ["Control", "Meta"],
|
|
60
|
-
crosshair: "s",
|
|
61
|
-
mouseWheel: "Scroll:Zoom",
|
|
62
|
-
},
|
|
63
|
-
getMask: (mask, sliceId, label, width, height, clearAllFlag) => { },
|
|
70
|
+
layers: ["layer1", "layer2", "layer3"],
|
|
71
|
+
getMask: (sliceData, layerId, channelId, sliceIndex, axis, width, height, clearFlag) => { },
|
|
72
|
+
onClearLayerVolume: (layerId) => { },
|
|
73
|
+
onChannelColorChanged: () => { },
|
|
64
74
|
getSphere: (sphereOrigin, sphereRadius) => { },
|
|
65
75
|
getCalculateSpherePositions: (tumourSphereOrigin, skinSphereOrigin, ribSphereOrigin, nippleSphereOrigin, aixs) => { },
|
|
66
76
|
drawStartPos: { x: 1, y: 1 },
|
|
@@ -89,15 +99,15 @@ export class CommToolsData {
|
|
|
89
99
|
mainAreaSize: 3,
|
|
90
100
|
dragSensitivity: 75,
|
|
91
101
|
Eraser: false,
|
|
92
|
-
globalAlpha: 0.
|
|
102
|
+
globalAlpha: 0.6,
|
|
93
103
|
lineWidth: 2,
|
|
94
104
|
color: "#f50a33",
|
|
95
|
-
|
|
105
|
+
pencil: true,
|
|
96
106
|
fillColor: "#00ff00",
|
|
97
107
|
brushColor: "#00ff00",
|
|
98
|
-
brushAndEraserSize:
|
|
108
|
+
brushAndEraserSize: 10,
|
|
99
109
|
cursor: "dot",
|
|
100
|
-
|
|
110
|
+
layer: "layer1",
|
|
101
111
|
cal_distance: "tumour",
|
|
102
112
|
sphere: false,
|
|
103
113
|
calculator: false,
|
|
@@ -120,6 +130,9 @@ export class CommToolsData {
|
|
|
120
130
|
undo: () => {
|
|
121
131
|
this.undoLastPainting();
|
|
122
132
|
},
|
|
133
|
+
redo: () => {
|
|
134
|
+
this.redoLastPainting();
|
|
135
|
+
},
|
|
123
136
|
downloadCurrentMask: () => {
|
|
124
137
|
const config = {
|
|
125
138
|
axis: this.protectedData.axis,
|
|
@@ -136,8 +149,31 @@ export class CommToolsData {
|
|
|
136
149
|
this.resizePaintArea(this.nrrd_states.sizeFoctor);
|
|
137
150
|
this.resetPaintAreaUIPosition();
|
|
138
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
|
+
},
|
|
139
159
|
};
|
|
140
|
-
const
|
|
160
|
+
const layers = (_a = options === null || options === void 0 ? void 0 : options.layers) !== null && _a !== void 0 ? _a : ["layer1", "layer2", "layer3"];
|
|
161
|
+
if (layers.length > 10) {
|
|
162
|
+
console.warn(`CommToolsData: ${layers.length} layers requested; recommended maximum is 10.`);
|
|
163
|
+
}
|
|
164
|
+
// 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) => [
|
|
168
|
+
id,
|
|
169
|
+
{ 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
|
|
170
|
+
]));
|
|
171
|
+
const systemCanvases = this.generateSystemCanvases();
|
|
172
|
+
const layerTargets = this.generateLayerTargets(layers);
|
|
173
|
+
// Get NRRD dimensions (will be set later when NRRD loads)
|
|
174
|
+
// Default to 1x1x1 for now, will be re-initialized in NrrdTools when dimensions are known
|
|
175
|
+
const dims = this.nrrd_states.dimensions;
|
|
176
|
+
const [width, height, depth] = dims.length === 3 ? dims : [1, 1, 1];
|
|
141
177
|
this.protectedData = {
|
|
142
178
|
container,
|
|
143
179
|
mainAreaContainer,
|
|
@@ -152,45 +188,127 @@ export class CommToolsData {
|
|
|
152
188
|
Is_Draw: false,
|
|
153
189
|
axis: "z",
|
|
154
190
|
maskData: {
|
|
155
|
-
//
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
paintImages: { x: [], y: [], z: [] },
|
|
191
|
+
// Volumetric storage (Phase 3 — only storage mechanism)
|
|
192
|
+
volumes: layers.reduce((acc, id) => {
|
|
193
|
+
acc[id] = new MaskVolume(width, height, depth, 1);
|
|
194
|
+
return acc;
|
|
195
|
+
}, {}),
|
|
161
196
|
},
|
|
197
|
+
layerTargets,
|
|
162
198
|
canvases: {
|
|
199
|
+
/**
|
|
200
|
+
* Caches raw image data from the current slice.
|
|
201
|
+
* Used as a source for zoom/pan operations to avoid repeated decoding.
|
|
202
|
+
* Initialized as null, set in NrrdTools.ts.
|
|
203
|
+
*/
|
|
163
204
|
originCanvas: null,
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Top-most interaction layer.
|
|
207
|
+
* Captures mouse/pen events and displays real-time drawing strokes
|
|
208
|
+
* before they are committed to a specific layer.
|
|
209
|
+
*/
|
|
210
|
+
drawingCanvas: systemCanvases.drawingCanvas,
|
|
211
|
+
/**
|
|
212
|
+
* Background layer displaying the actual medical image slice (CT/MRI).
|
|
213
|
+
* This is the "base" image the user sees.
|
|
214
|
+
*/
|
|
215
|
+
displayCanvas: systemCanvases.displayCanvas,
|
|
216
|
+
/**
|
|
217
|
+
* Composite display layer.
|
|
218
|
+
* Merges all segmentation layers for unified visualization
|
|
219
|
+
* on top of the medical image.
|
|
220
|
+
*/
|
|
221
|
+
drawingCanvasLayerMaster: systemCanvases.drawingCanvasLayerMaster,
|
|
222
|
+
/**
|
|
223
|
+
* Dedicated layer for 3D Sphere tool visualization.
|
|
224
|
+
* Kept separate to allow independent rendering of sphere UI elements.
|
|
225
|
+
*/
|
|
226
|
+
drawingSphereCanvas: systemCanvases.drawingSphereCanvas,
|
|
227
|
+
/**
|
|
228
|
+
* Off-screen scratchpad canvas.
|
|
229
|
+
* Used for internal image processing, scaling, and format conversion.
|
|
230
|
+
*/
|
|
231
|
+
emptyCanvas: systemCanvases.emptyCanvas,
|
|
172
232
|
},
|
|
173
233
|
ctxes: {
|
|
174
|
-
drawingCtx:
|
|
175
|
-
displayCtx:
|
|
176
|
-
drawingLayerMasterCtx:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
drawingLayerThreeCtx: canvases[5].getContext("2d"),
|
|
180
|
-
drawingSphereCtx: canvases[6].getContext("2d"),
|
|
181
|
-
emptyCtx: canvases[7].getContext("2d", {
|
|
234
|
+
drawingCtx: systemCanvases.drawingCanvas.getContext("2d"),
|
|
235
|
+
displayCtx: systemCanvases.displayCanvas.getContext("2d"),
|
|
236
|
+
drawingLayerMasterCtx: systemCanvases.drawingCanvasLayerMaster.getContext("2d"),
|
|
237
|
+
drawingSphereCtx: systemCanvases.drawingSphereCanvas.getContext("2d"),
|
|
238
|
+
emptyCtx: systemCanvases.emptyCanvas.getContext("2d", {
|
|
182
239
|
willReadFrequently: true,
|
|
183
240
|
}),
|
|
184
241
|
},
|
|
185
242
|
};
|
|
186
243
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
244
|
+
// ── Volume Accessor Helpers (Phase 2) ──────────────────────────────────
|
|
245
|
+
/**
|
|
246
|
+
* Get MaskVolume for a specific layer
|
|
247
|
+
*
|
|
248
|
+
* @param layer - Layer name: "layer1", "layer2", or "layer3"
|
|
249
|
+
* @returns MaskVolume instance for the specified layer
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```ts
|
|
253
|
+
* const volume = this.getVolumeForLayer("layer1");
|
|
254
|
+
* volume.setVoxel(x, y, z, 255);
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
getVolumeForLayer(layer) {
|
|
258
|
+
const { volumes } = this.protectedData.maskData;
|
|
259
|
+
const vol = volumes[layer];
|
|
260
|
+
if (vol)
|
|
261
|
+
return vol;
|
|
262
|
+
const firstLayerId = this.nrrd_states.layers[0];
|
|
263
|
+
console.warn(`CommToolsData: unknown layer "${layer}", falling back to "${firstLayerId}"`);
|
|
264
|
+
return volumes[firstLayerId];
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get MaskVolume for the currently active layer
|
|
268
|
+
*
|
|
269
|
+
* @returns MaskVolume instance for the current layer
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* ```ts
|
|
273
|
+
* const volume = this.getCurrentVolume();
|
|
274
|
+
* const slice = volume.getSliceImageData(50, 'z');
|
|
275
|
+
* ```
|
|
276
|
+
*/
|
|
277
|
+
getCurrentVolume() {
|
|
278
|
+
return this.getVolumeForLayer(this.gui_states.layer);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Get all three MaskVolume instances
|
|
282
|
+
*
|
|
283
|
+
* @returns Object containing all three layer volumes
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```ts
|
|
287
|
+
* const { layer1, layer2, layer3 } = this.getAllVolumes();
|
|
288
|
+
* layer1.clear();
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
getAllVolumes() {
|
|
292
|
+
return this.protectedData.maskData.volumes;
|
|
293
|
+
}
|
|
294
|
+
// ───────────────────────────────────────────────────────────────────────
|
|
295
|
+
generateSystemCanvases() {
|
|
296
|
+
return {
|
|
297
|
+
drawingCanvas: document.createElement("canvas"),
|
|
298
|
+
displayCanvas: document.createElement("canvas"),
|
|
299
|
+
drawingCanvasLayerMaster: document.createElement("canvas"),
|
|
300
|
+
drawingSphereCanvas: document.createElement("canvas"),
|
|
301
|
+
emptyCanvas: document.createElement("canvas"),
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
generateLayerTargets(layerIds) {
|
|
305
|
+
const map = new Map();
|
|
306
|
+
for (const id of layerIds) {
|
|
190
307
|
const canvas = document.createElement("canvas");
|
|
191
|
-
|
|
308
|
+
const ctx = canvas.getContext("2d");
|
|
309
|
+
map.set(id, { canvas, ctx });
|
|
192
310
|
}
|
|
193
|
-
return
|
|
311
|
+
return map;
|
|
194
312
|
}
|
|
195
313
|
/**
|
|
196
314
|
* Rewrite this {clearPaint} function under DrawToolCore
|
|
@@ -204,6 +322,12 @@ export class CommToolsData {
|
|
|
204
322
|
undoLastPainting() {
|
|
205
323
|
throw new Error("Child class must implement abstract undoLastPainting, currently you can find it in DrawToolCore.");
|
|
206
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Rewrite this {redoLastPainting} function under DrawToolCore
|
|
327
|
+
*/
|
|
328
|
+
redoLastPainting() {
|
|
329
|
+
throw new Error("Child class must implement abstract redoLastPainting, currently you can find it in DrawToolCore.");
|
|
330
|
+
}
|
|
207
331
|
/**
|
|
208
332
|
* Rewrite this {clearStoreImages} function under NrrdTools
|
|
209
333
|
*/
|
|
@@ -279,15 +403,155 @@ export class CommToolsData {
|
|
|
279
403
|
/**
|
|
280
404
|
* Get a painted mask image (IPaintImage) based on current axis and input slice index.
|
|
281
405
|
*
|
|
406
|
+
* Phase 3: Reads directly from MaskVolume (no caching needed — reads are fast).
|
|
407
|
+
*
|
|
282
408
|
* @param axis "x" | "y" | "z"
|
|
283
409
|
* @param sliceIndex number
|
|
284
|
-
* @
|
|
285
|
-
* @returns
|
|
410
|
+
* @returns IPaintImage with the mask for the given slice, or undefined if not found
|
|
286
411
|
*/
|
|
287
|
-
filterDrawedImage(axis, sliceIndex
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
412
|
+
filterDrawedImage(axis, sliceIndex) {
|
|
413
|
+
try {
|
|
414
|
+
const volume = this.getCurrentVolume();
|
|
415
|
+
if (volume) {
|
|
416
|
+
const dims = volume.getDimensions();
|
|
417
|
+
const [w, h] = axis === 'z' ? [dims.width, dims.height]
|
|
418
|
+
: axis === 'y' ? [dims.width, dims.depth]
|
|
419
|
+
// Sagittal: width = depth (Z), height = height (Y)
|
|
420
|
+
: [dims.depth, dims.height];
|
|
421
|
+
const imageData = new ImageData(w, h);
|
|
422
|
+
const channelVis = this.gui_states.channelVisibility[this.gui_states.layer];
|
|
423
|
+
volume.renderLabelSliceInto(sliceIndex, axis, imageData, channelVis);
|
|
424
|
+
return { index: sliceIndex, image: imageData };
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
catch (err) {
|
|
428
|
+
// Volume not ready or slice out of bounds
|
|
429
|
+
}
|
|
430
|
+
return undefined;
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Get or create a reusable ImageData buffer for the given axis.
|
|
434
|
+
*
|
|
435
|
+
* Reuses the same buffer across multiple slice renders to avoid
|
|
436
|
+
* allocating a new ImageData per layer per slice switch.
|
|
437
|
+
* The buffer is only reallocated when slice dimensions change (axis switch).
|
|
438
|
+
*
|
|
439
|
+
* @param axis - Axis: "x", "y", or "z"
|
|
440
|
+
* @returns Reusable ImageData buffer with correct dimensions
|
|
441
|
+
*/
|
|
442
|
+
getOrCreateSliceBuffer(axis) {
|
|
443
|
+
try {
|
|
444
|
+
const vol = this.getVolumeForLayer(this.nrrd_states.layers[0]);
|
|
445
|
+
const dims = vol.getDimensions();
|
|
446
|
+
const [w, h] = axis === "z" ? [dims.width, dims.height] :
|
|
447
|
+
axis === "y" ? [dims.width, dims.depth] :
|
|
448
|
+
// Sagittal: width = depth (Z), height = height (Y)
|
|
449
|
+
// Matches setEmptyCanvasSize('x') and MaskVolume.getSliceDimensions('x')
|
|
450
|
+
[dims.depth, dims.height];
|
|
451
|
+
if (!this._reusableSliceBuffer ||
|
|
452
|
+
this._reusableBufferWidth !== w ||
|
|
453
|
+
this._reusableBufferHeight !== h) {
|
|
454
|
+
this._reusableSliceBuffer = new ImageData(w, h);
|
|
455
|
+
this._reusableBufferWidth = w;
|
|
456
|
+
this._reusableBufferHeight = h;
|
|
457
|
+
}
|
|
458
|
+
return this._reusableSliceBuffer;
|
|
459
|
+
}
|
|
460
|
+
catch (_a) {
|
|
461
|
+
return null; // Volume not ready
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Render a layer's slice into a reusable buffer and draw to the target canvas.
|
|
466
|
+
*
|
|
467
|
+
* Uses MaskVolume.getSliceRawImageDataInto() for zero-allocation rendering.
|
|
468
|
+
* The caller should obtain the buffer via getOrCreateSliceBuffer() and reuse
|
|
469
|
+
* it across multiple layer renders.
|
|
470
|
+
*
|
|
471
|
+
* @param layer - Layer name: "layer1", "layer2", or "layer3"
|
|
472
|
+
* @param axis - Axis: "x", "y", or "z"
|
|
473
|
+
* @param sliceIndex - Slice index
|
|
474
|
+
* @param buffer - Reusable ImageData buffer (from getOrCreateSliceBuffer)
|
|
475
|
+
* @param targetCtx - Canvas context to draw the result onto
|
|
476
|
+
* @param scaledWidth - Target display width
|
|
477
|
+
* @param scaledHeight - Target display height
|
|
478
|
+
*/
|
|
479
|
+
renderSliceToCanvas(layer, axis, sliceIndex, buffer, targetCtx, scaledWidth, scaledHeight) {
|
|
480
|
+
try {
|
|
481
|
+
const volume = this.getVolumeForLayer(layer);
|
|
482
|
+
if (!volume)
|
|
483
|
+
return;
|
|
484
|
+
// Get channel visibility for this layer
|
|
485
|
+
const channelVis = this.gui_states.channelVisibility[layer];
|
|
486
|
+
// Render label slice at full alpha — globalAlpha applied during compositeAllLayers
|
|
487
|
+
volume.renderLabelSliceInto(sliceIndex, axis, buffer, channelVis, 1.0);
|
|
488
|
+
this.setEmptyCanvasSize(axis);
|
|
489
|
+
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
|
+
targetCtx.imageSmoothingEnabled = false;
|
|
494
|
+
targetCtx.drawImage(this.protectedData.canvases.emptyCanvas, 0, 0, scaledWidth, scaledHeight);
|
|
495
|
+
}
|
|
496
|
+
catch (err) {
|
|
497
|
+
// Slice out of bounds or volume not ready — skip silently
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Invalidate the reusable buffer (e.g. when switching datasets).
|
|
502
|
+
* The buffer will be lazily recreated on next use.
|
|
503
|
+
*/
|
|
504
|
+
invalidateSliceBuffer() {
|
|
505
|
+
this._reusableSliceBuffer = null;
|
|
506
|
+
this._reusableBufferWidth = 0;
|
|
507
|
+
this._reusableBufferHeight = 0;
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Apply the same flip transform used by flipDisplayImageByAxis() to any
|
|
511
|
+
* canvas context. This ensures mask overlays align with the flipped CT image.
|
|
512
|
+
*
|
|
513
|
+
* The flip is its own inverse (applying twice = identity), so it works for
|
|
514
|
+
* both directions: volume→display (rendering) and display→volume (storing).
|
|
515
|
+
*
|
|
516
|
+
* @param ctx Target 2D context (must be wrapped in save/restore by caller).
|
|
517
|
+
* @param width Canvas width in pixels.
|
|
518
|
+
* @param height Canvas height in pixels.
|
|
519
|
+
* @param axis Current viewing axis.
|
|
520
|
+
*/
|
|
521
|
+
applyMaskFlipForAxis(ctx, width, height, axis) {
|
|
522
|
+
switch (axis) {
|
|
523
|
+
case "x": // sagittal: flip both axes
|
|
524
|
+
ctx.scale(-1, -1);
|
|
525
|
+
ctx.translate(-width, -height);
|
|
526
|
+
break;
|
|
527
|
+
case "y": // coronal: flip vertically
|
|
528
|
+
ctx.scale(1, -1);
|
|
529
|
+
ctx.translate(0, -height);
|
|
530
|
+
break;
|
|
531
|
+
case "z": // axial: flip vertically
|
|
532
|
+
ctx.scale(1, -1);
|
|
533
|
+
ctx.translate(0, -height);
|
|
534
|
+
break;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Composite all layer canvases to the master display canvas.
|
|
539
|
+
* Only draws layers whose visibility is enabled.
|
|
540
|
+
*/
|
|
541
|
+
compositeAllLayers() {
|
|
542
|
+
const masterCtx = this.protectedData.ctxes.drawingLayerMasterCtx;
|
|
543
|
+
const width = this.nrrd_states.changedWidth;
|
|
544
|
+
const height = this.nrrd_states.changedHeight;
|
|
545
|
+
masterCtx.clearRect(0, 0, width, height);
|
|
546
|
+
// Master stores full-alpha composite; globalAlpha is applied once in
|
|
547
|
+
// 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])
|
|
550
|
+
continue;
|
|
551
|
+
const target = this.protectedData.layerTargets.get(layerId);
|
|
552
|
+
if (target)
|
|
553
|
+
masterCtx.drawImage(target.canvas, 0, 0, width, height);
|
|
554
|
+
}
|
|
291
555
|
}
|
|
292
556
|
}
|
|
293
557
|
//# sourceMappingURL=CommToolsData.js.map
|
|
@@ -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,5 @@
|
|
|
1
|
-
import { IDragOpts, IDrawingEvents, IProtected, IGUIStates, INrrdStates
|
|
1
|
+
import { IDragOpts, IDrawingEvents, IProtected, IGUIStates, INrrdStates } from "./coreTools/coreType";
|
|
2
|
+
import type { EventRouter } from "./eventRouter";
|
|
2
3
|
export declare class DragOperator {
|
|
3
4
|
container: HTMLElement;
|
|
4
5
|
private dragPrameters;
|
|
@@ -8,20 +9,25 @@ export declare class DragOperator {
|
|
|
8
9
|
private nrrd_states;
|
|
9
10
|
private gui_states;
|
|
10
11
|
private protectedData;
|
|
11
|
-
private
|
|
12
|
+
private dragSliceTool;
|
|
12
13
|
private setSyncsliceNum;
|
|
13
14
|
private setIsDrawFalse;
|
|
14
15
|
private flipDisplayImageByAxis;
|
|
15
16
|
private setEmptyCanvasSize;
|
|
16
|
-
private
|
|
17
|
-
|
|
17
|
+
private getOrCreateSliceBuffer;
|
|
18
|
+
private renderSliceToCanvas;
|
|
19
|
+
private eventRouter;
|
|
20
|
+
constructor(container: HTMLElement, nrrd_sates: INrrdStates, gui_states: IGUIStates, 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);
|
|
18
21
|
private init;
|
|
19
22
|
setShowDragNumberDiv(sliceIndexContainer: HTMLDivElement): void;
|
|
23
|
+
/**
|
|
24
|
+
* Set the EventRouter reference for centralized event handling.
|
|
25
|
+
* Called by NrrdTools/DrawToolCore after EventRouter is initialized.
|
|
26
|
+
* Subscribes to mode changes to control drag mode.
|
|
27
|
+
*/
|
|
28
|
+
setEventRouter(eventRouter: EventRouter): void;
|
|
20
29
|
drag(opts?: IDragOpts): void;
|
|
21
30
|
updateIndex(move: number): void;
|
|
22
|
-
private drawDragSlice;
|
|
23
|
-
private drawMaskToLabelCtx;
|
|
24
|
-
private cleanCanvases;
|
|
25
31
|
updateShowNumDiv(contrastNum: number): void;
|
|
26
32
|
updateCurrentContrastSlice(): any;
|
|
27
33
|
configDragMode: () => void;
|