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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Type Definitions for MaskVolume
|
|
3
|
+
*
|
|
4
|
+
* Shared types for the 3D volumetric mask storage system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 3D volume dimensions in voxels.
|
|
8
|
+
*
|
|
9
|
+
* Coordinate convention:
|
|
10
|
+
* x = left-right (sagittal axis)
|
|
11
|
+
* y = front-back (coronal axis)
|
|
12
|
+
* z = bottom-top (axial axis / slice direction)
|
|
13
|
+
*/
|
|
14
|
+
export interface Dimensions {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
depth: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* RGBA color with each component in the range [0, 255].
|
|
21
|
+
*/
|
|
22
|
+
export interface RGBAColor {
|
|
23
|
+
r: number;
|
|
24
|
+
g: number;
|
|
25
|
+
b: number;
|
|
26
|
+
a: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Maps channel indices to RGBA colors.
|
|
30
|
+
*/
|
|
31
|
+
export type ChannelColorMap = Record<number, RGBAColor>;
|
|
32
|
+
/**
|
|
33
|
+
* Rendering mode for slice extraction.
|
|
34
|
+
*/
|
|
35
|
+
export declare enum RenderMode {
|
|
36
|
+
/** Single channel as grayscale (original behavior). */
|
|
37
|
+
GRAYSCALE = "grayscale",
|
|
38
|
+
/** Single channel with predefined color. */
|
|
39
|
+
COLORED_SINGLE = "colored_single",
|
|
40
|
+
/** All channels composited with colors (last non-zero channel wins). */
|
|
41
|
+
COLORED_MULTI = "colored_multi",
|
|
42
|
+
/** All channels blended (additive). */
|
|
43
|
+
BLENDED = "blended"
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for slice rendering via `getSliceImageData()`.
|
|
47
|
+
*/
|
|
48
|
+
export interface SliceRenderOptions {
|
|
49
|
+
/** Rendering mode (default: GRAYSCALE). */
|
|
50
|
+
mode?: RenderMode;
|
|
51
|
+
/** Specific channel to render (for GRAYSCALE / COLORED_SINGLE modes, default 0). */
|
|
52
|
+
channel?: number;
|
|
53
|
+
/** Custom color map (overrides the volume's default). */
|
|
54
|
+
colorMap?: ChannelColorMap;
|
|
55
|
+
/** Channel visibility mask (for COLORED_MULTI / BLENDED modes). */
|
|
56
|
+
visibleChannels?: boolean[];
|
|
57
|
+
/** Opacity multiplier 0.0 – 1.0 (default 1.0). */
|
|
58
|
+
opacity?: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Predefined color palette for mask channels.
|
|
62
|
+
*
|
|
63
|
+
* Based on common medical imaging conventions:
|
|
64
|
+
*
|
|
65
|
+
* | Channel | Role | Color |
|
|
66
|
+
* |---------|---------------------------|----------|
|
|
67
|
+
* | 0 | Background | transparent |
|
|
68
|
+
* | 1 | Primary / Tumor | Green |
|
|
69
|
+
* | 2 | Secondary / Edema | Red |
|
|
70
|
+
* | 3 | Tertiary / Necrosis | Blue |
|
|
71
|
+
* | 4 | Enhancement | Yellow |
|
|
72
|
+
* | 5 | Vessel / Boundary | Magenta |
|
|
73
|
+
* | 6 | Additional region | Cyan |
|
|
74
|
+
* | 7 | Auxiliary annotation | Orange |
|
|
75
|
+
* | 8 | Extended annotation | Purple |
|
|
76
|
+
*/
|
|
77
|
+
export declare const MASK_CHANNEL_COLORS: Readonly<ChannelColorMap>;
|
|
78
|
+
/**
|
|
79
|
+
* CSS color strings for the default channel palette (for reference / UI).
|
|
80
|
+
*/
|
|
81
|
+
export declare const MASK_CHANNEL_CSS_COLORS: Readonly<Record<number, string>>;
|
|
82
|
+
/**
|
|
83
|
+
* Layer identifier. Any string key is valid — layers are dynamically defined.
|
|
84
|
+
*/
|
|
85
|
+
export type LayerId = string;
|
|
86
|
+
/**
|
|
87
|
+
* Channel value (0 = transparent/erased, 1-8 = annotation channels).
|
|
88
|
+
*/
|
|
89
|
+
export type ChannelValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
|
|
90
|
+
/**
|
|
91
|
+
* Convenience alias for MASK_CHANNEL_CSS_COLORS.
|
|
92
|
+
* Used by Vue components via `Copper.CHANNEL_COLORS[channel]`.
|
|
93
|
+
*/
|
|
94
|
+
export declare const CHANNEL_COLORS: Readonly<Record<number, string>>;
|
|
95
|
+
/**
|
|
96
|
+
* Hex color strings for each channel (no alpha), used for fillColor/brushColor.
|
|
97
|
+
*/
|
|
98
|
+
export declare const CHANNEL_HEX_COLORS: Readonly<Record<number, string>>;
|
|
99
|
+
/**
|
|
100
|
+
* Convert an RGBAColor to a hex string (no alpha), e.g. '#ff0000'.
|
|
101
|
+
*/
|
|
102
|
+
export declare function rgbaToHex(color: RGBAColor): string;
|
|
103
|
+
/**
|
|
104
|
+
* Convert an RGBAColor to a CSS rgba() string, e.g. 'rgba(255,0,0,1.00)'.
|
|
105
|
+
*/
|
|
106
|
+
export declare function rgbaToCss(color: RGBAColor): string;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Type Definitions for MaskVolume
|
|
3
|
+
*
|
|
4
|
+
* Shared types for the 3D volumetric mask storage system.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Rendering mode for slice extraction.
|
|
8
|
+
*/
|
|
9
|
+
export var RenderMode;
|
|
10
|
+
(function (RenderMode) {
|
|
11
|
+
/** Single channel as grayscale (original behavior). */
|
|
12
|
+
RenderMode["GRAYSCALE"] = "grayscale";
|
|
13
|
+
/** Single channel with predefined color. */
|
|
14
|
+
RenderMode["COLORED_SINGLE"] = "colored_single";
|
|
15
|
+
/** All channels composited with colors (last non-zero channel wins). */
|
|
16
|
+
RenderMode["COLORED_MULTI"] = "colored_multi";
|
|
17
|
+
/** All channels blended (additive). */
|
|
18
|
+
RenderMode["BLENDED"] = "blended";
|
|
19
|
+
})(RenderMode || (RenderMode = {}));
|
|
20
|
+
// ── Predefined Color Constants ──────────────────────────────────────────
|
|
21
|
+
/**
|
|
22
|
+
* Predefined color palette for mask channels.
|
|
23
|
+
*
|
|
24
|
+
* Based on common medical imaging conventions:
|
|
25
|
+
*
|
|
26
|
+
* | Channel | Role | Color |
|
|
27
|
+
* |---------|---------------------------|----------|
|
|
28
|
+
* | 0 | Background | transparent |
|
|
29
|
+
* | 1 | Primary / Tumor | Green |
|
|
30
|
+
* | 2 | Secondary / Edema | Red |
|
|
31
|
+
* | 3 | Tertiary / Necrosis | Blue |
|
|
32
|
+
* | 4 | Enhancement | Yellow |
|
|
33
|
+
* | 5 | Vessel / Boundary | Magenta |
|
|
34
|
+
* | 6 | Additional region | Cyan |
|
|
35
|
+
* | 7 | Auxiliary annotation | Orange |
|
|
36
|
+
* | 8 | Extended annotation | Purple |
|
|
37
|
+
*/
|
|
38
|
+
export const MASK_CHANNEL_COLORS = {
|
|
39
|
+
0: { r: 0, g: 0, b: 0, a: 0 },
|
|
40
|
+
1: { r: 0, g: 255, b: 0, a: 255 },
|
|
41
|
+
2: { r: 255, g: 0, b: 0, a: 255 },
|
|
42
|
+
3: { r: 0, g: 0, b: 255, a: 255 },
|
|
43
|
+
4: { r: 255, g: 255, b: 0, a: 255 },
|
|
44
|
+
5: { r: 255, g: 0, b: 255, a: 255 },
|
|
45
|
+
6: { r: 0, g: 255, b: 255, a: 255 },
|
|
46
|
+
7: { r: 255, g: 128, b: 0, a: 255 },
|
|
47
|
+
8: { r: 128, g: 0, b: 255, a: 255 }, // Purple — Extended
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* CSS color strings for the default channel palette (for reference / UI).
|
|
51
|
+
*/
|
|
52
|
+
export const MASK_CHANNEL_CSS_COLORS = {
|
|
53
|
+
0: 'rgba(0,0,0,0)',
|
|
54
|
+
1: 'rgba(0,255,0,1)',
|
|
55
|
+
2: 'rgba(255,0,0,1)',
|
|
56
|
+
3: 'rgba(0,0,255,1)',
|
|
57
|
+
4: 'rgba(255,255,0,1)',
|
|
58
|
+
5: 'rgba(255,0,255,1)',
|
|
59
|
+
6: 'rgba(0,255,255,1)',
|
|
60
|
+
7: 'rgba(255,128,0,1)',
|
|
61
|
+
8: 'rgba(128,0,255,1)', // Purple
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Convenience alias for MASK_CHANNEL_CSS_COLORS.
|
|
65
|
+
* Used by Vue components via `Copper.CHANNEL_COLORS[channel]`.
|
|
66
|
+
*/
|
|
67
|
+
export const CHANNEL_COLORS = MASK_CHANNEL_CSS_COLORS;
|
|
68
|
+
/**
|
|
69
|
+
* Hex color strings for each channel (no alpha), used for fillColor/brushColor.
|
|
70
|
+
*/
|
|
71
|
+
export const CHANNEL_HEX_COLORS = {
|
|
72
|
+
0: '#000000',
|
|
73
|
+
1: '#00ff00',
|
|
74
|
+
2: '#ff0000',
|
|
75
|
+
3: '#0000ff',
|
|
76
|
+
4: '#ffff00',
|
|
77
|
+
5: '#ff00ff',
|
|
78
|
+
6: '#00ffff',
|
|
79
|
+
7: '#ff8000',
|
|
80
|
+
8: '#8000ff', // Purple
|
|
81
|
+
};
|
|
82
|
+
// ── Color Conversion Utilities ──────────────────────────────────────────
|
|
83
|
+
/**
|
|
84
|
+
* Convert an RGBAColor to a hex string (no alpha), e.g. '#ff0000'.
|
|
85
|
+
*/
|
|
86
|
+
export function rgbaToHex(color) {
|
|
87
|
+
const r = color.r.toString(16).padStart(2, '0');
|
|
88
|
+
const g = color.g.toString(16).padStart(2, '0');
|
|
89
|
+
const b = color.b.toString(16).padStart(2, '0');
|
|
90
|
+
return `#${r}${g}${b}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Convert an RGBAColor to a CSS rgba() string, e.g. 'rgba(255,0,0,1.00)'.
|
|
94
|
+
*/
|
|
95
|
+
export function rgbaToCss(color) {
|
|
96
|
+
return `rgba(${color.r},${color.g},${color.b},${(color.a / 255).toFixed(2)})`;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,16 +63,32 @@ interface IPaintImage {
|
|
|
63
63
|
index: number;
|
|
64
64
|
image: ImageData;
|
|
65
65
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
/**
|
|
67
|
+
* Import MaskVolume from core module
|
|
68
|
+
* (imported where needed, not here to avoid circular deps)
|
|
69
|
+
*/
|
|
70
|
+
type MaskVolume = any;
|
|
71
|
+
/**
|
|
72
|
+
* New mask data structure using MaskVolume for true 3D storage.
|
|
73
|
+
* Dynamic N-layer support: keyed by layer id (e.g. 'layer1', 'layer2', ...).
|
|
74
|
+
*/
|
|
75
|
+
type INewMaskData = Record<string, MaskVolume>;
|
|
76
|
+
/**
|
|
77
|
+
* A paired canvas + 2D context for a single annotation layer.
|
|
78
|
+
* Stored atomically in IProtected.layerTargets to prevent canvas/ctx desync.
|
|
79
|
+
*/
|
|
80
|
+
interface ILayerRenderTarget {
|
|
81
|
+
canvas: HTMLCanvasElement;
|
|
82
|
+
ctx: CanvasRenderingContext2D;
|
|
70
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Mask data storage using volumetric MaskVolume (Phase 3)
|
|
86
|
+
*
|
|
87
|
+
* Phase 2 legacy ImageData storage has been removed.
|
|
88
|
+
* All mask data now stored in 3D volumes for memory efficiency.
|
|
89
|
+
*/
|
|
71
90
|
type IMaskData = {
|
|
72
|
-
|
|
73
|
-
paintImagesLabel2: IPaintImages;
|
|
74
|
-
paintImagesLabel3: IPaintImages;
|
|
75
|
-
paintImages: IPaintImages;
|
|
91
|
+
volumes: INewMaskData;
|
|
76
92
|
};
|
|
77
93
|
interface IProtected {
|
|
78
94
|
container: HTMLElement;
|
|
@@ -89,15 +105,14 @@ interface IProtected {
|
|
|
89
105
|
axis: "x" | "y" | "z";
|
|
90
106
|
maskData: IMaskData;
|
|
91
107
|
previousDrawingImage?: ImageData;
|
|
108
|
+
/** Dynamic per-layer canvas+ctx pairs. Replaces hardcoded LayerOne/Two/Three fields. */
|
|
109
|
+
layerTargets: Map<string, ILayerRenderTarget>;
|
|
92
110
|
canvases: {
|
|
93
111
|
originCanvas: HTMLCanvasElement | any;
|
|
94
112
|
drawingCanvas: HTMLCanvasElement;
|
|
95
113
|
displayCanvas: HTMLCanvasElement;
|
|
96
114
|
drawingCanvasLayerMaster: HTMLCanvasElement;
|
|
97
|
-
drawingCanvasLayerOne: HTMLCanvasElement;
|
|
98
|
-
drawingCanvasLayerTwo: HTMLCanvasElement;
|
|
99
115
|
drawingSphereCanvas: HTMLCanvasElement;
|
|
100
|
-
drawingCanvasLayerThree: HTMLCanvasElement;
|
|
101
116
|
emptyCanvas: HTMLCanvasElement;
|
|
102
117
|
};
|
|
103
118
|
ctxes: {
|
|
@@ -106,9 +121,6 @@ interface IProtected {
|
|
|
106
121
|
emptyCtx: CanvasRenderingContext2D;
|
|
107
122
|
drawingSphereCtx: CanvasRenderingContext2D;
|
|
108
123
|
drawingLayerMasterCtx: CanvasRenderingContext2D;
|
|
109
|
-
drawingLayerOneCtx: CanvasRenderingContext2D;
|
|
110
|
-
drawingLayerTwoCtx: CanvasRenderingContext2D;
|
|
111
|
-
drawingLayerThreeCtx: CanvasRenderingContext2D;
|
|
112
124
|
};
|
|
113
125
|
}
|
|
114
126
|
interface IGUIStates {
|
|
@@ -118,12 +130,12 @@ interface IGUIStates {
|
|
|
118
130
|
globalAlpha: number;
|
|
119
131
|
lineWidth: number;
|
|
120
132
|
color: string;
|
|
121
|
-
|
|
133
|
+
pencil: boolean;
|
|
122
134
|
fillColor: string;
|
|
123
135
|
brushColor: string;
|
|
124
136
|
brushAndEraserSize: number;
|
|
125
137
|
cursor: string;
|
|
126
|
-
|
|
138
|
+
layer: string;
|
|
127
139
|
cal_distance: "tumour" | "skin" | "nipple" | "ribcage";
|
|
128
140
|
sphere: boolean;
|
|
129
141
|
calculator: boolean;
|
|
@@ -133,12 +145,20 @@ interface IGUIStates {
|
|
|
133
145
|
clear: () => void;
|
|
134
146
|
clearAll: () => void;
|
|
135
147
|
undo: () => void;
|
|
148
|
+
redo: () => void;
|
|
136
149
|
downloadCurrentMask: () => void;
|
|
137
150
|
resetZoom: () => void;
|
|
151
|
+
/** Currently active channel (1-8). Channel 0 is transparent/erased. */
|
|
152
|
+
activeChannel: number;
|
|
153
|
+
/** Layer visibility state: { layer1: true, layer2: true, layer3: true } */
|
|
154
|
+
layerVisibility: Record<string, boolean>;
|
|
155
|
+
/** Per-layer channel visibility: { layer1: { 1: true, ..., 8: true }, ... } */
|
|
156
|
+
channelVisibility: Record<string, Record<number, boolean>>;
|
|
138
157
|
}
|
|
139
158
|
interface IKeyBoardSettings {
|
|
140
159
|
draw: string;
|
|
141
160
|
undo: string;
|
|
161
|
+
redo: string;
|
|
142
162
|
contrast: string[];
|
|
143
163
|
crosshair: string;
|
|
144
164
|
mouseWheel: "Scroll:Zoom" | "Scroll:Slice";
|
|
@@ -164,7 +184,6 @@ interface INrrdStates {
|
|
|
164
184
|
dimensions: number[];
|
|
165
185
|
loadMaskJson: boolean;
|
|
166
186
|
ratios: ICommXYZ;
|
|
167
|
-
sharedPlace: ICommXYZ;
|
|
168
187
|
contrastNum: number;
|
|
169
188
|
showContrast: boolean;
|
|
170
189
|
enableCursorChoose: boolean;
|
|
@@ -191,10 +210,15 @@ interface INrrdStates {
|
|
|
191
210
|
previousPanelL: number;
|
|
192
211
|
previousPanelT: number;
|
|
193
212
|
switchSliceFlag: boolean;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
213
|
+
layers: string[];
|
|
214
|
+
getMask: (sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag: boolean) => void;
|
|
215
|
+
onClearLayerVolume: (layerId: string) => void;
|
|
216
|
+
onChannelColorChanged: (layerId: string, channel: number, color: {
|
|
217
|
+
r: number;
|
|
218
|
+
g: number;
|
|
219
|
+
b: number;
|
|
220
|
+
a: number;
|
|
221
|
+
}) => void;
|
|
198
222
|
getSphere: (sphereOrigin: number[], sphereRadius: number) => void;
|
|
199
223
|
getCalculateSpherePositions: (tumourSphereOrigin: ICommXYZ | null, skinSphereOrigin: ICommXYZ | null, ribSphereOrigin: ICommXYZ | null, nippleSphereOrigin: ICommXYZ | null, aixs: "x" | "y" | "z") => void;
|
|
200
224
|
drawStartPos: ICommXY;
|
|
@@ -204,19 +228,11 @@ interface IDragOpts {
|
|
|
204
228
|
getSliceNum?: (index: number, contrastNum: number) => void;
|
|
205
229
|
}
|
|
206
230
|
interface IDrawOpts {
|
|
207
|
-
getMaskData?: (
|
|
231
|
+
getMaskData?: (sliceData: Uint8Array, layerId: string, channelId: number, sliceIndex: number, axis: "x" | "y" | "z", width: number, height: number, clearFlag?: boolean) => void;
|
|
232
|
+
onClearLayerVolume?: (layerId: string) => void;
|
|
208
233
|
getSphereData?: (sphereOrigin: number[], sphereRadius: number) => void;
|
|
209
234
|
getCalculateSpherePositionsData?: (tumourSphereOrigin: ICommXYZ | null, skinSphereOrigin: ICommXYZ | null, ribSphereOrigin: ICommXYZ | null, nippleSphereOrigin: ICommXYZ | null, aixs: "x" | "y" | "z") => void;
|
|
210
235
|
}
|
|
211
|
-
type UndoLayerType = {
|
|
212
|
-
label1: Array<HTMLImageElement>;
|
|
213
|
-
label2: Array<HTMLImageElement>;
|
|
214
|
-
label3: Array<HTMLImageElement>;
|
|
215
|
-
};
|
|
216
|
-
interface IUndoType {
|
|
217
|
-
sliceIndex: number;
|
|
218
|
-
layers: UndoLayerType;
|
|
219
|
-
}
|
|
220
236
|
interface ICursorPage {
|
|
221
237
|
x: {
|
|
222
238
|
cursorPageX: number;
|
|
@@ -244,7 +260,7 @@ interface IGuiParameterSettings {
|
|
|
244
260
|
max: number;
|
|
245
261
|
step: number;
|
|
246
262
|
};
|
|
247
|
-
|
|
263
|
+
pencil: {
|
|
248
264
|
name: "Pencil";
|
|
249
265
|
onChange: () => void;
|
|
250
266
|
};
|
|
@@ -280,6 +296,9 @@ interface IGuiParameterSettings {
|
|
|
280
296
|
undo: {
|
|
281
297
|
name: "Undo";
|
|
282
298
|
};
|
|
299
|
+
redo: {
|
|
300
|
+
name: "Redo";
|
|
301
|
+
};
|
|
283
302
|
resetZoom: {
|
|
284
303
|
name: "ResetZoom";
|
|
285
304
|
};
|
|
@@ -302,9 +321,9 @@ interface IGuiParameterSettings {
|
|
|
302
321
|
onFinished: () => void;
|
|
303
322
|
};
|
|
304
323
|
advance: {
|
|
305
|
-
|
|
306
|
-
name: "
|
|
307
|
-
value: [
|
|
324
|
+
layer: {
|
|
325
|
+
name: "Layer";
|
|
326
|
+
value: string[];
|
|
308
327
|
};
|
|
309
328
|
cursor: {
|
|
310
329
|
name: "CursorIcon";
|
|
@@ -344,4 +363,4 @@ interface IGuiParameterSettings {
|
|
|
344
363
|
};
|
|
345
364
|
};
|
|
346
365
|
}
|
|
347
|
-
export { ICommXYZ, ICommXY, IDownloadImageConfig, IConvertObjType, IDragPrameters, IDrawingEvents, IContrastEvents, IProtected, IGUIStates, IDragOpts, IDrawOpts, INrrdStates, IPaintImage, IPaintImages,
|
|
366
|
+
export { ICommXYZ, ICommXY, IDownloadImageConfig, IConvertObjType, IDragPrameters, IDrawingEvents, IContrastEvents, IProtected, IGUIStates, IDragOpts, IDrawOpts, INrrdStates, IPaintImage, IPaintImages, ISkipSlicesDictType, IMaskData, INewMaskData, ILayerRenderTarget, ICursorPage, IGuiParameterSettings, IKeyBoardSettings };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coreType.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/coreType.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coreType.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/coreType.ts"],"names":[],"mappings":"AAqZC,CAAC"}
|
|
@@ -11,6 +11,7 @@ interface IConfigGUI {
|
|
|
11
11
|
protectedData: IProtected;
|
|
12
12
|
eraserUrls: string[];
|
|
13
13
|
pencilUrls: string[];
|
|
14
|
+
getVolumeForLayer: (layer: string) => any;
|
|
14
15
|
mainPreSlices: any;
|
|
15
16
|
removeDragMode: () => void;
|
|
16
17
|
configDragMode: () => void;
|
|
@@ -24,26 +25,15 @@ interface IConfigGUI {
|
|
|
24
25
|
setSyncsliceNum: () => void;
|
|
25
26
|
resetLayerCanvas: () => void;
|
|
26
27
|
redrawDisplayCanvas: () => void;
|
|
27
|
-
reloadMaskToLabel: (paintImages: IPaintImages, ctx: CanvasRenderingContext2D) => void;
|
|
28
28
|
flipDisplayImageByAxis: () => void;
|
|
29
|
-
filterDrawedImage: (axis: "x" | "y" | "z", sliceIndex: number
|
|
29
|
+
filterDrawedImage: (axis: "x" | "y" | "z", sliceIndex: number) => IPaintImage | undefined;
|
|
30
30
|
setEmptyCanvasSize: (axis?: "x" | "y" | "z") => void;
|
|
31
|
-
storeAllImages: (index: number,
|
|
31
|
+
storeAllImages: (index: number, layer: string) => void;
|
|
32
32
|
drawImageOnEmptyImage: (canvas: HTMLCanvasElement) => void;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sliceArrayH: (arr: Uint8ClampedArray, row: number, col: number) => Uint8ClampedArray[];
|
|
37
|
-
sliceArrayV: (arr: Uint8ClampedArray, row: number, col: number) => number[][];
|
|
38
|
-
storeImageToAxis: (index: number, paintedImages: IPaintImages, imageData: ImageData, axis?: "x" | "y" | "z") => void;
|
|
39
|
-
replaceVerticalColPixels: (paintImageArray: IPaintImage[], length: number, ratio: number, markedArr: number[][] | Uint8ClampedArray[], targetWidth: number, convertIndex: number) => void;
|
|
40
|
-
replaceHorizontalRowPixels: (paintImageArray: IPaintImage[], length: number, ratio: number, markedArr: number[][] | Uint8ClampedArray[], targetWidth: number, convertIndex: number) => void;
|
|
41
|
-
storeEachLayerImage: (index: number, label: string) => void;
|
|
42
|
-
storeImageToLabel: (index: number, canvas: HTMLCanvasElement, paintedImages: IPaintImages) => ImageData;
|
|
43
|
-
getRestLabel: () => ("label1" | "label2" | "label3")[];
|
|
33
|
+
storeEachLayerImage: (index: number, layer: string) => void;
|
|
34
|
+
storeImageToLayer: (index: number, canvas: HTMLCanvasElement, paintedImages: IPaintImages) => ImageData;
|
|
35
|
+
getRestLayer: () => string[];
|
|
44
36
|
setIsDrawFalse: (target: number) => void;
|
|
45
|
-
initPaintImages: (dimensions: Array<number>) => void;
|
|
46
|
-
createEmptyPaintImage: (dimensions: Array<number>, paintImages: IPaintImages) => void;
|
|
47
37
|
}
|
|
48
38
|
declare function setupGui(configs: IConfigGUI): IGuiParameterSettings;
|
|
49
39
|
declare function removeGuiFolderChilden(modeFolder: GUI): void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { switchEraserSize, switchPencilIcon } from "../../utils";
|
|
2
|
+
import { CHANNEL_HEX_COLORS, rgbaToHex } from "../core";
|
|
2
3
|
function setupGui(configs) {
|
|
3
4
|
if (configs.modeFolder.__controllers.length > 0)
|
|
4
5
|
removeGuiFolderChilden(configs.modeFolder);
|
|
@@ -11,7 +12,7 @@ function setupGui(configs) {
|
|
|
11
12
|
.max(1)
|
|
12
13
|
.step(0.01);
|
|
13
14
|
actionsFolder
|
|
14
|
-
.add(configs.gui_states, "
|
|
15
|
+
.add(configs.gui_states, "pencil")
|
|
15
16
|
.name("Pencil")
|
|
16
17
|
.onChange(() => {
|
|
17
18
|
updatePencilState();
|
|
@@ -43,6 +44,7 @@ function setupGui(configs) {
|
|
|
43
44
|
actionsFolder.add(configs.gui_states, "clear").name("Clear");
|
|
44
45
|
actionsFolder.add(configs.gui_states, "clearAll").name("ClearAll");
|
|
45
46
|
actionsFolder.add(configs.gui_states, "undo").name("Undo");
|
|
47
|
+
actionsFolder.add(configs.gui_states, "redo").name("Redo");
|
|
46
48
|
actionsFolder.add(configs.gui_states, "resetZoom").name("ResetZoom");
|
|
47
49
|
actionsFolder
|
|
48
50
|
.add(configs.mainPreSlices.volume, "windowHigh", configs.mainPreSlices.volume.min, configs.mainPreSlices.volume.max, 1)
|
|
@@ -56,26 +58,22 @@ function setupGui(configs) {
|
|
|
56
58
|
const advanceFolder = configs.modeFolder.addFolder("AdvanceSettings");
|
|
57
59
|
advanceFolder
|
|
58
60
|
.add(configs.gui_states, "cal_distance", ["tumour", "skin", "ribcage", "nipple"])
|
|
59
|
-
.name("
|
|
61
|
+
.name("Layer")
|
|
60
62
|
.onChange((val) => {
|
|
61
63
|
updateCalDistance(val);
|
|
62
64
|
});
|
|
63
65
|
advanceFolder
|
|
64
|
-
.add(configs.gui_states, "
|
|
65
|
-
.name("
|
|
66
|
-
.onChange((
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
else if (val === "label3") {
|
|
76
|
-
configs.gui_states.fillColor = "#0000ff";
|
|
77
|
-
configs.gui_states.brushColor = "#0000ff";
|
|
78
|
-
}
|
|
66
|
+
.add(configs.gui_states, "layer", ["layer1", "layer2", "layer3"])
|
|
67
|
+
.name("Layer")
|
|
68
|
+
.onChange((_val) => {
|
|
69
|
+
// Get color from the active layer's volume (respects custom per-layer colors)
|
|
70
|
+
const channel = configs.gui_states.activeChannel || 1;
|
|
71
|
+
const volume = configs.getVolumeForLayer(configs.gui_states.layer);
|
|
72
|
+
const hexColor = volume
|
|
73
|
+
? rgbaToHex(volume.getChannelColor(channel))
|
|
74
|
+
: (CHANNEL_HEX_COLORS[channel] || '#00ff00');
|
|
75
|
+
configs.gui_states.fillColor = hexColor;
|
|
76
|
+
configs.gui_states.brushColor = hexColor;
|
|
79
77
|
});
|
|
80
78
|
advanceFolder
|
|
81
79
|
.add(configs.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
@@ -92,9 +90,6 @@ function setupGui(configs) {
|
|
|
92
90
|
.max(8)
|
|
93
91
|
.onFinishChange((factor) => {
|
|
94
92
|
configs.setMainAreaSize(factor);
|
|
95
|
-
// configs.resetPaintAreaUIPosition();
|
|
96
|
-
// configs.nrrd_states.sizeFoctor = factor;
|
|
97
|
-
// configs.resizePaintArea(factor);
|
|
98
93
|
});
|
|
99
94
|
advanceFolder
|
|
100
95
|
.add(configs.gui_states, "dragSensitivity")
|
|
@@ -115,12 +110,10 @@ function setupGui(configs) {
|
|
|
115
110
|
.name("FillColor");
|
|
116
111
|
const bushFolder = advanceFolder.addFolder("BrushSettings");
|
|
117
112
|
bushFolder.addColor(configs.gui_states, "brushColor").name("BrushColor");
|
|
118
|
-
// modeFolder.add(stateMode, "EraserSize").min(1).max(50).step(1);
|
|
119
113
|
const maskFolder = advanceFolder.addFolder("MaskDownload");
|
|
120
114
|
maskFolder
|
|
121
115
|
.add(configs.gui_states, "downloadCurrentMask")
|
|
122
116
|
.name("DownloadCurrentMask");
|
|
123
|
-
// maskFolder.add(configs.gui_states, "exportMarks").name("ExportMask");
|
|
124
117
|
const contrastFolder = advanceFolder.addFolder("ContrastAdvanceSettings");
|
|
125
118
|
contrastFolder
|
|
126
119
|
.add(configs.mainPreSlices.volume, "lowerThreshold", configs.mainPreSlices.volume.min, configs.mainPreSlices.volume.max, 1)
|
|
@@ -163,7 +156,7 @@ function setupGui(configs) {
|
|
|
163
156
|
}
|
|
164
157
|
};
|
|
165
158
|
const updatePencilState = () => {
|
|
166
|
-
if (configs.gui_states.
|
|
159
|
+
if (configs.gui_states.pencil) {
|
|
167
160
|
// add canvas brush circle move event listeners
|
|
168
161
|
configs.drawingCanvas.removeEventListener("mouseover", configs.drawingPrameters.handleOnDrawingBrushCricleMove);
|
|
169
162
|
configs.drawingCanvas.removeEventListener("mouseout", configs.drawingPrameters.handleOnDrawingBrushCricleMove);
|
|
@@ -262,7 +255,7 @@ function setupGui(configs) {
|
|
|
262
255
|
max: 1,
|
|
263
256
|
step: 0.01,
|
|
264
257
|
},
|
|
265
|
-
|
|
258
|
+
pencil: {
|
|
266
259
|
name: "Pencil",
|
|
267
260
|
onChange: updatePencilState,
|
|
268
261
|
},
|
|
@@ -298,6 +291,9 @@ function setupGui(configs) {
|
|
|
298
291
|
undo: {
|
|
299
292
|
name: "Undo",
|
|
300
293
|
},
|
|
294
|
+
redo: {
|
|
295
|
+
name: "Redo",
|
|
296
|
+
},
|
|
301
297
|
resetZoom: {
|
|
302
298
|
name: "ResetZoom",
|
|
303
299
|
},
|
|
@@ -320,9 +316,9 @@ function setupGui(configs) {
|
|
|
320
316
|
onFinished: updateGuiImageContrastOnFinished,
|
|
321
317
|
},
|
|
322
318
|
advance: {
|
|
323
|
-
|
|
324
|
-
name: "
|
|
325
|
-
value: ["
|
|
319
|
+
layer: {
|
|
320
|
+
name: "Layer",
|
|
321
|
+
value: ["layer1", "layer2", "layer3"],
|
|
326
322
|
},
|
|
327
323
|
cursor: {
|
|
328
324
|
name: "CursorIcon",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gui.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/gui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gui.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/coreTools/gui.ts"],"names":[],"mappings":"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"}
|