copper3d 1.15.20 → 1.15.21
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/nrrd_tool.d.ts +2 -0
- package/dist/Utils/nrrd_tool.js +67 -67
- package/dist/Utils/nrrd_tool.js.map +1 -1
- package/dist/Utils/utils.d.ts +1 -0
- package/dist/Utils/utils.js +39 -0
- package/dist/Utils/utils.js.map +1 -1
- package/dist/bundle.esm.js +107 -68
- package/dist/bundle.umd.js +107 -68
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/types/Utils/nrrd_tool.d.ts +2 -0
- package/dist/types/Utils/utils.d.ts +1 -0
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -49,6 +49,7 @@ export declare class nrrd_tools {
|
|
|
49
49
|
private initState;
|
|
50
50
|
private preTimer;
|
|
51
51
|
private eraserUrls;
|
|
52
|
+
private pencilUrls;
|
|
52
53
|
private nrrd_states;
|
|
53
54
|
private cursorPage;
|
|
54
55
|
private gui_states;
|
|
@@ -74,6 +75,7 @@ export declare class nrrd_tools {
|
|
|
74
75
|
private loadingMaskByLabel;
|
|
75
76
|
setMasksData(masksData: storeExportPaintImageType, loadingBar?: loadingBarType): void;
|
|
76
77
|
setEraserUrls(urls: string[]): void;
|
|
78
|
+
setPencilIconUrls(urls: string[]): void;
|
|
77
79
|
getCurrentImageDimension(): never[];
|
|
78
80
|
getVoxelSpacing(): never[];
|
|
79
81
|
getSpaceOrigin(): never[];
|
package/dist/Utils/nrrd_tool.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import { throttle } from "./utils";
|
|
3
|
-
import { switchEraserSize } from "./utils";
|
|
3
|
+
import { switchEraserSize, switchPencilIcon } from "./utils";
|
|
4
4
|
import { saveFileAsJson } from "./download";
|
|
5
5
|
import { restructData, convertReformatDataToBlob, } from "./workers/reformatSaveDataWorker";
|
|
6
6
|
export class nrrd_tools {
|
|
@@ -47,6 +47,7 @@ export class nrrd_tools {
|
|
|
47
47
|
this.undoArray = [];
|
|
48
48
|
this.initState = true;
|
|
49
49
|
this.eraserUrls = [];
|
|
50
|
+
this.pencilUrls = [];
|
|
50
51
|
this.nrrd_states = {
|
|
51
52
|
originWidth: 0,
|
|
52
53
|
originHeight: 0,
|
|
@@ -93,9 +94,7 @@ export class nrrd_tools {
|
|
|
93
94
|
switchSliceFlag: false,
|
|
94
95
|
labels: ["label1", "label2", "label3"],
|
|
95
96
|
getMask: (mask, sliceId, label, width, height, clearAllFlag) => { },
|
|
96
|
-
|
|
97
|
-
// "url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto",
|
|
98
|
-
defaultPaintCursor: "url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto",
|
|
97
|
+
defaultPaintCursor: switchPencilIcon("dot"),
|
|
99
98
|
drawStartPos: new THREE.Vector2(1, 1),
|
|
100
99
|
};
|
|
101
100
|
this.cursorPage = {
|
|
@@ -344,6 +343,11 @@ export class nrrd_tools {
|
|
|
344
343
|
setEraserUrls(urls) {
|
|
345
344
|
this.eraserUrls = urls;
|
|
346
345
|
}
|
|
346
|
+
setPencilIconUrls(urls) {
|
|
347
|
+
this.pencilUrls = urls;
|
|
348
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon("dot", this.pencilUrls);
|
|
349
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
350
|
+
}
|
|
347
351
|
getCurrentImageDimension() {
|
|
348
352
|
return this.nrrd_states.dimensions;
|
|
349
353
|
}
|
|
@@ -2299,54 +2303,10 @@ export class nrrd_tools {
|
|
|
2299
2303
|
if (modeFolder.__controllers.length > 0)
|
|
2300
2304
|
this.removeGuiFolderChilden(modeFolder);
|
|
2301
2305
|
modeFolder.open();
|
|
2302
|
-
const actionsFolder = modeFolder.addFolder("
|
|
2303
|
-
actionsFolder
|
|
2304
|
-
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
2305
|
-
.onChange((val) => {
|
|
2306
|
-
if (val === "label1") {
|
|
2307
|
-
this.gui_states.fillColor = "#00ff00";
|
|
2308
|
-
this.gui_states.brushColor = "#00ff00";
|
|
2309
|
-
}
|
|
2310
|
-
else if (val === "label2") {
|
|
2311
|
-
this.gui_states.fillColor = "#ff0000";
|
|
2312
|
-
this.gui_states.brushColor = "#ff0000";
|
|
2313
|
-
}
|
|
2314
|
-
else if (val === "label3") {
|
|
2315
|
-
this.gui_states.fillColor = "#0000ff";
|
|
2316
|
-
this.gui_states.brushColor = "#0000ff";
|
|
2317
|
-
}
|
|
2318
|
-
});
|
|
2319
|
-
actionsFolder
|
|
2320
|
-
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
2321
|
-
.name("cursor icons")
|
|
2322
|
-
.onChange((value) => {
|
|
2323
|
-
if (value === "crosshair") {
|
|
2324
|
-
this.nrrd_states.defaultPaintCursor = "crosshair";
|
|
2325
|
-
}
|
|
2326
|
-
if (value === "pencil") {
|
|
2327
|
-
this.nrrd_states.defaultPaintCursor =
|
|
2328
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto";
|
|
2329
|
-
}
|
|
2330
|
-
if (value === "dot") {
|
|
2331
|
-
this.nrrd_states.defaultPaintCursor =
|
|
2332
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
2333
|
-
}
|
|
2334
|
-
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
2335
|
-
});
|
|
2336
|
-
actionsFolder
|
|
2337
|
-
.add(this.gui_states, "mainAreaSize")
|
|
2338
|
-
.name("zoom")
|
|
2339
|
-
.min(1)
|
|
2340
|
-
.max(8)
|
|
2341
|
-
.onFinishChange((factor) => {
|
|
2342
|
-
this.resetPaintArea();
|
|
2343
|
-
this.nrrd_states.sizeFoctor = factor;
|
|
2344
|
-
this.resizePaintArea(factor);
|
|
2345
|
-
});
|
|
2346
|
-
actionsFolder.add(this.gui_states, "resetZoom");
|
|
2306
|
+
const actionsFolder = modeFolder.addFolder("DefaultActions");
|
|
2347
2307
|
actionsFolder
|
|
2348
2308
|
.add(this.gui_states, "globalAlpha")
|
|
2349
|
-
.name("
|
|
2309
|
+
.name("Opacity")
|
|
2350
2310
|
.min(0.1)
|
|
2351
2311
|
.max(1)
|
|
2352
2312
|
.step(0.01);
|
|
@@ -2383,6 +2343,7 @@ export class nrrd_tools {
|
|
|
2383
2343
|
});
|
|
2384
2344
|
actionsFolder
|
|
2385
2345
|
.add(this.gui_states, "brushAndEraserSize")
|
|
2346
|
+
.name("BrushAndEraserSize")
|
|
2386
2347
|
.min(5)
|
|
2387
2348
|
.max(50)
|
|
2388
2349
|
.step(1)
|
|
@@ -2404,12 +2365,13 @@ export class nrrd_tools {
|
|
|
2404
2365
|
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
2405
2366
|
}
|
|
2406
2367
|
});
|
|
2407
|
-
actionsFolder.add(this.gui_states, "clear");
|
|
2408
|
-
actionsFolder.add(this.gui_states, "clearAll");
|
|
2409
|
-
actionsFolder.add(this.gui_states, "undo");
|
|
2368
|
+
actionsFolder.add(this.gui_states, "clear").name("Clear");
|
|
2369
|
+
actionsFolder.add(this.gui_states, "clearAll").name("ClearAll");
|
|
2370
|
+
actionsFolder.add(this.gui_states, "undo").name("Undo");
|
|
2371
|
+
actionsFolder.add(this.gui_states, "resetZoom").name("ResetZoom");
|
|
2410
2372
|
actionsFolder
|
|
2411
2373
|
.add(this.mainPreSlice.volume, "windowHigh", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
2412
|
-
.name("
|
|
2374
|
+
.name("ImageContrast")
|
|
2413
2375
|
.onChange((value) => {
|
|
2414
2376
|
this.nrrd_states.readyToUpdate = false;
|
|
2415
2377
|
this.updateSlicesContrast(value, "windowHigh");
|
|
@@ -2418,30 +2380,68 @@ export class nrrd_tools {
|
|
|
2418
2380
|
this.repraintAllContrastSlices();
|
|
2419
2381
|
this.nrrd_states.readyToUpdate = true;
|
|
2420
2382
|
});
|
|
2421
|
-
|
|
2422
|
-
|
|
2383
|
+
const advanceFolder = modeFolder.addFolder("AdvanceSettings");
|
|
2384
|
+
advanceFolder
|
|
2385
|
+
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
2386
|
+
.name("Label")
|
|
2387
|
+
.onChange((val) => {
|
|
2388
|
+
if (val === "label1") {
|
|
2389
|
+
this.gui_states.fillColor = "#00ff00";
|
|
2390
|
+
this.gui_states.brushColor = "#00ff00";
|
|
2391
|
+
}
|
|
2392
|
+
else if (val === "label2") {
|
|
2393
|
+
this.gui_states.fillColor = "#ff0000";
|
|
2394
|
+
this.gui_states.brushColor = "#ff0000";
|
|
2395
|
+
}
|
|
2396
|
+
else if (val === "label3") {
|
|
2397
|
+
this.gui_states.fillColor = "#0000ff";
|
|
2398
|
+
this.gui_states.brushColor = "#0000ff";
|
|
2399
|
+
}
|
|
2400
|
+
});
|
|
2401
|
+
advanceFolder
|
|
2402
|
+
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
2403
|
+
.name("CursorIcons")
|
|
2404
|
+
.onChange((value) => {
|
|
2405
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon(value, this.pencilUrls);
|
|
2406
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
2407
|
+
});
|
|
2408
|
+
advanceFolder
|
|
2409
|
+
.add(this.gui_states, "mainAreaSize")
|
|
2410
|
+
.name("Zoom")
|
|
2411
|
+
.min(1)
|
|
2412
|
+
.max(8)
|
|
2413
|
+
.onFinishChange((factor) => {
|
|
2414
|
+
this.resetPaintArea();
|
|
2415
|
+
this.nrrd_states.sizeFoctor = factor;
|
|
2416
|
+
this.resizePaintArea(factor);
|
|
2417
|
+
});
|
|
2423
2418
|
advanceFolder
|
|
2424
2419
|
.add(this.gui_states, "dragSensitivity")
|
|
2420
|
+
.name("DragSensitivity")
|
|
2425
2421
|
.min(1)
|
|
2426
2422
|
.max(this.nrrd_states.Max_sensitive)
|
|
2427
2423
|
.step(1);
|
|
2428
|
-
const segmentationFolder = advanceFolder.addFolder("
|
|
2424
|
+
const segmentationFolder = advanceFolder.addFolder("PencilSettings");
|
|
2429
2425
|
segmentationFolder
|
|
2430
2426
|
.add(this.gui_states, "lineWidth")
|
|
2431
|
-
.name("
|
|
2427
|
+
.name("OuterLineWidth")
|
|
2432
2428
|
.min(1.7)
|
|
2433
2429
|
.max(3)
|
|
2434
2430
|
.step(0.01);
|
|
2435
|
-
segmentationFolder.addColor(this.gui_states, "color");
|
|
2436
|
-
segmentationFolder.addColor(this.gui_states, "fillColor");
|
|
2437
|
-
const bushFolder = advanceFolder.addFolder("
|
|
2438
|
-
bushFolder.addColor(this.gui_states, "brushColor");
|
|
2431
|
+
segmentationFolder.addColor(this.gui_states, "color").name("Color");
|
|
2432
|
+
segmentationFolder.addColor(this.gui_states, "fillColor").name("FillColor");
|
|
2433
|
+
const bushFolder = advanceFolder.addFolder("BrushSettings");
|
|
2434
|
+
bushFolder.addColor(this.gui_states, "brushColor").name("BrushColor");
|
|
2439
2435
|
// modeFolder.add(this.stateMode, "EraserSize").min(1).max(50).step(1);
|
|
2440
|
-
advanceFolder.
|
|
2441
|
-
|
|
2436
|
+
const maskFolder = advanceFolder.addFolder("MaskDownload");
|
|
2437
|
+
maskFolder
|
|
2438
|
+
.add(this.gui_states, "downloadCurrentMask")
|
|
2439
|
+
.name("DownloadCurrentMask");
|
|
2440
|
+
maskFolder.add(this.gui_states, "exportMarks").name("ExportMask");
|
|
2441
|
+
const contrastFolder = advanceFolder.addFolder("ContrastAdvanceSettings");
|
|
2442
2442
|
contrastFolder
|
|
2443
2443
|
.add(this.mainPreSlice.volume, "lowerThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
2444
|
-
.name("
|
|
2444
|
+
.name("LowerThreshold")
|
|
2445
2445
|
.onChange((value) => {
|
|
2446
2446
|
this.nrrd_states.readyToUpdate = false;
|
|
2447
2447
|
this.updateSlicesContrast(value, "lowerThreshold");
|
|
@@ -2452,7 +2452,7 @@ export class nrrd_tools {
|
|
|
2452
2452
|
});
|
|
2453
2453
|
contrastFolder
|
|
2454
2454
|
.add(this.mainPreSlice.volume, "upperThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
2455
|
-
.name("
|
|
2455
|
+
.name("UpperThreshold")
|
|
2456
2456
|
.onChange((value) => {
|
|
2457
2457
|
this.nrrd_states.readyToUpdate = false;
|
|
2458
2458
|
this.updateSlicesContrast(value, "upperThreshold");
|
|
@@ -2463,7 +2463,7 @@ export class nrrd_tools {
|
|
|
2463
2463
|
});
|
|
2464
2464
|
contrastFolder
|
|
2465
2465
|
.add(this.mainPreSlice.volume, "windowLow", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
2466
|
-
.name("
|
|
2466
|
+
.name("WindowLow")
|
|
2467
2467
|
.onChange((value) => {
|
|
2468
2468
|
this.nrrd_states.readyToUpdate = false;
|
|
2469
2469
|
this.updateSlicesContrast(value, "windowLow");
|