copper3d 3.0.2 → 3.1.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.
Files changed (104) 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 +167 -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 +89 -467
  12. package/dist/Utils/segmentation/NrrdTools.js +479 -1335
  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 +180 -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 +384 -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/NrrdState.d.ts +1 -1
  26. package/dist/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
  27. package/dist/Utils/segmentation/coreTools/gui.d.ts +1 -1
  28. package/dist/Utils/segmentation/tools/BaseTool.d.ts +1 -1
  29. package/dist/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
  30. package/dist/Utils/segmentation/tools/ContrastTool.js.map +1 -1
  31. package/dist/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
  32. package/dist/Utils/segmentation/tools/CrosshairTool.js +25 -0
  33. package/dist/Utils/segmentation/tools/CrosshairTool.js.map +1 -1
  34. package/dist/Utils/segmentation/tools/DataLoader.d.ts +33 -0
  35. package/dist/Utils/segmentation/tools/DataLoader.js +159 -0
  36. package/dist/Utils/segmentation/tools/DataLoader.js.map +1 -0
  37. package/dist/Utils/segmentation/tools/DragSliceTool.d.ts +3 -12
  38. package/dist/Utils/segmentation/tools/DragSliceTool.js.map +1 -1
  39. package/dist/Utils/segmentation/tools/DrawingTool.d.ts +18 -26
  40. package/dist/Utils/segmentation/tools/DrawingTool.js +48 -0
  41. package/dist/Utils/segmentation/tools/DrawingTool.js.map +1 -1
  42. package/dist/Utils/segmentation/tools/ImageStoreHelper.d.ts +2 -5
  43. package/dist/Utils/segmentation/tools/ImageStoreHelper.js.map +1 -1
  44. package/dist/Utils/segmentation/tools/LayerChannelManager.d.ts +52 -0
  45. package/dist/Utils/segmentation/tools/LayerChannelManager.js +175 -0
  46. package/dist/Utils/segmentation/tools/LayerChannelManager.js.map +1 -0
  47. package/dist/Utils/segmentation/tools/PanTool.d.ts +2 -8
  48. package/dist/Utils/segmentation/tools/PanTool.js.map +1 -1
  49. package/dist/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
  50. package/dist/Utils/segmentation/tools/SliceRenderPipeline.js +355 -0
  51. package/dist/Utils/segmentation/tools/SliceRenderPipeline.js.map +1 -0
  52. package/dist/Utils/segmentation/tools/SphereTool.d.ts +25 -19
  53. package/dist/Utils/segmentation/tools/SphereTool.js +61 -7
  54. package/dist/Utils/segmentation/tools/SphereTool.js.map +1 -1
  55. package/dist/Utils/segmentation/tools/ToolHost.d.ts +74 -0
  56. package/dist/Utils/segmentation/tools/ToolHost.js +10 -0
  57. package/dist/Utils/segmentation/tools/ToolHost.js.map +1 -0
  58. package/dist/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
  59. package/dist/Utils/segmentation/tools/ZoomTool.js.map +1 -1
  60. package/dist/Utils/segmentation/tools/index.d.ts +5 -7
  61. package/dist/Utils/segmentation/tools/index.js +6 -0
  62. package/dist/Utils/segmentation/tools/index.js.map +1 -1
  63. package/dist/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
  64. package/dist/bundle.esm.js +2109 -2357
  65. package/dist/bundle.umd.js +2109 -2357
  66. package/dist/index.d.ts +3 -3
  67. package/dist/index.js +1 -1
  68. package/dist/types/Utils/segmentation/CanvasState.d.ts +31 -0
  69. package/dist/types/Utils/segmentation/DragOperator.d.ts +1 -1
  70. package/dist/types/Utils/segmentation/DrawToolCore.d.ts +49 -27
  71. package/dist/types/Utils/segmentation/NrrdTools.d.ts +89 -467
  72. package/dist/types/Utils/segmentation/RenderingUtils.d.ts +73 -0
  73. package/dist/types/Utils/segmentation/core/MaskVolume.d.ts +1 -1
  74. package/dist/types/Utils/segmentation/core/index.d.ts +1 -1
  75. package/dist/types/Utils/segmentation/core/types.d.ts +384 -0
  76. package/dist/types/Utils/segmentation/coreTools/GuiState.d.ts +1 -1
  77. package/dist/types/Utils/segmentation/coreTools/NrrdState.d.ts +1 -1
  78. package/dist/types/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
  79. package/dist/types/Utils/segmentation/coreTools/gui.d.ts +1 -1
  80. package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +1 -1
  81. package/dist/types/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
  82. package/dist/types/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
  83. package/dist/types/Utils/segmentation/tools/DataLoader.d.ts +33 -0
  84. package/dist/types/Utils/segmentation/tools/DragSliceTool.d.ts +3 -12
  85. package/dist/types/Utils/segmentation/tools/DrawingTool.d.ts +18 -26
  86. package/dist/types/Utils/segmentation/tools/ImageStoreHelper.d.ts +2 -5
  87. package/dist/types/Utils/segmentation/tools/LayerChannelManager.d.ts +52 -0
  88. package/dist/types/Utils/segmentation/tools/PanTool.d.ts +2 -8
  89. package/dist/types/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
  90. package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +25 -19
  91. package/dist/types/Utils/segmentation/tools/ToolHost.d.ts +74 -0
  92. package/dist/types/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
  93. package/dist/types/Utils/segmentation/tools/index.d.ts +5 -7
  94. package/dist/types/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
  95. package/dist/types/index.d.ts +3 -3
  96. package/package.json +1 -1
  97. package/dist/Utils/segmentation/CommToolsData.d.ts +0 -192
  98. package/dist/Utils/segmentation/CommToolsData.js +0 -474
  99. package/dist/Utils/segmentation/CommToolsData.js.map +0 -1
  100. package/dist/Utils/segmentation/coreTools/coreType.d.ts +0 -389
  101. package/dist/Utils/segmentation/coreTools/coreType.js +0 -3
  102. package/dist/Utils/segmentation/coreTools/coreType.js.map +0 -1
  103. package/dist/types/Utils/segmentation/CommToolsData.d.ts +0 -192
  104. package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +0 -389
@@ -104,3 +104,387 @@ 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
+ }
256
+ export interface IGUIStates extends IToolModeState, IDrawingConfig, IViewConfig, ILayerChannelState {
257
+ }
258
+ /** Metadata for a GUI slider/control — used by Vue components to configure slider UI */
259
+ export interface IGuiMeta {
260
+ min: number;
261
+ max: number;
262
+ step: number;
263
+ value: number;
264
+ }
265
+ export interface IGuiParameterSettings {
266
+ globalAlpha: {
267
+ name: "Opacity";
268
+ min: number;
269
+ max: number;
270
+ step: number;
271
+ };
272
+ pencil: {
273
+ name: "Pencil";
274
+ onChange: () => void;
275
+ };
276
+ sphere: {
277
+ name: "Sphere";
278
+ onChange: () => void;
279
+ };
280
+ brushAndEraserSize: {
281
+ name: "BrushAndEraserSize";
282
+ min: number;
283
+ max: number;
284
+ step: number;
285
+ onChange: () => void;
286
+ };
287
+ eraser: {
288
+ name: "Eraser";
289
+ onChange: () => void;
290
+ };
291
+ activeSphereType: {
292
+ name: "CalculatorDistance";
293
+ onChange: (val: "tumour" | "skin" | "ribcage" | "nipple") => void;
294
+ };
295
+ clear: {
296
+ name: "Clear";
297
+ };
298
+ clearAll: {
299
+ name: "ClearAll";
300
+ };
301
+ undo: {
302
+ name: "Undo";
303
+ };
304
+ redo: {
305
+ name: "Redo";
306
+ };
307
+ resetZoom: {
308
+ name: "ResetZoom";
309
+ };
310
+ windowHigh: {
311
+ name: "ImageContrast";
312
+ value: null;
313
+ min: number;
314
+ max: number;
315
+ step: number;
316
+ onChange: (value: number) => void;
317
+ onFinished: () => void;
318
+ };
319
+ windowLow: {
320
+ name: "WindowLow";
321
+ value: null;
322
+ min: number;
323
+ max: number;
324
+ step: number;
325
+ onChange: (value: number) => void;
326
+ onFinished: () => void;
327
+ };
328
+ advance: {
329
+ layer: {
330
+ name: "Layer";
331
+ value: string[];
332
+ };
333
+ cursor: {
334
+ name: "CursorIcon";
335
+ value: ["crosshair", "pencil", "dot"];
336
+ };
337
+ mainAreaSize: {
338
+ name: "Zoom";
339
+ min: number;
340
+ max: number;
341
+ step: number;
342
+ onFinished: null;
343
+ };
344
+ dragSensitivity: {
345
+ name: "DragSensitivity";
346
+ min: number;
347
+ max: number;
348
+ step: number;
349
+ };
350
+ pencilSettings: {
351
+ lineWidth: {
352
+ name: "OuterLineWidth";
353
+ min: number;
354
+ max: number;
355
+ step: number;
356
+ };
357
+ color: {
358
+ name: "Color";
359
+ };
360
+ fillColor: {
361
+ name: "FillColor";
362
+ };
363
+ };
364
+ BrushSettings: {
365
+ brushColor: {
366
+ name: "BrushColor";
367
+ };
368
+ };
369
+ };
370
+ }
371
+ /** Image metadata — set once during NRRD loading, read-only at runtime */
372
+ export interface IImageMetadata {
373
+ originWidth: number;
374
+ originHeight: number;
375
+ nrrd_x_mm: number;
376
+ nrrd_y_mm: number;
377
+ nrrd_z_mm: number;
378
+ nrrd_x_pixel: number;
379
+ nrrd_y_pixel: number;
380
+ nrrd_z_pixel: number;
381
+ dimensions: number[];
382
+ voxelSpacing: number[];
383
+ spaceOrigin: number[];
384
+ RSARatio: number;
385
+ ratios: ICommXYZ;
386
+ layers: string[];
387
+ }
388
+ /** View state — runtime display/navigation state */
389
+ export interface IViewState {
390
+ changedWidth: number;
391
+ changedHeight: number;
392
+ currentSliceIndex: number;
393
+ preSliceIndex: number;
394
+ maxIndex: number;
395
+ minIndex: number;
396
+ contrastNum: number;
397
+ sizeFactor: number;
398
+ showContrast: boolean;
399
+ switchSliceFlag: boolean;
400
+ previousPanelL: number;
401
+ previousPanelT: number;
402
+ }
403
+ /** Interaction state — mouse/cursor tracking */
404
+ export interface IInteractionState {
405
+ mouseOverX: number;
406
+ mouseOverY: number;
407
+ mouseOver: boolean;
408
+ cursorPageX: number;
409
+ cursorPageY: number;
410
+ isCursorSelect: boolean;
411
+ drawStartPos: ICommXY;
412
+ }
413
+ /** Sphere state — SphereTool-specific data */
414
+ export interface ISphereState {
415
+ sphereOrigin: ICommXYZ;
416
+ tumourSphereOrigin: ICommXYZ | null;
417
+ skinSphereOrigin: ICommXYZ | null;
418
+ ribSphereOrigin: ICommXYZ | null;
419
+ nippleSphereOrigin: ICommXYZ | null;
420
+ /** Dedicated MaskVolume for SphereTool 3D sphere data. Type is `any` to avoid circular deps. */
421
+ sphereMaskVolume: any;
422
+ sphereRadius: number;
423
+ }
424
+ /** Internal flags — transient operational flags */
425
+ export interface IInternalFlags {
426
+ stepClear: number;
427
+ clearAllFlag: boolean;
428
+ loadingMaskData: boolean;
429
+ }
430
+ /** Legacy flat interface — kept for backward compatibility during migration */
431
+ export interface INrrdStates extends IImageMetadata, IViewState, IInteractionState, ISphereState, IInternalFlags {
432
+ }
433
+ /** Callbacks for external notification of annotation data changes */
434
+ export interface IAnnotationCallbacks {
435
+ onMaskChanged(sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag: boolean): void;
436
+ onSphereChanged(sphereOrigin: number[], sphereRadius: number): void;
437
+ onCalculatorPositionsChanged(tumour: ICommXYZ | null, skin: ICommXYZ | null, rib: ICommXYZ | null, nipple: ICommXYZ | null, axis: "x" | "y" | "z"): void;
438
+ onLayerVolumeCleared(layerId: string): void;
439
+ onChannelColorChanged(layerId: string, channel: number, color: {
440
+ r: number;
441
+ g: number;
442
+ b: number;
443
+ a: number;
444
+ }): void;
445
+ }
446
+ export interface IConvertObjType {
447
+ currentNewSliceIndex: number;
448
+ preSliceIndex: number;
449
+ convertCursorNumX: number;
450
+ convertCursorNumY: number;
451
+ }
452
+ export interface ICursorPage {
453
+ x: {
454
+ cursorPageX: number;
455
+ cursorPageY: number;
456
+ index: number;
457
+ updated: boolean;
458
+ };
459
+ y: {
460
+ cursorPageX: number;
461
+ cursorPageY: number;
462
+ index: number;
463
+ updated: boolean;
464
+ };
465
+ z: {
466
+ cursorPageX: number;
467
+ cursorPageY: number;
468
+ index: number;
469
+ updated: boolean;
470
+ };
471
+ }
472
+ export interface IDragOpts {
473
+ showNumber?: boolean;
474
+ getSliceNum?: (index: number, contrastNum: number) => void;
475
+ }
476
+ export interface IDrawOpts {
477
+ getMaskData?: (sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag?: boolean) => void;
478
+ onClearLayerVolume?: (layerId: string) => void;
479
+ getSphereData?: (sphereOrigin: number[], sphereRadius: number) => void;
480
+ getCalculateSpherePositionsData?: (tumourSphereOrigin: ICommXYZ | null, skinSphereOrigin: ICommXYZ | null, ribSphereOrigin: ICommXYZ | null, nippleSphereOrigin: ICommXYZ | null, aixs: "x" | "y" | "z") => void;
481
+ }
482
+ export interface IKeyBoardSettings {
483
+ draw: string;
484
+ undo: string;
485
+ redo: string;
486
+ contrast: string[];
487
+ crosshair: string;
488
+ sphere: string;
489
+ mouseWheel: "Scroll:Zoom" | "Scroll:Slice";
490
+ }
@@ -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;
@@ -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":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,OAAO,YAAa,SAAQ,QAAQ;IAKxC,YACE,GAAgB,EAChB,SAAsB,EACtB,sBAAuC,EACvC,SAA2B;QAE3B,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,mCAAmC;IAEnC,kBAAkB,CAChB,QAAoE;QAEpE,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAC3D,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAE5D,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,GAAG,CAAC,EAAc,EAAE,EAAE;YACzE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnB,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAC7B,aAAa,EACb,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CACtD,CAAC;aACH;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,GAAG,CAAC,EAAc,EAAE,EAAE;YACvE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAChC,aAAa,EACb,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CACtD,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,GAAG,QAAQ,CAC9D,CAAC,EAAc,EAAE,EAAE;YACjB,IACE,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC7B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC,EACD;gBACA,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAC7C,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC5B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC7C,EAAE,CACH,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAC9C,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC5B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC7C,EAAE,CACH,CAAC;aACH;YAED,IACE,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD;gBACA,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;aAC1D;YAED,IACE,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC7B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC1C,CAAC,EACD;gBACA,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAC7C,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC5B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC7C,EAAE,CACH,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAC9C,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC5B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAC7C,EAAE,CACH,CAAC;aACH;YAED,IACE,IAAI,CAAC,sBAAsB,CAAC,MAAM,KAAK,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAClD;gBACA,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;aAC5D;YAED,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC3B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC3B,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/C,CAAC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,iCAAiC;IAEjC,sBAAsB;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAC7B,aAAa,EACb,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,EACrD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAC7B,WAAW,EACX,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EACnD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAChC,aAAa,EACb,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,EACrD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAChC,aAAa,EACb,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,EACrD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAChC,WAAW,EACX,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,EACnD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAChC,cAAc,EACd,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,EACtD,IAAI,CACL,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,+BAA+B;IAE/B,oBAAoB,CAAC,KAAa,EAAE,IAAY;QAC9C,QAAQ,IAAI,EAAE;YACZ,KAAK,gBAAgB;gBACnB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC;gBACtC,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrD,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,MAAM;SACT;QACD,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtC,CAAC;IAED,4BAA4B;QAC1B,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -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":"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"}
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
+ }