copper3d 3.0.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +183 -1028
  2. package/dist/Utils/segmentation/CanvasState.d.ts +31 -0
  3. package/dist/Utils/segmentation/CanvasState.js +168 -0
  4. package/dist/Utils/segmentation/CanvasState.js.map +1 -0
  5. package/dist/Utils/segmentation/DragOperator.d.ts +1 -1
  6. package/dist/Utils/segmentation/DragOperator.js +2 -4
  7. package/dist/Utils/segmentation/DragOperator.js.map +1 -1
  8. package/dist/Utils/segmentation/DrawToolCore.d.ts +49 -27
  9. package/dist/Utils/segmentation/DrawToolCore.js +275 -344
  10. package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
  11. package/dist/Utils/segmentation/NrrdTools.d.ts +92 -467
  12. package/dist/Utils/segmentation/NrrdTools.js +499 -1341
  13. package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
  14. package/dist/Utils/segmentation/RenderingUtils.d.ts +73 -0
  15. package/dist/Utils/segmentation/RenderingUtils.js +186 -0
  16. package/dist/Utils/segmentation/RenderingUtils.js.map +1 -0
  17. package/dist/Utils/segmentation/core/MaskVolume.d.ts +1 -1
  18. package/dist/Utils/segmentation/core/MaskVolume.js +1 -1
  19. package/dist/Utils/segmentation/core/index.d.ts +1 -1
  20. package/dist/Utils/segmentation/core/index.js.map +1 -1
  21. package/dist/Utils/segmentation/core/types.d.ts +386 -0
  22. package/dist/Utils/segmentation/core/types.js +1 -0
  23. package/dist/Utils/segmentation/core/types.js.map +1 -1
  24. package/dist/Utils/segmentation/coreTools/GuiState.d.ts +1 -1
  25. package/dist/Utils/segmentation/coreTools/GuiState.js +1 -0
  26. package/dist/Utils/segmentation/coreTools/GuiState.js.map +1 -1
  27. package/dist/Utils/segmentation/coreTools/NrrdState.d.ts +1 -1
  28. package/dist/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
  29. package/dist/Utils/segmentation/coreTools/gui.d.ts +1 -1
  30. package/dist/Utils/segmentation/tools/BaseTool.d.ts +1 -1
  31. package/dist/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
  32. package/dist/Utils/segmentation/tools/ContrastTool.js.map +1 -1
  33. package/dist/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
  34. package/dist/Utils/segmentation/tools/CrosshairTool.js +25 -0
  35. package/dist/Utils/segmentation/tools/CrosshairTool.js.map +1 -1
  36. package/dist/Utils/segmentation/tools/DataLoader.d.ts +33 -0
  37. package/dist/Utils/segmentation/tools/DataLoader.js +159 -0
  38. package/dist/Utils/segmentation/tools/DataLoader.js.map +1 -0
  39. package/dist/Utils/segmentation/tools/DragSliceTool.d.ts +3 -12
  40. package/dist/Utils/segmentation/tools/DragSliceTool.js.map +1 -1
  41. package/dist/Utils/segmentation/tools/DrawingTool.d.ts +18 -26
  42. package/dist/Utils/segmentation/tools/DrawingTool.js +48 -0
  43. package/dist/Utils/segmentation/tools/DrawingTool.js.map +1 -1
  44. package/dist/Utils/segmentation/tools/ImageStoreHelper.d.ts +2 -5
  45. package/dist/Utils/segmentation/tools/ImageStoreHelper.js.map +1 -1
  46. package/dist/Utils/segmentation/tools/LayerChannelManager.d.ts +56 -0
  47. package/dist/Utils/segmentation/tools/LayerChannelManager.js +188 -0
  48. package/dist/Utils/segmentation/tools/LayerChannelManager.js.map +1 -0
  49. package/dist/Utils/segmentation/tools/PanTool.d.ts +2 -8
  50. package/dist/Utils/segmentation/tools/PanTool.js.map +1 -1
  51. package/dist/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
  52. package/dist/Utils/segmentation/tools/SliceRenderPipeline.js +355 -0
  53. package/dist/Utils/segmentation/tools/SliceRenderPipeline.js.map +1 -0
  54. package/dist/Utils/segmentation/tools/SphereTool.d.ts +25 -19
  55. package/dist/Utils/segmentation/tools/SphereTool.js +61 -7
  56. package/dist/Utils/segmentation/tools/SphereTool.js.map +1 -1
  57. package/dist/Utils/segmentation/tools/ToolHost.d.ts +74 -0
  58. package/dist/Utils/segmentation/tools/ToolHost.js +10 -0
  59. package/dist/Utils/segmentation/tools/ToolHost.js.map +1 -0
  60. package/dist/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
  61. package/dist/Utils/segmentation/tools/ZoomTool.js.map +1 -1
  62. package/dist/Utils/segmentation/tools/index.d.ts +5 -7
  63. package/dist/Utils/segmentation/tools/index.js +6 -0
  64. package/dist/Utils/segmentation/tools/index.js.map +1 -1
  65. package/dist/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
  66. package/dist/bundle.esm.js +2146 -2359
  67. package/dist/bundle.umd.js +2146 -2359
  68. package/dist/index.d.ts +3 -3
  69. package/dist/index.js +1 -1
  70. package/dist/types/Utils/segmentation/CanvasState.d.ts +31 -0
  71. package/dist/types/Utils/segmentation/DragOperator.d.ts +1 -1
  72. package/dist/types/Utils/segmentation/DrawToolCore.d.ts +49 -27
  73. package/dist/types/Utils/segmentation/NrrdTools.d.ts +92 -467
  74. package/dist/types/Utils/segmentation/RenderingUtils.d.ts +73 -0
  75. package/dist/types/Utils/segmentation/core/MaskVolume.d.ts +1 -1
  76. package/dist/types/Utils/segmentation/core/index.d.ts +1 -1
  77. package/dist/types/Utils/segmentation/core/types.d.ts +386 -0
  78. package/dist/types/Utils/segmentation/coreTools/GuiState.d.ts +1 -1
  79. package/dist/types/Utils/segmentation/coreTools/NrrdState.d.ts +1 -1
  80. package/dist/types/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
  81. package/dist/types/Utils/segmentation/coreTools/gui.d.ts +1 -1
  82. package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +1 -1
  83. package/dist/types/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
  84. package/dist/types/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
  85. package/dist/types/Utils/segmentation/tools/DataLoader.d.ts +33 -0
  86. package/dist/types/Utils/segmentation/tools/DragSliceTool.d.ts +3 -12
  87. package/dist/types/Utils/segmentation/tools/DrawingTool.d.ts +18 -26
  88. package/dist/types/Utils/segmentation/tools/ImageStoreHelper.d.ts +2 -5
  89. package/dist/types/Utils/segmentation/tools/LayerChannelManager.d.ts +56 -0
  90. package/dist/types/Utils/segmentation/tools/PanTool.d.ts +2 -8
  91. package/dist/types/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
  92. package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +25 -19
  93. package/dist/types/Utils/segmentation/tools/ToolHost.d.ts +74 -0
  94. package/dist/types/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
  95. package/dist/types/Utils/segmentation/tools/index.d.ts +5 -7
  96. package/dist/types/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
  97. package/dist/types/index.d.ts +3 -3
  98. package/package.json +1 -1
  99. package/dist/Utils/segmentation/CommToolsData.d.ts +0 -192
  100. package/dist/Utils/segmentation/CommToolsData.js +0 -474
  101. package/dist/Utils/segmentation/CommToolsData.js.map +0 -1
  102. package/dist/Utils/segmentation/coreTools/coreType.d.ts +0 -389
  103. package/dist/Utils/segmentation/coreTools/coreType.js +0 -3
  104. package/dist/Utils/segmentation/coreTools/coreType.js.map +0 -1
  105. package/dist/types/Utils/segmentation/CommToolsData.d.ts +0 -192
  106. package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +0 -389
@@ -104,3 +104,389 @@ export declare function rgbaToHex(color: RGBAColor): string;
104
104
  * Convert an RGBAColor to a CSS rgba() string, e.g. 'rgba(255,0,0,1.00)'.
105
105
  */
106
106
  export declare function rgbaToCss(color: RGBAColor): string;
107
+ import type { MaskVolume } from './MaskVolume';
108
+ export interface ICommXYZ {
109
+ x: any;
110
+ y: any;
111
+ z: any;
112
+ }
113
+ export interface ICommXY {
114
+ x: any;
115
+ y: any;
116
+ }
117
+ export interface ISkipSlicesDictType {
118
+ [key: string]: any;
119
+ }
120
+ /** Tool mode types for segmentation tools */
121
+ export type ToolMode = "pencil" | "brush" | "eraser" | "sphere" | "calculator";
122
+ export interface IDragPrameters {
123
+ move: number;
124
+ y: number;
125
+ h: number;
126
+ sensivity: number;
127
+ handleOnDragMouseUp: (ev: MouseEvent) => void;
128
+ handleOnDragMouseDown: (ev: MouseEvent) => void;
129
+ handleOnDragMouseMove: (ev: MouseEvent) => void;
130
+ }
131
+ export interface IDrawingEvents {
132
+ handleOnDrawingMouseDown: (ev: MouseEvent) => void;
133
+ handleOnDrawingMouseMove: (ev: MouseEvent) => void;
134
+ handleOnPanMouseMove: (ev: MouseEvent) => void;
135
+ handleOnDrawingMouseUp: (ev: MouseEvent) => void;
136
+ handleOnDrawingMouseLeave: (ev: MouseEvent) => void;
137
+ handleOnDrawingBrushCricleMove: (ev: MouseEvent) => void;
138
+ handleMouseZoomSliceWheel: (e: WheelEvent) => void;
139
+ handleSphereWheel: (e: WheelEvent) => void;
140
+ }
141
+ export interface IContrastEvents {
142
+ move_x: number;
143
+ move_y: number;
144
+ x: number;
145
+ y: number;
146
+ w: number;
147
+ h: number;
148
+ handleOnContrastMouseDown: (ev: MouseEvent) => void;
149
+ handleOnContrastMouseMove: (ev: MouseEvent) => void;
150
+ handleOnContrastMouseUp: (ev: MouseEvent) => void;
151
+ handleOnContrastMouseLeave: (ev: MouseEvent) => void;
152
+ }
153
+ export interface IPaintImages {
154
+ x: Array<IPaintImage>;
155
+ y: Array<IPaintImage>;
156
+ z: Array<IPaintImage>;
157
+ }
158
+ export interface IPaintImage {
159
+ index: number;
160
+ image: ImageData;
161
+ }
162
+ /**
163
+ * A paired canvas + 2D context for a single annotation layer.
164
+ * Stored atomically in IProtected.layerTargets to prevent canvas/ctx desync.
165
+ */
166
+ export interface ILayerRenderTarget {
167
+ canvas: HTMLCanvasElement;
168
+ ctx: CanvasRenderingContext2D;
169
+ }
170
+ export interface IDownloadImageConfig {
171
+ axis: "x" | "y" | "z";
172
+ currentSliceIndex: number;
173
+ drawingCanvas: HTMLCanvasElement;
174
+ originWidth: number;
175
+ originHeight: number;
176
+ }
177
+ /**
178
+ * New mask data structure using MaskVolume for true 3D storage.
179
+ * Dynamic N-layer support: keyed by layer id (e.g. 'layer1', 'layer2', ...).
180
+ */
181
+ export type INewMaskData = Record<string, MaskVolume>;
182
+ /**
183
+ * Mask data storage using volumetric MaskVolume (Phase 3)
184
+ *
185
+ * Phase 2 legacy ImageData storage has been removed.
186
+ * All mask data now stored in 3D volumes for memory efficiency.
187
+ */
188
+ export type IMaskData = {
189
+ volumes: INewMaskData;
190
+ };
191
+ export interface IProtected {
192
+ container: HTMLElement;
193
+ mainAreaContainer: HTMLElement;
194
+ allSlicesArray: Array<ICommXYZ>;
195
+ displaySlices: Array<any>;
196
+ backUpDisplaySlices: Array<any>;
197
+ skipSlicesDic: ISkipSlicesDictType;
198
+ currentShowingSlice: any;
199
+ mainPreSlices: any;
200
+ isDrawing: boolean;
201
+ axis: "x" | "y" | "z";
202
+ maskData: IMaskData;
203
+ /** Dynamic per-layer canvas+ctx pairs. Replaces hardcoded LayerOne/Two/Three fields. */
204
+ layerTargets: Map<string, ILayerRenderTarget>;
205
+ canvases: {
206
+ originCanvas: HTMLCanvasElement | any;
207
+ drawingCanvas: HTMLCanvasElement;
208
+ displayCanvas: HTMLCanvasElement;
209
+ drawingCanvasLayerMaster: HTMLCanvasElement;
210
+ drawingSphereCanvas: HTMLCanvasElement;
211
+ emptyCanvas: HTMLCanvasElement;
212
+ };
213
+ ctxes: {
214
+ displayCtx: CanvasRenderingContext2D;
215
+ drawingCtx: CanvasRenderingContext2D;
216
+ emptyCtx: CanvasRenderingContext2D;
217
+ drawingSphereCtx: CanvasRenderingContext2D;
218
+ drawingLayerMasterCtx: CanvasRenderingContext2D;
219
+ };
220
+ }
221
+ /** Tool mode flags — which tool is currently active */
222
+ export interface IToolModeState {
223
+ pencil: boolean;
224
+ eraser: boolean;
225
+ sphere: boolean;
226
+ activeSphereType: "tumour" | "skin" | "nipple" | "ribcage";
227
+ }
228
+ /** Drawing configuration — brush/pencil appearance and behavior */
229
+ export interface IDrawingConfig {
230
+ globalAlpha: number;
231
+ lineWidth: number;
232
+ color: string;
233
+ fillColor: string;
234
+ brushColor: string;
235
+ brushAndEraserSize: number;
236
+ }
237
+ /** View configuration — UI layout and interaction parameters */
238
+ export interface IViewConfig {
239
+ mainAreaSize: number;
240
+ dragSensitivity: number;
241
+ cursor: string;
242
+ defaultPaintCursor: string;
243
+ max_sensitive: number;
244
+ readyToUpdate: boolean;
245
+ }
246
+ /** Layer/channel state — active layer, channel, and visibility */
247
+ export interface ILayerChannelState {
248
+ layer: string;
249
+ /** Currently active channel (1-8). Channel 0 is transparent/erased. */
250
+ activeChannel: number;
251
+ /** Layer visibility state: { layer1: true, layer2: true, layer3: true } */
252
+ layerVisibility: Record<string, boolean>;
253
+ /** Per-layer channel visibility: { layer1: { 1: true, ..., 8: true }, ... } */
254
+ channelVisibility: Record<string, Record<number, boolean>>;
255
+ /** Per-layer opacity: { layer1: 1.0, layer2: 0.6, ... }. Range [0.1, 1.0]. */
256
+ layerOpacity: Record<string, number>;
257
+ }
258
+ export interface IGUIStates extends IToolModeState, IDrawingConfig, IViewConfig, ILayerChannelState {
259
+ }
260
+ /** Metadata for a GUI slider/control — used by Vue components to configure slider UI */
261
+ export interface IGuiMeta {
262
+ min: number;
263
+ max: number;
264
+ step: number;
265
+ value: number;
266
+ }
267
+ export interface IGuiParameterSettings {
268
+ globalAlpha: {
269
+ name: "Opacity";
270
+ min: number;
271
+ max: number;
272
+ step: number;
273
+ };
274
+ pencil: {
275
+ name: "Pencil";
276
+ onChange: () => void;
277
+ };
278
+ sphere: {
279
+ name: "Sphere";
280
+ onChange: () => void;
281
+ };
282
+ brushAndEraserSize: {
283
+ name: "BrushAndEraserSize";
284
+ min: number;
285
+ max: number;
286
+ step: number;
287
+ onChange: () => void;
288
+ };
289
+ eraser: {
290
+ name: "Eraser";
291
+ onChange: () => void;
292
+ };
293
+ activeSphereType: {
294
+ name: "CalculatorDistance";
295
+ onChange: (val: "tumour" | "skin" | "ribcage" | "nipple") => void;
296
+ };
297
+ clear: {
298
+ name: "Clear";
299
+ };
300
+ clearAll: {
301
+ name: "ClearAll";
302
+ };
303
+ undo: {
304
+ name: "Undo";
305
+ };
306
+ redo: {
307
+ name: "Redo";
308
+ };
309
+ resetZoom: {
310
+ name: "ResetZoom";
311
+ };
312
+ windowHigh: {
313
+ name: "ImageContrast";
314
+ value: null;
315
+ min: number;
316
+ max: number;
317
+ step: number;
318
+ onChange: (value: number) => void;
319
+ onFinished: () => void;
320
+ };
321
+ windowLow: {
322
+ name: "WindowLow";
323
+ value: null;
324
+ min: number;
325
+ max: number;
326
+ step: number;
327
+ onChange: (value: number) => void;
328
+ onFinished: () => void;
329
+ };
330
+ advance: {
331
+ layer: {
332
+ name: "Layer";
333
+ value: string[];
334
+ };
335
+ cursor: {
336
+ name: "CursorIcon";
337
+ value: ["crosshair", "pencil", "dot"];
338
+ };
339
+ mainAreaSize: {
340
+ name: "Zoom";
341
+ min: number;
342
+ max: number;
343
+ step: number;
344
+ onFinished: null;
345
+ };
346
+ dragSensitivity: {
347
+ name: "DragSensitivity";
348
+ min: number;
349
+ max: number;
350
+ step: number;
351
+ };
352
+ pencilSettings: {
353
+ lineWidth: {
354
+ name: "OuterLineWidth";
355
+ min: number;
356
+ max: number;
357
+ step: number;
358
+ };
359
+ color: {
360
+ name: "Color";
361
+ };
362
+ fillColor: {
363
+ name: "FillColor";
364
+ };
365
+ };
366
+ BrushSettings: {
367
+ brushColor: {
368
+ name: "BrushColor";
369
+ };
370
+ };
371
+ };
372
+ }
373
+ /** Image metadata — set once during NRRD loading, read-only at runtime */
374
+ export interface IImageMetadata {
375
+ originWidth: number;
376
+ originHeight: number;
377
+ nrrd_x_mm: number;
378
+ nrrd_y_mm: number;
379
+ nrrd_z_mm: number;
380
+ nrrd_x_pixel: number;
381
+ nrrd_y_pixel: number;
382
+ nrrd_z_pixel: number;
383
+ dimensions: number[];
384
+ voxelSpacing: number[];
385
+ spaceOrigin: number[];
386
+ RSARatio: number;
387
+ ratios: ICommXYZ;
388
+ layers: string[];
389
+ }
390
+ /** View state — runtime display/navigation state */
391
+ export interface IViewState {
392
+ changedWidth: number;
393
+ changedHeight: number;
394
+ currentSliceIndex: number;
395
+ preSliceIndex: number;
396
+ maxIndex: number;
397
+ minIndex: number;
398
+ contrastNum: number;
399
+ sizeFactor: number;
400
+ showContrast: boolean;
401
+ switchSliceFlag: boolean;
402
+ previousPanelL: number;
403
+ previousPanelT: number;
404
+ }
405
+ /** Interaction state — mouse/cursor tracking */
406
+ export interface IInteractionState {
407
+ mouseOverX: number;
408
+ mouseOverY: number;
409
+ mouseOver: boolean;
410
+ cursorPageX: number;
411
+ cursorPageY: number;
412
+ isCursorSelect: boolean;
413
+ drawStartPos: ICommXY;
414
+ }
415
+ /** Sphere state — SphereTool-specific data */
416
+ export interface ISphereState {
417
+ sphereOrigin: ICommXYZ;
418
+ tumourSphereOrigin: ICommXYZ | null;
419
+ skinSphereOrigin: ICommXYZ | null;
420
+ ribSphereOrigin: ICommXYZ | null;
421
+ nippleSphereOrigin: ICommXYZ | null;
422
+ /** Dedicated MaskVolume for SphereTool 3D sphere data. Type is `any` to avoid circular deps. */
423
+ sphereMaskVolume: any;
424
+ sphereRadius: number;
425
+ }
426
+ /** Internal flags — transient operational flags */
427
+ export interface IInternalFlags {
428
+ stepClear: number;
429
+ clearAllFlag: boolean;
430
+ loadingMaskData: boolean;
431
+ }
432
+ /** Legacy flat interface — kept for backward compatibility during migration */
433
+ export interface INrrdStates extends IImageMetadata, IViewState, IInteractionState, ISphereState, IInternalFlags {
434
+ }
435
+ /** Callbacks for external notification of annotation data changes */
436
+ export interface IAnnotationCallbacks {
437
+ onMaskChanged(sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag: boolean): void;
438
+ onSphereChanged(sphereOrigin: number[], sphereRadius: number): void;
439
+ onCalculatorPositionsChanged(tumour: ICommXYZ | null, skin: ICommXYZ | null, rib: ICommXYZ | null, nipple: ICommXYZ | null, axis: "x" | "y" | "z"): void;
440
+ onLayerVolumeCleared(layerId: string): void;
441
+ onChannelColorChanged(layerId: string, channel: number, color: {
442
+ r: number;
443
+ g: number;
444
+ b: number;
445
+ a: number;
446
+ }): void;
447
+ }
448
+ export interface IConvertObjType {
449
+ currentNewSliceIndex: number;
450
+ preSliceIndex: number;
451
+ convertCursorNumX: number;
452
+ convertCursorNumY: number;
453
+ }
454
+ export interface ICursorPage {
455
+ x: {
456
+ cursorPageX: number;
457
+ cursorPageY: number;
458
+ index: number;
459
+ updated: boolean;
460
+ };
461
+ y: {
462
+ cursorPageX: number;
463
+ cursorPageY: number;
464
+ index: number;
465
+ updated: boolean;
466
+ };
467
+ z: {
468
+ cursorPageX: number;
469
+ cursorPageY: number;
470
+ index: number;
471
+ updated: boolean;
472
+ };
473
+ }
474
+ export interface IDragOpts {
475
+ showNumber?: boolean;
476
+ getSliceNum?: (index: number, contrastNum: number) => void;
477
+ }
478
+ export interface IDrawOpts {
479
+ getMaskData?: (sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag?: boolean) => void;
480
+ onClearLayerVolume?: (layerId: string) => void;
481
+ getSphereData?: (sphereOrigin: number[], sphereRadius: number) => void;
482
+ getCalculateSpherePositionsData?: (tumourSphereOrigin: ICommXYZ | null, skinSphereOrigin: ICommXYZ | null, ribSphereOrigin: ICommXYZ | null, nippleSphereOrigin: ICommXYZ | null, aixs: "x" | "y" | "z") => void;
483
+ }
484
+ export interface IKeyBoardSettings {
485
+ draw: string;
486
+ undo: string;
487
+ redo: string;
488
+ contrast: string[];
489
+ crosshair: string;
490
+ sphere: string;
491
+ mouseWheel: "Scroll:Zoom" | "Scroll:Slice";
492
+ }
@@ -95,4 +95,5 @@ export function rgbaToHex(color) {
95
95
  export function rgbaToCss(color) {
96
96
  return `rgba(${color.r},${color.g},${color.b},${(color.a / 255).toFixed(2)})`;
97
97
  }
98
+ ;
98
99
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/core/types.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * - viewConfig: UI layout and interaction parameters
8
8
  * - layerChannel: Active layer, channel, and visibility
9
9
  */
10
- import type { IToolModeState, IDrawingConfig, IViewConfig, ILayerChannelState } from "./coreType";
10
+ import type { IToolModeState, IDrawingConfig, IViewConfig, ILayerChannelState } from "../core/types";
11
11
  export declare class GuiState {
12
12
  readonly mode: IToolModeState;
13
13
  readonly drawing: IDrawingConfig;
@@ -42,6 +42,7 @@ export class GuiState {
42
42
  l,
43
43
  { 1: true, 2: true, 3: true, 4: true, 5: true, 6: true, 7: true, 8: true },
44
44
  ])),
45
+ layerOpacity: Object.fromEntries(layers.map((l) => [l, 1.0])),
45
46
  };
46
47
  }
47
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GuiState.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/GuiState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,OAAO,QAAQ;IAMnB,YAAY,OAKX;;QACC,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,GAAG;YACV,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,QAAQ;SAC3B,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,SAAS;YAC7C,UAAU,EAAE,MAAA,IAAI,CAAC,iBAAiB,mCAAI,SAAS;YAC/C,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG;YAChB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,EAAE;YACnB,MAAM,EAAE,KAAK;YACb,kBAAkB,EAAE,MAAA,IAAI,CAAC,kBAAkB,mCAAI,EAAE;YACjD,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;YAClB,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACjE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,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;aAC3E,CAAC,CACH;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"GuiState.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/GuiState.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,OAAO,QAAQ;IAMnB,YAAY,OAKX;;QACC,MAAM,IAAI,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE7D,IAAI,CAAC,IAAI,GAAG;YACV,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,QAAQ;SAC3B,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,SAAS;YAC7C,UAAU,EAAE,MAAA,IAAI,CAAC,iBAAiB,mCAAI,SAAS;YAC/C,kBAAkB,EAAE,EAAE;SACvB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG;YAChB,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,EAAE;YACnB,MAAM,EAAE,KAAK;YACb,kBAAkB,EAAE,MAAA,IAAI,CAAC,kBAAkB,mCAAI,EAAE;YACjD,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,IAAI;SACpB,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;YAClB,KAAK,EAAE,QAAQ;YACf,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YACjE,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChB,CAAC;gBACD,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;aAC3E,CAAC,CACH;YACD,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SAC9D,CAAC;IACJ,CAAC;CACF"}
@@ -10,7 +10,7 @@
10
10
  *
11
11
  * Phase 4 of the State Management Refactor.
12
12
  */
13
- import type { IImageMetadata, IViewState, IInteractionState, ISphereState, IInternalFlags } from "./coreType";
13
+ import type { IImageMetadata, IViewState, IInteractionState, ISphereState, IInternalFlags } from "../core/types";
14
14
  export declare class NrrdState {
15
15
  readonly image: IImageMetadata;
16
16
  readonly view: IViewState;
@@ -1,4 +1,4 @@
1
- import { IDownloadImageConfig } from "./coreType";
1
+ import { IDownloadImageConfig } from "../core/types";
2
2
  /**
3
3
  * A div for show the slice and contrast numbers on
4
4
  * the top of container.
@@ -1,5 +1,5 @@
1
1
  import { GUI } from "dat.gui";
2
- import { IDrawingEvents, IProtected, IGuiParameterSettings } from "./coreType";
2
+ import { IDrawingEvents, IProtected, IGuiParameterSettings } from "../core/types";
3
3
  import type { GuiState } from "./GuiState";
4
4
  import { NrrdState } from "./NrrdState";
5
5
  import { DragOperator } from "../DragOperator";
@@ -6,7 +6,7 @@
6
6
  * NOTE: This is for the OLD DrawToolCore system.
7
7
  * The new SegmentationManager system has its own tools in manager/tools/.
8
8
  */
9
- import type { IProtected, ICursorPage, IAnnotationCallbacks } from "../coreTools/coreType";
9
+ import type { IProtected, ICursorPage, IAnnotationCallbacks } from "../core/types";
10
10
  import type { NrrdState } from "../coreTools/NrrdState";
11
11
  import type { GuiState } from "../coreTools/GuiState";
12
12
  import type { EventRouter } from "../eventRouter/EventRouter";
@@ -8,16 +8,13 @@
8
8
  */
9
9
  import { BaseTool } from "./BaseTool";
10
10
  import type { ToolContext } from "./BaseTool";
11
- import type { IContrastEvents } from "../coreTools/coreType";
12
- export interface ContrastCallbacks {
13
- setIsDrawFalse: (target: number) => void;
14
- setSyncsliceNum: () => void;
15
- }
11
+ import type { IContrastEvents } from "../core/types";
12
+ import type { ContrastHostDeps } from "./ToolHost";
16
13
  export declare class ContrastTool extends BaseTool {
17
14
  private contrastEventPrameters;
18
15
  private container;
19
16
  private callbacks;
20
- constructor(ctx: ToolContext, container: HTMLElement, contrastEventPrameters: IContrastEvents, callbacks: ContrastCallbacks);
17
+ constructor(ctx: ToolContext, container: HTMLElement, contrastEventPrameters: IContrastEvents, callbacks: ContrastHostDeps);
21
18
  setupConrastEvents(callback: (step: number, towards: "horizental" | "vertical") => void): void;
22
19
  configContrastDragMode(): void;
23
20
  removeContrastDragMode(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ContrastTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/ContrastTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContrastTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/ContrastTool.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * - setUpSphereOrigins
8
8
  */
9
9
  import { BaseTool } from "./BaseTool";
10
- import type { IConvertObjType } from "../coreTools/coreType";
10
+ import type { IConvertObjType } from "../core/types";
11
11
  export declare class CrosshairTool extends BaseTool {
12
12
  enableCrosshair(): void;
13
13
  /**
@@ -26,5 +26,15 @@ export declare class CrosshairTool extends BaseTool {
26
26
  * @param currentSliceIndex Current slice depth (mm distance)
27
27
  */
28
28
  convertCursorPoint(from: "x" | "y" | "z", to: "x" | "y" | "z", cursorNumX: number, cursorNumY: number, currentSliceIndex: number): IConvertObjType | undefined;
29
+ /**
30
+ * Render crosshair lines on the drawing context.
31
+ * Called from the start() render loop when crosshair mode is active.
32
+ *
33
+ * @param ctx - The drawing canvas 2D context
34
+ * @param width - Canvas width (changedWidth)
35
+ * @param height - Canvas height (changedHeight)
36
+ */
37
+ renderCrosshair(ctx: CanvasRenderingContext2D, width: number, height: number): void;
38
+ private drawLine;
29
39
  setUpSphereOrigins(mouseX: number, mouseY: number, sliceIndex: number): void;
30
40
  }
@@ -126,6 +126,31 @@ export class CrosshairTool extends BaseTool {
126
126
  }
127
127
  return { currentNewSliceIndex, preSliceIndex, convertCursorNumX, convertCursorNumY };
128
128
  }
129
+ // ===== Crosshair Rendering =====
130
+ /**
131
+ * Render crosshair lines on the drawing context.
132
+ * Called from the start() render loop when crosshair mode is active.
133
+ *
134
+ * @param ctx - The drawing canvas 2D context
135
+ * @param width - Canvas width (changedWidth)
136
+ * @param height - Canvas height (changedHeight)
137
+ */
138
+ renderCrosshair(ctx, width, height) {
139
+ ctx.clearRect(0, 0, width, height);
140
+ const ex = this.ctx.nrrd_states.interaction.cursorPageX *
141
+ this.ctx.nrrd_states.view.sizeFactor;
142
+ const ey = this.ctx.nrrd_states.interaction.cursorPageY *
143
+ this.ctx.nrrd_states.view.sizeFactor;
144
+ this.drawLine(ctx, ex, 0, ex, width);
145
+ this.drawLine(ctx, 0, ey, height, ey);
146
+ }
147
+ drawLine(ctx, x1, y1, x2, y2) {
148
+ ctx.beginPath();
149
+ ctx.moveTo(x1, y1);
150
+ ctx.lineTo(x2, y2);
151
+ ctx.strokeStyle = this.ctx.gui_states.drawing.color;
152
+ ctx.stroke();
153
+ }
129
154
  // ===== Sphere Origins Setup =====
130
155
  setUpSphereOrigins(mouseX, mouseY, sliceIndex) {
131
156
  const convertCursor = (from, to) => {
@@ -1 +1 @@
1
- {"version":3,"file":"CrosshairTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/CrosshairTool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,OAAO,aAAc,SAAQ,QAAQ;IAEzC,+BAA+B;IAE/B,eAAe;QACb,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;QACvD,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE;YACnC,KAAK,GAAG;gBACN,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBACrC,MAAM;SACT;IACH,CAAC;IAED,sCAAsC;IAEtC;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAChB,IAAqB,EACrB,EAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,iBAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAElD,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,MAAM,YAAY,GAA4D;YAC5E,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aACjE;YACD,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aACrE;YACD,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aACjE;SACF,CAAC;QAEF,MAAM,aAAa,GAAmE;YACpF,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAC9E,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;aAC/E;YACD,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAC9E,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;aAC/E;YACD,CAAC,EAAE;gBACD,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBAC9E,CAAC,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;aACnF;SACF,CAAC;QAEF,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,OAAO;SACR;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YAC9B,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC;SAChC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YACrC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC;YAChD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC;SAC3D;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YACrC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC;SAChC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YACrC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC;SAC3D;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YACrC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC;SAChC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE;YACrC,oBAAoB,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;YAC1D,aAAa,GAAG,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC;YAChD,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/D,iBAAiB,GAAG,UAAU,CAAC;SAChC;aAAM;YACL,OAAO;SACR;QAED,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;IACvF,CAAC;IAED,mCAAmC;IAEnC,kBAAkB,CAAC,MAAc,EAAE,MAAc,EAAE,UAAkB;QACnE,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAE,EAAmB,EAAE,EAAE;YACnE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CACxC,IAAI,EACJ,EAAE,EACF,MAAM,EACN,MAAM,EACN,UAAU,CACQ,CAAC;YAErB,OAAO;gBACL,iBAAiB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,iBAAiB;gBAChD,iBAAiB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,iBAAiB;gBAChD,oBAAoB,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,oBAAoB;aACvD,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,eAAe,GAA2E;YAC9F,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;YACjC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;YACjC,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;SAClC,CAAC;QAEF,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE1E,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG;YAClD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,iBAAiB;YACrE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,iBAAiB;YACrE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,oBAAoB;SACzE,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG;YAClD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,iBAAiB;YACrE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,iBAAiB;YACrE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,oBAAoB;SACzE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"CrosshairTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/CrosshairTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { BaseTool } from "./BaseTool";
2
+ import type { ToolContext } from "./BaseTool";
3
+ import type { nrrdSliceType, storeExportPaintImageType, loadingBarType } from "../../../types/types";
4
+ import type { DataLoaderHostDeps } from "./ToolHost";
5
+ /**
6
+ * Handles data loading for NRRD slices and mask volumes.
7
+ *
8
+ * Extracted from NrrdTools.ts to reduce its size.
9
+ * Follows the same BaseTool + ToolContext + Callbacks pattern as other tools.
10
+ */
11
+ export declare class DataLoader extends BaseTool {
12
+ private callbacks;
13
+ constructor(ctx: ToolContext, callbacks: DataLoaderHostDeps);
14
+ /****************************Slice Loading****************************************************/
15
+ /**
16
+ * Load all NRRD contrast slices and initialize MaskVolumes with real dimensions.
17
+ */
18
+ setAllSlices(allSlices: Array<nrrdSliceType>): void;
19
+ /****************************Legacy Mask Loading****************************************************/
20
+ private loadingMaskByLayer;
21
+ setMasksData(masksData: storeExportPaintImageType, loadingBar?: loadingBarType): void;
22
+ /****************************NIfTI Mask Loading****************************************************/
23
+ /**
24
+ * Load raw voxel data into MaskVolume layers.
25
+ *
26
+ * Expects pre-extracted voxel bytes (e.g. from useNiftiVoxelData).
27
+ *
28
+ * @param layerVoxels Map of layer ID to raw voxel Uint8Array
29
+ * Keys should be 'layer1', 'layer2', 'layer3'
30
+ * @param loadingBar Optional loading bar UI
31
+ */
32
+ setMasksFromNIfTI(layerVoxels: Map<string, Uint8Array>, loadingBar?: loadingBarType): void;
33
+ }