copper3d 3.6.4 → 3.6.6
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/dist/Utils/segmentation/NrrdTools.d.ts +59 -6
- package/dist/Utils/segmentation/NrrdTools.js +69 -9
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/tools/AiAssistTool.d.ts +108 -5
- package/dist/Utils/segmentation/tools/AiAssistTool.js +408 -25
- package/dist/Utils/segmentation/tools/AiAssistTool.js.map +1 -1
- package/dist/bundle.esm.js +495 -36
- package/dist/bundle.umd.js +495 -36
- package/dist/index.d.ts +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +59 -6
- package/dist/types/Utils/segmentation/tools/AiAssistTool.d.ts +108 -5
- package/dist/types/index.d.ts +1 -1
- package/package.json +2 -1
|
@@ -210,16 +210,41 @@ export declare class NrrdTools {
|
|
|
210
210
|
exitAiAssistMode(): void;
|
|
211
211
|
aiSetPromptTool(tool: AiPromptTool): void;
|
|
212
212
|
aiSetPolarity(label: number): void;
|
|
213
|
-
/**
|
|
214
|
-
|
|
213
|
+
/** Select the active Segmentation by its label value (the AI paints into it). */
|
|
214
|
+
aiSetActiveSegment(label: number): void;
|
|
215
|
+
/** Set a Segmentation's colour (its label's colorMap entry; 2D overlay repaints). */
|
|
216
|
+
aiSetSegmentColor(label: number, color: {
|
|
217
|
+
r: number;
|
|
218
|
+
g: number;
|
|
219
|
+
b: number;
|
|
220
|
+
a: number;
|
|
221
|
+
}): void;
|
|
222
|
+
/** "New segmentation": freeze current regions + switch to a new label. */
|
|
223
|
+
aiNewSegment(label: number): void;
|
|
224
|
+
/** Delete a Segmentation: erase all its label's voxels from scratch + committed. */
|
|
225
|
+
aiClearSegment(label: number): void;
|
|
215
226
|
/** Set the scribble brush radius (px). */
|
|
216
227
|
aiSetScribbleSize(size: number): void;
|
|
217
228
|
/** Register the callback invoked when a prompt gesture completes (app → backend). */
|
|
218
229
|
aiOnPrompt(cb: (payload: AiPromptPayload) => void): void;
|
|
230
|
+
/** Register the callback fired when the lasso vertex set changes (drives the Finish button). */
|
|
231
|
+
aiOnLassoChange(cb: (count: number, editing: boolean) => void): void;
|
|
219
232
|
/** Apply a backend mask result into the scratch volume (overlay repaints next frame). */
|
|
220
233
|
aiApplyMask(result: AiMaskResult): void;
|
|
221
234
|
/** Clear the in-progress prompt set (e.g. slice change). */
|
|
222
235
|
aiClearPrompts(): void;
|
|
236
|
+
/** Close + send the in-progress lasso to the backend (needs ≥3 vertices). */
|
|
237
|
+
aiFinishLasso(): void;
|
|
238
|
+
/** Undo the last lasso vertex add/delete. */
|
|
239
|
+
aiLassoUndo(): void;
|
|
240
|
+
/** Redo the last undone lasso vertex change. */
|
|
241
|
+
aiLassoRedo(): void;
|
|
242
|
+
/** Abandon the in-progress lasso (Esc). */
|
|
243
|
+
aiCancelLasso(): void;
|
|
244
|
+
/** True while the user is placing lasso vertices. */
|
|
245
|
+
aiIsLassoEditing(): boolean;
|
|
246
|
+
/** Number of placed lasso vertices (drives the Finish button). */
|
|
247
|
+
aiLassoVertCount(): number;
|
|
223
248
|
/** "New region": freeze current regions (they persist) + start a fresh prompt set. */
|
|
224
249
|
aiCommitRegion(): void;
|
|
225
250
|
/** Discard all AI scratch painting since enter (sandbox discard). */
|
|
@@ -236,11 +261,39 @@ export declare class NrrdTools {
|
|
|
236
261
|
rle: number[];
|
|
237
262
|
}[];
|
|
238
263
|
} | null;
|
|
264
|
+
/** Per-segmentation serialization (one binary RLE per label per z-slice) for the
|
|
265
|
+
* multi-label / per-colour 3D build. */
|
|
266
|
+
aiGetScratchSegments(): {
|
|
267
|
+
axis: "z";
|
|
268
|
+
width: number;
|
|
269
|
+
height: number;
|
|
270
|
+
segments: {
|
|
271
|
+
label: number;
|
|
272
|
+
slices: {
|
|
273
|
+
sliceIndex: number;
|
|
274
|
+
rle: number[];
|
|
275
|
+
}[];
|
|
276
|
+
}[];
|
|
277
|
+
} | null;
|
|
278
|
+
/**
|
|
279
|
+
* Merge the AI scratch into a target layer with an explicit per-segmentation
|
|
280
|
+
* mapping, as a single undoable group (sandbox merge — non-destructive + one
|
|
281
|
+
* Ctrl+Z). `mapping` is `{ AI scratch label -> target channel(1-8) }`; any label
|
|
282
|
+
* absent from the mapping (or mapped to 0) is DISCARDED (not merged). Several AI
|
|
283
|
+
* labels MAY map to the SAME channel — after merge the channel is the identity
|
|
284
|
+
* (CLAUDE.md decision M2), so the merged voxels take that channel's fixed colour.
|
|
285
|
+
*
|
|
286
|
+
* UNION semantics (M4): an AI voxel only fills a target voxel that is currently
|
|
287
|
+
* EMPTY (0) — existing manual annotation is NEVER erased. Where two AI labels map
|
|
288
|
+
* to different channels and overlap the same voxel, the first one written wins
|
|
289
|
+
* (iteration order), an accepted edge case for a single-value-per-voxel mask.
|
|
290
|
+
* Scans all z-slices, so voxels painted from any view are caught.
|
|
291
|
+
*/
|
|
292
|
+
aiCommitToLayerMapped(targetLayer: string, mapping: Record<number, number>): void;
|
|
239
293
|
/**
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
243
|
-
* target layer). Scans all z-slices, so voxels painted from any view are caught.
|
|
294
|
+
* Back-compat shim: merge with an IDENTITY mapping (each AI label → the same
|
|
295
|
+
* channel number) via the mapped path above. Newer callers should use
|
|
296
|
+
* `aiCommitToLayerMapped` with an explicit per-segmentation mapping.
|
|
244
297
|
*/
|
|
245
298
|
aiCommitToLayer(targetLayer?: string): void;
|
|
246
299
|
clearActiveLayer(): void;
|
|
@@ -917,16 +917,39 @@ export class NrrdTools {
|
|
|
917
917
|
// — Driver methods called by the app-layer composable —
|
|
918
918
|
aiSetPromptTool(tool) { this.drawCore.aiAssistTool.setPromptTool(tool); }
|
|
919
919
|
aiSetPolarity(label) { this.drawCore.aiAssistTool.setPolarity(label); }
|
|
920
|
-
/**
|
|
921
|
-
|
|
920
|
+
/** Select the active Segmentation by its label value (the AI paints into it). */
|
|
921
|
+
aiSetActiveSegment(label) { this.drawCore.aiAssistTool.setActiveSegment(label); }
|
|
922
|
+
/** Set a Segmentation's colour (its label's colorMap entry; 2D overlay repaints). */
|
|
923
|
+
aiSetSegmentColor(label, color) {
|
|
924
|
+
this.drawCore.aiAssistTool.setSegmentColor(label, color);
|
|
925
|
+
}
|
|
926
|
+
/** "New segmentation": freeze current regions + switch to a new label. */
|
|
927
|
+
aiNewSegment(label) { this.drawCore.aiAssistTool.newSegment(label); }
|
|
928
|
+
/** Delete a Segmentation: erase all its label's voxels from scratch + committed. */
|
|
929
|
+
aiClearSegment(label) { this.drawCore.aiAssistTool.clearSegment(label); }
|
|
922
930
|
/** Set the scribble brush radius (px). */
|
|
923
931
|
aiSetScribbleSize(size) { this.drawCore.aiAssistTool.setScribbleSize(size); }
|
|
924
932
|
/** Register the callback invoked when a prompt gesture completes (app → backend). */
|
|
925
933
|
aiOnPrompt(cb) { this.drawCore.aiAssistTool.onPrompt = cb; }
|
|
934
|
+
/** Register the callback fired when the lasso vertex set changes (drives the Finish button). */
|
|
935
|
+
aiOnLassoChange(cb) { this.drawCore.aiAssistTool.onLassoChange = cb; }
|
|
926
936
|
/** Apply a backend mask result into the scratch volume (overlay repaints next frame). */
|
|
927
937
|
aiApplyMask(result) { this.drawCore.aiAssistTool.applyMask(result); }
|
|
928
938
|
/** Clear the in-progress prompt set (e.g. slice change). */
|
|
929
939
|
aiClearPrompts() { this.drawCore.aiAssistTool.resetPrompts(); }
|
|
940
|
+
// — Lasso v2 (discrete-vertex closed-curve) controls —
|
|
941
|
+
/** Close + send the in-progress lasso to the backend (needs ≥3 vertices). */
|
|
942
|
+
aiFinishLasso() { this.drawCore.aiAssistTool.finishLasso(); }
|
|
943
|
+
/** Undo the last lasso vertex add/delete. */
|
|
944
|
+
aiLassoUndo() { this.drawCore.aiAssistTool.lassoUndoAction(); }
|
|
945
|
+
/** Redo the last undone lasso vertex change. */
|
|
946
|
+
aiLassoRedo() { this.drawCore.aiAssistTool.lassoRedoAction(); }
|
|
947
|
+
/** Abandon the in-progress lasso (Esc). */
|
|
948
|
+
aiCancelLasso() { this.drawCore.aiAssistTool.cancelLasso(); }
|
|
949
|
+
/** True while the user is placing lasso vertices. */
|
|
950
|
+
aiIsLassoEditing() { return this.drawCore.aiAssistTool.isLassoEditing(); }
|
|
951
|
+
/** Number of placed lasso vertices (drives the Finish button). */
|
|
952
|
+
aiLassoVertCount() { return this.drawCore.aiAssistTool.getLassoVertCount(); }
|
|
930
953
|
/** "New region": freeze current regions (they persist) + start a fresh prompt set. */
|
|
931
954
|
aiCommitRegion() { this.drawCore.aiAssistTool.commitRegion(); }
|
|
932
955
|
/** Discard all AI scratch painting since enter (sandbox discard). */
|
|
@@ -937,13 +960,26 @@ export class NrrdTools {
|
|
|
937
960
|
aiGetScratchSlices() {
|
|
938
961
|
return this.drawCore.aiAssistTool.getScratchSlices();
|
|
939
962
|
}
|
|
963
|
+
/** Per-segmentation serialization (one binary RLE per label per z-slice) for the
|
|
964
|
+
* multi-label / per-colour 3D build. */
|
|
965
|
+
aiGetScratchSegments() {
|
|
966
|
+
return this.drawCore.aiAssistTool.getScratchSegments();
|
|
967
|
+
}
|
|
940
968
|
/**
|
|
941
|
-
* Merge the AI scratch into a target layer
|
|
942
|
-
* merge —
|
|
943
|
-
*
|
|
944
|
-
*
|
|
969
|
+
* Merge the AI scratch into a target layer with an explicit per-segmentation
|
|
970
|
+
* mapping, as a single undoable group (sandbox merge — non-destructive + one
|
|
971
|
+
* Ctrl+Z). `mapping` is `{ AI scratch label -> target channel(1-8) }`; any label
|
|
972
|
+
* absent from the mapping (or mapped to 0) is DISCARDED (not merged). Several AI
|
|
973
|
+
* labels MAY map to the SAME channel — after merge the channel is the identity
|
|
974
|
+
* (CLAUDE.md decision M2), so the merged voxels take that channel's fixed colour.
|
|
975
|
+
*
|
|
976
|
+
* UNION semantics (M4): an AI voxel only fills a target voxel that is currently
|
|
977
|
+
* EMPTY (0) — existing manual annotation is NEVER erased. Where two AI labels map
|
|
978
|
+
* to different channels and overlap the same voxel, the first one written wins
|
|
979
|
+
* (iteration order), an accepted edge case for a single-value-per-voxel mask.
|
|
980
|
+
* Scans all z-slices, so voxels painted from any view are caught.
|
|
945
981
|
*/
|
|
946
|
-
|
|
982
|
+
aiCommitToLayerMapped(targetLayer, mapping) {
|
|
947
983
|
const scratch = this.drawCore.aiAssistTool.getScratchVolume();
|
|
948
984
|
if (!scratch)
|
|
949
985
|
return;
|
|
@@ -965,10 +1001,21 @@ export class NrrdTools {
|
|
|
965
1001
|
continue;
|
|
966
1002
|
const oldSlice = target.getSliceUint8(z, "z").data; // copy
|
|
967
1003
|
const newSlice = oldSlice.slice();
|
|
1004
|
+
let changed = false;
|
|
968
1005
|
for (let i = 0; i < newSlice.length; i++) {
|
|
969
|
-
|
|
970
|
-
|
|
1006
|
+
const label = sc[i];
|
|
1007
|
+
if (label === 0)
|
|
1008
|
+
continue;
|
|
1009
|
+
const ch = mapping[label];
|
|
1010
|
+
if (!ch)
|
|
1011
|
+
continue; // unmapped / discarded segmentation
|
|
1012
|
+
if (newSlice[i] === 0) { // union: fill only EMPTY voxels (M4)
|
|
1013
|
+
newSlice[i] = ch;
|
|
1014
|
+
changed = true;
|
|
1015
|
+
}
|
|
971
1016
|
}
|
|
1017
|
+
if (!changed)
|
|
1018
|
+
continue; // nothing landed on this slice → no delta
|
|
972
1019
|
target.setSliceUint8(z, newSlice, "z");
|
|
973
1020
|
deltas.push({ layerId: targetLayer, axis: "z", sliceIndex: z, oldSlice, newSlice: newSlice.slice() });
|
|
974
1021
|
}
|
|
@@ -976,6 +1023,19 @@ export class NrrdTools {
|
|
|
976
1023
|
this.drawCore.undoManager.pushGroup(deltas);
|
|
977
1024
|
this.reloadMasksFromVolume();
|
|
978
1025
|
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Back-compat shim: merge with an IDENTITY mapping (each AI label → the same
|
|
1028
|
+
* channel number) via the mapped path above. Newer callers should use
|
|
1029
|
+
* `aiCommitToLayerMapped` with an explicit per-segmentation mapping.
|
|
1030
|
+
*/
|
|
1031
|
+
aiCommitToLayer(targetLayer = "layer1") {
|
|
1032
|
+
var _a;
|
|
1033
|
+
const segs = this.drawCore.aiAssistTool.getScratchSegments();
|
|
1034
|
+
const mapping = {};
|
|
1035
|
+
for (const s of (_a = segs === null || segs === void 0 ? void 0 : segs.segments) !== null && _a !== void 0 ? _a : [])
|
|
1036
|
+
mapping[s.label] = s.label;
|
|
1037
|
+
this.aiCommitToLayerMapped(targetLayer, mapping);
|
|
1038
|
+
}
|
|
979
1039
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
980
1040
|
// 11. Clear / Reset
|
|
981
1041
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NrrdTools.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/NrrdTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NrrdTools.js","sourceRoot":"","sources":["../../../src/Utils/segmentation/NrrdTools.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ import type { SliceRenderHostDeps } from "./ToolHost";
|
|
|
26
26
|
/** Scratch volume key in maskData.volumes — kept OUT of image.layers so
|
|
27
27
|
* compositeAllLayers ignores it (we render it ourselves in start()). */
|
|
28
28
|
export declare const AI_SCRATCH_LAYER = "aiScratch";
|
|
29
|
-
export type AiPromptTool = "point" | "box" | "scribble";
|
|
29
|
+
export type AiPromptTool = "point" | "box" | "scribble" | "lasso";
|
|
30
30
|
export interface AiPromptPoint {
|
|
31
31
|
x: number;
|
|
32
32
|
y: number;
|
|
@@ -48,6 +48,9 @@ export interface AiPromptPayload {
|
|
|
48
48
|
};
|
|
49
49
|
scribble?: AiPromptPoint[];
|
|
50
50
|
scribbleRadius?: number;
|
|
51
|
+
/** Closed-contour lasso: ordered contour points (implicitly closed — the
|
|
52
|
+
* backend connects the last point back to the first). One contour per gesture. */
|
|
53
|
+
lasso?: AiPromptPoint[];
|
|
51
54
|
}
|
|
52
55
|
export interface AiMaskResult {
|
|
53
56
|
axis: "x" | "y" | "z";
|
|
@@ -73,29 +76,70 @@ export declare class AiAssistTool extends BaseTool {
|
|
|
73
76
|
private committedVol;
|
|
74
77
|
private promptTool;
|
|
75
78
|
private polarity;
|
|
76
|
-
/**
|
|
77
|
-
|
|
79
|
+
/** The label value (1-255) the AI currently paints into = the active Segmentation.
|
|
80
|
+
* Each Segmentation is a label value in the single-channel scratch volume; its
|
|
81
|
+
* colour lives in the volume's colorMap (set via setSegmentColor). */
|
|
82
|
+
private activeLabel;
|
|
78
83
|
/** Scribble brush radius (px), user-adjustable via slider. */
|
|
79
84
|
private scribbleSize;
|
|
80
85
|
/** Accumulated prompts for the CURRENT slice; reset on slice/axis change. */
|
|
81
86
|
private points;
|
|
82
87
|
private scribble;
|
|
88
|
+
/** Lasso contour sent to the backend (densified along the curve at finish). */
|
|
89
|
+
private lasso;
|
|
83
90
|
private box;
|
|
84
91
|
private activeSlice;
|
|
92
|
+
/** Placed lasso vertices (voxel + screen + polarity). Empty = not editing. */
|
|
93
|
+
private lassoVerts;
|
|
94
|
+
/** Undo / redo snapshot stacks of the vertex list (for Ctrl+Z / Ctrl+Y). */
|
|
95
|
+
private lassoUndo;
|
|
96
|
+
private lassoRedo;
|
|
97
|
+
/** Index of the vertex currently hovered (shows a red ✕; click removes it). −1 = none. */
|
|
98
|
+
private lassoHoverIdx;
|
|
99
|
+
/** Screen-pixel radius for hit-testing a hovered vertex. */
|
|
100
|
+
private static readonly LASSO_HIT_R;
|
|
101
|
+
/** Double-click detection (a dbl-click finishes the lasso). */
|
|
102
|
+
private lastLassoDownTime;
|
|
103
|
+
private lastLassoDownPos;
|
|
85
104
|
private dragging;
|
|
86
105
|
private dragStart;
|
|
87
106
|
private dragScreenStart;
|
|
88
107
|
private dragScreen;
|
|
89
108
|
private screenScribble;
|
|
90
109
|
private hoverScreen;
|
|
110
|
+
/** Hide the point seed markers once a prediction has painted (only the mask
|
|
111
|
+
* should remain). A new point click re-shows them until its mask returns. */
|
|
112
|
+
private hidePointMarkers;
|
|
91
113
|
/** Fired when a prompt gesture completes — app calls backend, then applyMask(). */
|
|
92
114
|
onPrompt: ((payload: AiPromptPayload) => void) | null;
|
|
115
|
+
/** Fired whenever the lasso vertex set changes (add/delete/undo/redo/finish/cancel),
|
|
116
|
+
* so the panel can reactively show the Finish button + vertex count. */
|
|
117
|
+
onLassoChange: ((count: number, editing: boolean) => void) | null;
|
|
93
118
|
constructor(ctx: ToolContext, host: AiAssistHostDeps);
|
|
94
119
|
setPromptTool(tool: AiPromptTool): void;
|
|
95
120
|
setPolarity(label: number): void;
|
|
96
121
|
setScribbleSize(size: number): void;
|
|
97
|
-
|
|
98
|
-
|
|
122
|
+
/** Select the active Segmentation by its label value (1-255). Switching starts a
|
|
123
|
+
* fresh prompt set — otherwise accumulated prompts would be re-predicted and
|
|
124
|
+
* repainted into the new label, recolouring the previous segmentation's region. */
|
|
125
|
+
setActiveSegment(label: number): void;
|
|
126
|
+
getActiveLabel(): number;
|
|
127
|
+
/** Set a Segmentation's colour (its label's entry in the scratch volume colorMap).
|
|
128
|
+
* The 2D overlay repaints next frame (copper3d's render loop re-reads the map). */
|
|
129
|
+
setSegmentColor(label: number, color: {
|
|
130
|
+
r: number;
|
|
131
|
+
g: number;
|
|
132
|
+
b: number;
|
|
133
|
+
a: number;
|
|
134
|
+
}): void;
|
|
135
|
+
/** "New segmentation": freeze the current regions (so they persist) and switch to
|
|
136
|
+
* a fresh label, exactly like the old "New region" but targeting a new label. */
|
|
137
|
+
newSegment(label: number): void;
|
|
138
|
+
/** Delete a Segmentation: erase every voxel painted with its label from BOTH the
|
|
139
|
+
* live scratch and the frozen (committed) volume, so the region disappears from
|
|
140
|
+
* the view (otherwise orphaned label voxels would render with the wrong colour).
|
|
141
|
+
* Goes via setRawData so the volume's version counter bumps (overlay repaints). */
|
|
142
|
+
clearSegment(label: number): void;
|
|
99
143
|
getScratchVolume(): MaskVolume | null;
|
|
100
144
|
/** Serialize the scratch volume as per-z-slice RLE (only NON-empty slices),
|
|
101
145
|
* for persisting to ai_generated_nii_LPS on the backend. Binary (any channel →
|
|
@@ -111,6 +155,22 @@ export declare class AiAssistTool extends BaseTool {
|
|
|
111
155
|
rle: number[];
|
|
112
156
|
}[];
|
|
113
157
|
} | null;
|
|
158
|
+
/** Per-SEGMENTATION serialization for the 3D build: one binary RLE per non-empty
|
|
159
|
+
* z-slice PER label (no binarize-merge), so the backend writes a multi-label
|
|
160
|
+
* NIfTI and colours the GLB per segmentation. Includes both live and frozen
|
|
161
|
+
* regions (both live in scratchVol). */
|
|
162
|
+
getScratchSegments(): {
|
|
163
|
+
axis: "z";
|
|
164
|
+
width: number;
|
|
165
|
+
height: number;
|
|
166
|
+
segments: {
|
|
167
|
+
label: number;
|
|
168
|
+
slices: {
|
|
169
|
+
sliceIndex: number;
|
|
170
|
+
rle: number[];
|
|
171
|
+
}[];
|
|
172
|
+
}[];
|
|
173
|
+
} | null;
|
|
114
174
|
/** Create (or reuse) the scratch volume sized to the layer grid and register
|
|
115
175
|
* it under maskData.volumes['aiScratch']. Snapshots the empty buffer. */
|
|
116
176
|
enter(): void;
|
|
@@ -126,21 +186,64 @@ export declare class AiAssistTool extends BaseTool {
|
|
|
126
186
|
/** Clear the in-progress prompt set (e.g. slice/axis change). Does NOT freeze —
|
|
127
187
|
* use commitRegion() for the "New region" action. */
|
|
128
188
|
resetPrompts(): void;
|
|
189
|
+
/** Drop the in-progress lasso vertices + undo/redo history (does not touch a
|
|
190
|
+
* prediction already painted from a finished lasso). */
|
|
191
|
+
private clearLassoEditing;
|
|
192
|
+
/** Tell the app layer the lasso vertex set changed (drives the Finish button). */
|
|
193
|
+
private notifyLasso;
|
|
129
194
|
/** Voxel-slice (width,height) for the current axis. */
|
|
130
195
|
private sliceDims;
|
|
131
196
|
/** Screen offset → voxel-slice (vx,vy) for the current axis. */
|
|
132
197
|
private toVoxel;
|
|
198
|
+
/** Voxel-slice (vx,vy) → screen offset (px). Exact inverse of toVoxel, so
|
|
199
|
+
* markers / lasso curves drawn from voxel coords track pan AND zoom each frame
|
|
200
|
+
* (the freehand previews store screen px directly; persistent overlays don't). */
|
|
201
|
+
private voxelToScreen;
|
|
133
202
|
onPointerDown(e: MouseEvent): void;
|
|
203
|
+
/** Lasso click: double-click finishes; click on a vertex deletes it; otherwise
|
|
204
|
+
* add a vertex. Nothing is sent to the backend until finishLasso(). */
|
|
205
|
+
private onLassoPointerDown;
|
|
134
206
|
onPointerMove(e: MouseEvent): void;
|
|
135
207
|
onPointerUp(_e: MouseEvent): void;
|
|
136
208
|
/** Reset the accumulated prompt set when the user scrubs to a new slice. */
|
|
137
209
|
private syncSlice;
|
|
138
210
|
private emit;
|
|
211
|
+
/** Index of the lasso vertex under (sx,sy) within the hit radius, else −1.
|
|
212
|
+
* Uses live voxel→screen so it tracks pan/zoom. Topmost (latest) wins. */
|
|
213
|
+
private lassoVertAt;
|
|
214
|
+
/** Snapshot the vertex list for undo (clears redo). */
|
|
215
|
+
private pushLassoUndo;
|
|
216
|
+
/** Public: undo the last add/delete of a lasso vertex (Ctrl+Z while editing). */
|
|
217
|
+
lassoUndoAction(): void;
|
|
218
|
+
/** Public: redo (Ctrl+Y / Ctrl+Shift+Z while editing). */
|
|
219
|
+
lassoRedoAction(): void;
|
|
220
|
+
/** Public: abandon the in-progress lasso (Esc). */
|
|
221
|
+
cancelLasso(): void;
|
|
222
|
+
/** Public: true while the user is placing lasso vertices (≥1 vertex). */
|
|
223
|
+
isLassoEditing(): boolean;
|
|
224
|
+
/** Public: number of placed lasso vertices (drives the Finish button label/enable). */
|
|
225
|
+
getLassoVertCount(): number;
|
|
226
|
+
/** Vertices ordered by polar angle around their centroid, so the closed curve is
|
|
227
|
+
* a SIMPLE (non-self-intersecting) loop regardless of click order — otherwise
|
|
228
|
+
* connecting points in click order + closing easily produces a bow-tie crossing.
|
|
229
|
+
* Trade-off: deep concavities collapse to their star-shaped hull, which is fine
|
|
230
|
+
* for a "rough loop around a blob". */
|
|
231
|
+
private orderedLassoVerts;
|
|
232
|
+
/** Public: close the curve, densify it, and send it to the backend as the lasso
|
|
233
|
+
* contour. Needs ≥3 vertices (a real area). Then clears the editing state. */
|
|
234
|
+
finishLasso(): void;
|
|
235
|
+
/** Sample a smooth CLOSED Catmull-Rom spline through `pts` → denser polyline.
|
|
236
|
+
* `segs` samples per control-point span. <3 pts → returns a copy unchanged. */
|
|
237
|
+
private sampleClosedSpline;
|
|
139
238
|
applyMask(result: AiMaskResult): void;
|
|
140
239
|
/** Merge one RLE-encoded predicted slice into the scratch volume at sliceIndex.
|
|
141
240
|
* Predicted pixels → current channel; stale current-channel pixels cleared
|
|
142
241
|
* UNLESS they belong to a frozen (committed) region; OTHER channels preserved. */
|
|
143
242
|
private applySliceRle;
|
|
144
243
|
renderOverlay(targetCtx: CanvasRenderingContext2D): void;
|
|
244
|
+
/** A seed marker (small filled dot + ring) for point prompts. */
|
|
245
|
+
private drawSeedMarker;
|
|
246
|
+
/** Render the lasso editing overlay (curve + fill + vertices + hover ✕). */
|
|
247
|
+
private renderLassoOverlay;
|
|
145
248
|
}
|
|
146
249
|
export {};
|