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
package/dist/bundle.esm.js
CHANGED
|
@@ -38399,6 +38399,45 @@ function loading() {
|
|
|
38399
38399
|
loadingContainer.appendChild(progress);
|
|
38400
38400
|
return { loadingContainer, progress };
|
|
38401
38401
|
}
|
|
38402
|
+
function switchPencilIcon(icon, urls) {
|
|
38403
|
+
let url = "";
|
|
38404
|
+
if (!!urls && urls.length > 0) {
|
|
38405
|
+
switch (icon) {
|
|
38406
|
+
case "crosshair":
|
|
38407
|
+
url = "crosshair";
|
|
38408
|
+
break;
|
|
38409
|
+
case "pencil":
|
|
38410
|
+
url = `url(${urls[1]}), auto`;
|
|
38411
|
+
break;
|
|
38412
|
+
case "dot":
|
|
38413
|
+
url = `url(${urls[0]}), auto`;
|
|
38414
|
+
break;
|
|
38415
|
+
default:
|
|
38416
|
+
url = `url(${urls[0]}), auto`;
|
|
38417
|
+
break;
|
|
38418
|
+
}
|
|
38419
|
+
}
|
|
38420
|
+
else {
|
|
38421
|
+
switch (icon) {
|
|
38422
|
+
case "crosshair":
|
|
38423
|
+
url = "crosshair";
|
|
38424
|
+
break;
|
|
38425
|
+
case "pencil":
|
|
38426
|
+
url =
|
|
38427
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto";
|
|
38428
|
+
break;
|
|
38429
|
+
case "dot":
|
|
38430
|
+
url =
|
|
38431
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
38432
|
+
break;
|
|
38433
|
+
default:
|
|
38434
|
+
url =
|
|
38435
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
38436
|
+
break;
|
|
38437
|
+
}
|
|
38438
|
+
}
|
|
38439
|
+
return url;
|
|
38440
|
+
}
|
|
38402
38441
|
function switchEraserSize(size, urls) {
|
|
38403
38442
|
let url = "";
|
|
38404
38443
|
if (!!urls && urls.length > 0) {
|
|
@@ -67728,6 +67767,7 @@ class nrrd_tools {
|
|
|
67728
67767
|
this.undoArray = [];
|
|
67729
67768
|
this.initState = true;
|
|
67730
67769
|
this.eraserUrls = [];
|
|
67770
|
+
this.pencilUrls = [];
|
|
67731
67771
|
this.nrrd_states = {
|
|
67732
67772
|
originWidth: 0,
|
|
67733
67773
|
originHeight: 0,
|
|
@@ -67774,9 +67814,7 @@ class nrrd_tools {
|
|
|
67774
67814
|
switchSliceFlag: false,
|
|
67775
67815
|
labels: ["label1", "label2", "label3"],
|
|
67776
67816
|
getMask: (mask, sliceId, label, width, height, clearAllFlag) => { },
|
|
67777
|
-
|
|
67778
|
-
// "url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto",
|
|
67779
|
-
defaultPaintCursor: "url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto",
|
|
67817
|
+
defaultPaintCursor: switchPencilIcon("dot"),
|
|
67780
67818
|
drawStartPos: new Vector2(1, 1),
|
|
67781
67819
|
};
|
|
67782
67820
|
this.cursorPage = {
|
|
@@ -68025,6 +68063,11 @@ class nrrd_tools {
|
|
|
68025
68063
|
setEraserUrls(urls) {
|
|
68026
68064
|
this.eraserUrls = urls;
|
|
68027
68065
|
}
|
|
68066
|
+
setPencilIconUrls(urls) {
|
|
68067
|
+
this.pencilUrls = urls;
|
|
68068
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon("dot", this.pencilUrls);
|
|
68069
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
68070
|
+
}
|
|
68028
68071
|
getCurrentImageDimension() {
|
|
68029
68072
|
return this.nrrd_states.dimensions;
|
|
68030
68073
|
}
|
|
@@ -69979,54 +70022,10 @@ class nrrd_tools {
|
|
|
69979
70022
|
if (modeFolder.__controllers.length > 0)
|
|
69980
70023
|
this.removeGuiFolderChilden(modeFolder);
|
|
69981
70024
|
modeFolder.open();
|
|
69982
|
-
const actionsFolder = modeFolder.addFolder("
|
|
69983
|
-
actionsFolder
|
|
69984
|
-
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
69985
|
-
.onChange((val) => {
|
|
69986
|
-
if (val === "label1") {
|
|
69987
|
-
this.gui_states.fillColor = "#00ff00";
|
|
69988
|
-
this.gui_states.brushColor = "#00ff00";
|
|
69989
|
-
}
|
|
69990
|
-
else if (val === "label2") {
|
|
69991
|
-
this.gui_states.fillColor = "#ff0000";
|
|
69992
|
-
this.gui_states.brushColor = "#ff0000";
|
|
69993
|
-
}
|
|
69994
|
-
else if (val === "label3") {
|
|
69995
|
-
this.gui_states.fillColor = "#0000ff";
|
|
69996
|
-
this.gui_states.brushColor = "#0000ff";
|
|
69997
|
-
}
|
|
69998
|
-
});
|
|
69999
|
-
actionsFolder
|
|
70000
|
-
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
70001
|
-
.name("cursor icons")
|
|
70002
|
-
.onChange((value) => {
|
|
70003
|
-
if (value === "crosshair") {
|
|
70004
|
-
this.nrrd_states.defaultPaintCursor = "crosshair";
|
|
70005
|
-
}
|
|
70006
|
-
if (value === "pencil") {
|
|
70007
|
-
this.nrrd_states.defaultPaintCursor =
|
|
70008
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto";
|
|
70009
|
-
}
|
|
70010
|
-
if (value === "dot") {
|
|
70011
|
-
this.nrrd_states.defaultPaintCursor =
|
|
70012
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
70013
|
-
}
|
|
70014
|
-
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70015
|
-
});
|
|
70016
|
-
actionsFolder
|
|
70017
|
-
.add(this.gui_states, "mainAreaSize")
|
|
70018
|
-
.name("zoom")
|
|
70019
|
-
.min(1)
|
|
70020
|
-
.max(8)
|
|
70021
|
-
.onFinishChange((factor) => {
|
|
70022
|
-
this.resetPaintArea();
|
|
70023
|
-
this.nrrd_states.sizeFoctor = factor;
|
|
70024
|
-
this.resizePaintArea(factor);
|
|
70025
|
-
});
|
|
70026
|
-
actionsFolder.add(this.gui_states, "resetZoom");
|
|
70025
|
+
const actionsFolder = modeFolder.addFolder("DefaultActions");
|
|
70027
70026
|
actionsFolder
|
|
70028
70027
|
.add(this.gui_states, "globalAlpha")
|
|
70029
|
-
.name("
|
|
70028
|
+
.name("Opacity")
|
|
70030
70029
|
.min(0.1)
|
|
70031
70030
|
.max(1)
|
|
70032
70031
|
.step(0.01);
|
|
@@ -70063,6 +70062,7 @@ class nrrd_tools {
|
|
|
70063
70062
|
});
|
|
70064
70063
|
actionsFolder
|
|
70065
70064
|
.add(this.gui_states, "brushAndEraserSize")
|
|
70065
|
+
.name("BrushAndEraserSize")
|
|
70066
70066
|
.min(5)
|
|
70067
70067
|
.max(50)
|
|
70068
70068
|
.step(1)
|
|
@@ -70084,12 +70084,13 @@ class nrrd_tools {
|
|
|
70084
70084
|
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70085
70085
|
}
|
|
70086
70086
|
});
|
|
70087
|
-
actionsFolder.add(this.gui_states, "clear");
|
|
70088
|
-
actionsFolder.add(this.gui_states, "clearAll");
|
|
70089
|
-
actionsFolder.add(this.gui_states, "undo");
|
|
70087
|
+
actionsFolder.add(this.gui_states, "clear").name("Clear");
|
|
70088
|
+
actionsFolder.add(this.gui_states, "clearAll").name("ClearAll");
|
|
70089
|
+
actionsFolder.add(this.gui_states, "undo").name("Undo");
|
|
70090
|
+
actionsFolder.add(this.gui_states, "resetZoom").name("ResetZoom");
|
|
70090
70091
|
actionsFolder
|
|
70091
70092
|
.add(this.mainPreSlice.volume, "windowHigh", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70092
|
-
.name("
|
|
70093
|
+
.name("ImageContrast")
|
|
70093
70094
|
.onChange((value) => {
|
|
70094
70095
|
this.nrrd_states.readyToUpdate = false;
|
|
70095
70096
|
this.updateSlicesContrast(value, "windowHigh");
|
|
@@ -70098,30 +70099,68 @@ class nrrd_tools {
|
|
|
70098
70099
|
this.repraintAllContrastSlices();
|
|
70099
70100
|
this.nrrd_states.readyToUpdate = true;
|
|
70100
70101
|
});
|
|
70101
|
-
|
|
70102
|
-
|
|
70102
|
+
const advanceFolder = modeFolder.addFolder("AdvanceSettings");
|
|
70103
|
+
advanceFolder
|
|
70104
|
+
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
70105
|
+
.name("Label")
|
|
70106
|
+
.onChange((val) => {
|
|
70107
|
+
if (val === "label1") {
|
|
70108
|
+
this.gui_states.fillColor = "#00ff00";
|
|
70109
|
+
this.gui_states.brushColor = "#00ff00";
|
|
70110
|
+
}
|
|
70111
|
+
else if (val === "label2") {
|
|
70112
|
+
this.gui_states.fillColor = "#ff0000";
|
|
70113
|
+
this.gui_states.brushColor = "#ff0000";
|
|
70114
|
+
}
|
|
70115
|
+
else if (val === "label3") {
|
|
70116
|
+
this.gui_states.fillColor = "#0000ff";
|
|
70117
|
+
this.gui_states.brushColor = "#0000ff";
|
|
70118
|
+
}
|
|
70119
|
+
});
|
|
70120
|
+
advanceFolder
|
|
70121
|
+
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
70122
|
+
.name("CursorIcons")
|
|
70123
|
+
.onChange((value) => {
|
|
70124
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon(value, this.pencilUrls);
|
|
70125
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70126
|
+
});
|
|
70127
|
+
advanceFolder
|
|
70128
|
+
.add(this.gui_states, "mainAreaSize")
|
|
70129
|
+
.name("Zoom")
|
|
70130
|
+
.min(1)
|
|
70131
|
+
.max(8)
|
|
70132
|
+
.onFinishChange((factor) => {
|
|
70133
|
+
this.resetPaintArea();
|
|
70134
|
+
this.nrrd_states.sizeFoctor = factor;
|
|
70135
|
+
this.resizePaintArea(factor);
|
|
70136
|
+
});
|
|
70103
70137
|
advanceFolder
|
|
70104
70138
|
.add(this.gui_states, "dragSensitivity")
|
|
70139
|
+
.name("DragSensitivity")
|
|
70105
70140
|
.min(1)
|
|
70106
70141
|
.max(this.nrrd_states.Max_sensitive)
|
|
70107
70142
|
.step(1);
|
|
70108
|
-
const segmentationFolder = advanceFolder.addFolder("
|
|
70143
|
+
const segmentationFolder = advanceFolder.addFolder("PencilSettings");
|
|
70109
70144
|
segmentationFolder
|
|
70110
70145
|
.add(this.gui_states, "lineWidth")
|
|
70111
|
-
.name("
|
|
70146
|
+
.name("OuterLineWidth")
|
|
70112
70147
|
.min(1.7)
|
|
70113
70148
|
.max(3)
|
|
70114
70149
|
.step(0.01);
|
|
70115
|
-
segmentationFolder.addColor(this.gui_states, "color");
|
|
70116
|
-
segmentationFolder.addColor(this.gui_states, "fillColor");
|
|
70117
|
-
const bushFolder = advanceFolder.addFolder("
|
|
70118
|
-
bushFolder.addColor(this.gui_states, "brushColor");
|
|
70150
|
+
segmentationFolder.addColor(this.gui_states, "color").name("Color");
|
|
70151
|
+
segmentationFolder.addColor(this.gui_states, "fillColor").name("FillColor");
|
|
70152
|
+
const bushFolder = advanceFolder.addFolder("BrushSettings");
|
|
70153
|
+
bushFolder.addColor(this.gui_states, "brushColor").name("BrushColor");
|
|
70119
70154
|
// modeFolder.add(this.stateMode, "EraserSize").min(1).max(50).step(1);
|
|
70120
|
-
advanceFolder.
|
|
70121
|
-
|
|
70155
|
+
const maskFolder = advanceFolder.addFolder("MaskDownload");
|
|
70156
|
+
maskFolder
|
|
70157
|
+
.add(this.gui_states, "downloadCurrentMask")
|
|
70158
|
+
.name("DownloadCurrentMask");
|
|
70159
|
+
maskFolder.add(this.gui_states, "exportMarks").name("ExportMask");
|
|
70160
|
+
const contrastFolder = advanceFolder.addFolder("ContrastAdvanceSettings");
|
|
70122
70161
|
contrastFolder
|
|
70123
70162
|
.add(this.mainPreSlice.volume, "lowerThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70124
|
-
.name("
|
|
70163
|
+
.name("LowerThreshold")
|
|
70125
70164
|
.onChange((value) => {
|
|
70126
70165
|
this.nrrd_states.readyToUpdate = false;
|
|
70127
70166
|
this.updateSlicesContrast(value, "lowerThreshold");
|
|
@@ -70132,7 +70171,7 @@ class nrrd_tools {
|
|
|
70132
70171
|
});
|
|
70133
70172
|
contrastFolder
|
|
70134
70173
|
.add(this.mainPreSlice.volume, "upperThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70135
|
-
.name("
|
|
70174
|
+
.name("UpperThreshold")
|
|
70136
70175
|
.onChange((value) => {
|
|
70137
70176
|
this.nrrd_states.readyToUpdate = false;
|
|
70138
70177
|
this.updateSlicesContrast(value, "upperThreshold");
|
|
@@ -70143,7 +70182,7 @@ class nrrd_tools {
|
|
|
70143
70182
|
});
|
|
70144
70183
|
contrastFolder
|
|
70145
70184
|
.add(this.mainPreSlice.volume, "windowLow", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70146
|
-
.name("
|
|
70185
|
+
.name("WindowLow")
|
|
70147
70186
|
.onChange((value) => {
|
|
70148
70187
|
this.nrrd_states.readyToUpdate = false;
|
|
70149
70188
|
this.updateSlicesContrast(value, "windowLow");
|
|
@@ -70363,7 +70402,7 @@ function evaluateElement(element, weights) {
|
|
|
70363
70402
|
}
|
|
70364
70403
|
|
|
70365
70404
|
// import * as kiwrious from "copper3d_plugin_heart_k";
|
|
70366
|
-
const REVISION = "v1.15.
|
|
70367
|
-
console.log("%cCopper3D Visualisation %cBeta:v1.15.
|
|
70405
|
+
const REVISION = "v1.15.21";
|
|
70406
|
+
console.log("%cCopper3D Visualisation %cBeta:v1.15.21", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
|
|
70368
70407
|
|
|
70369
70408
|
export { CameraViewPoint, Copper3dTrackballControls, MeshNodeTool, REVISION, addBoxHelper, addLabelToScene, configKiwriousHeart, convert3DPostoScreenPos, convertScreenPosto3DPos, copperMScene, copperMSceneRenderer, copperRenderer, copperRendererOnDemond, copperScene, copperSceneOnDemond, createTexture2D_NRRD, fullScreenListenner, kiwrious, loading, nrrd_tools, setHDRFilePath, throttle };
|
package/dist/bundle.umd.js
CHANGED
|
@@ -38407,6 +38407,45 @@
|
|
|
38407
38407
|
loadingContainer.appendChild(progress);
|
|
38408
38408
|
return { loadingContainer, progress };
|
|
38409
38409
|
}
|
|
38410
|
+
function switchPencilIcon(icon, urls) {
|
|
38411
|
+
let url = "";
|
|
38412
|
+
if (!!urls && urls.length > 0) {
|
|
38413
|
+
switch (icon) {
|
|
38414
|
+
case "crosshair":
|
|
38415
|
+
url = "crosshair";
|
|
38416
|
+
break;
|
|
38417
|
+
case "pencil":
|
|
38418
|
+
url = `url(${urls[1]}), auto`;
|
|
38419
|
+
break;
|
|
38420
|
+
case "dot":
|
|
38421
|
+
url = `url(${urls[0]}), auto`;
|
|
38422
|
+
break;
|
|
38423
|
+
default:
|
|
38424
|
+
url = `url(${urls[0]}), auto`;
|
|
38425
|
+
break;
|
|
38426
|
+
}
|
|
38427
|
+
}
|
|
38428
|
+
else {
|
|
38429
|
+
switch (icon) {
|
|
38430
|
+
case "crosshair":
|
|
38431
|
+
url = "crosshair";
|
|
38432
|
+
break;
|
|
38433
|
+
case "pencil":
|
|
38434
|
+
url =
|
|
38435
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto";
|
|
38436
|
+
break;
|
|
38437
|
+
case "dot":
|
|
38438
|
+
url =
|
|
38439
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
38440
|
+
break;
|
|
38441
|
+
default:
|
|
38442
|
+
url =
|
|
38443
|
+
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
38444
|
+
break;
|
|
38445
|
+
}
|
|
38446
|
+
}
|
|
38447
|
+
return url;
|
|
38448
|
+
}
|
|
38410
38449
|
function switchEraserSize(size, urls) {
|
|
38411
38450
|
let url = "";
|
|
38412
38451
|
if (!!urls && urls.length > 0) {
|
|
@@ -67736,6 +67775,7 @@
|
|
|
67736
67775
|
this.undoArray = [];
|
|
67737
67776
|
this.initState = true;
|
|
67738
67777
|
this.eraserUrls = [];
|
|
67778
|
+
this.pencilUrls = [];
|
|
67739
67779
|
this.nrrd_states = {
|
|
67740
67780
|
originWidth: 0,
|
|
67741
67781
|
originHeight: 0,
|
|
@@ -67782,9 +67822,7 @@
|
|
|
67782
67822
|
switchSliceFlag: false,
|
|
67783
67823
|
labels: ["label1", "label2", "label3"],
|
|
67784
67824
|
getMask: (mask, sliceId, label, width, height, clearAllFlag) => { },
|
|
67785
|
-
|
|
67786
|
-
// "url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto",
|
|
67787
|
-
defaultPaintCursor: "url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto",
|
|
67825
|
+
defaultPaintCursor: switchPencilIcon("dot"),
|
|
67788
67826
|
drawStartPos: new Vector2(1, 1),
|
|
67789
67827
|
};
|
|
67790
67828
|
this.cursorPage = {
|
|
@@ -68033,6 +68071,11 @@
|
|
|
68033
68071
|
setEraserUrls(urls) {
|
|
68034
68072
|
this.eraserUrls = urls;
|
|
68035
68073
|
}
|
|
68074
|
+
setPencilIconUrls(urls) {
|
|
68075
|
+
this.pencilUrls = urls;
|
|
68076
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon("dot", this.pencilUrls);
|
|
68077
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
68078
|
+
}
|
|
68036
68079
|
getCurrentImageDimension() {
|
|
68037
68080
|
return this.nrrd_states.dimensions;
|
|
68038
68081
|
}
|
|
@@ -69987,54 +70030,10 @@
|
|
|
69987
70030
|
if (modeFolder.__controllers.length > 0)
|
|
69988
70031
|
this.removeGuiFolderChilden(modeFolder);
|
|
69989
70032
|
modeFolder.open();
|
|
69990
|
-
const actionsFolder = modeFolder.addFolder("
|
|
69991
|
-
actionsFolder
|
|
69992
|
-
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
69993
|
-
.onChange((val) => {
|
|
69994
|
-
if (val === "label1") {
|
|
69995
|
-
this.gui_states.fillColor = "#00ff00";
|
|
69996
|
-
this.gui_states.brushColor = "#00ff00";
|
|
69997
|
-
}
|
|
69998
|
-
else if (val === "label2") {
|
|
69999
|
-
this.gui_states.fillColor = "#ff0000";
|
|
70000
|
-
this.gui_states.brushColor = "#ff0000";
|
|
70001
|
-
}
|
|
70002
|
-
else if (val === "label3") {
|
|
70003
|
-
this.gui_states.fillColor = "#0000ff";
|
|
70004
|
-
this.gui_states.brushColor = "#0000ff";
|
|
70005
|
-
}
|
|
70006
|
-
});
|
|
70007
|
-
actionsFolder
|
|
70008
|
-
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
70009
|
-
.name("cursor icons")
|
|
70010
|
-
.onChange((value) => {
|
|
70011
|
-
if (value === "crosshair") {
|
|
70012
|
-
this.nrrd_states.defaultPaintCursor = "crosshair";
|
|
70013
|
-
}
|
|
70014
|
-
if (value === "pencil") {
|
|
70015
|
-
this.nrrd_states.defaultPaintCursor =
|
|
70016
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d_icons/main/icons/pencil-black.svg), auto";
|
|
70017
|
-
}
|
|
70018
|
-
if (value === "dot") {
|
|
70019
|
-
this.nrrd_states.defaultPaintCursor =
|
|
70020
|
-
"url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/dot.svg) 12 12,auto";
|
|
70021
|
-
}
|
|
70022
|
-
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70023
|
-
});
|
|
70024
|
-
actionsFolder
|
|
70025
|
-
.add(this.gui_states, "mainAreaSize")
|
|
70026
|
-
.name("zoom")
|
|
70027
|
-
.min(1)
|
|
70028
|
-
.max(8)
|
|
70029
|
-
.onFinishChange((factor) => {
|
|
70030
|
-
this.resetPaintArea();
|
|
70031
|
-
this.nrrd_states.sizeFoctor = factor;
|
|
70032
|
-
this.resizePaintArea(factor);
|
|
70033
|
-
});
|
|
70034
|
-
actionsFolder.add(this.gui_states, "resetZoom");
|
|
70033
|
+
const actionsFolder = modeFolder.addFolder("DefaultActions");
|
|
70035
70034
|
actionsFolder
|
|
70036
70035
|
.add(this.gui_states, "globalAlpha")
|
|
70037
|
-
.name("
|
|
70036
|
+
.name("Opacity")
|
|
70038
70037
|
.min(0.1)
|
|
70039
70038
|
.max(1)
|
|
70040
70039
|
.step(0.01);
|
|
@@ -70071,6 +70070,7 @@
|
|
|
70071
70070
|
});
|
|
70072
70071
|
actionsFolder
|
|
70073
70072
|
.add(this.gui_states, "brushAndEraserSize")
|
|
70073
|
+
.name("BrushAndEraserSize")
|
|
70074
70074
|
.min(5)
|
|
70075
70075
|
.max(50)
|
|
70076
70076
|
.step(1)
|
|
@@ -70092,12 +70092,13 @@
|
|
|
70092
70092
|
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70093
70093
|
}
|
|
70094
70094
|
});
|
|
70095
|
-
actionsFolder.add(this.gui_states, "clear");
|
|
70096
|
-
actionsFolder.add(this.gui_states, "clearAll");
|
|
70097
|
-
actionsFolder.add(this.gui_states, "undo");
|
|
70095
|
+
actionsFolder.add(this.gui_states, "clear").name("Clear");
|
|
70096
|
+
actionsFolder.add(this.gui_states, "clearAll").name("ClearAll");
|
|
70097
|
+
actionsFolder.add(this.gui_states, "undo").name("Undo");
|
|
70098
|
+
actionsFolder.add(this.gui_states, "resetZoom").name("ResetZoom");
|
|
70098
70099
|
actionsFolder
|
|
70099
70100
|
.add(this.mainPreSlice.volume, "windowHigh", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70100
|
-
.name("
|
|
70101
|
+
.name("ImageContrast")
|
|
70101
70102
|
.onChange((value) => {
|
|
70102
70103
|
this.nrrd_states.readyToUpdate = false;
|
|
70103
70104
|
this.updateSlicesContrast(value, "windowHigh");
|
|
@@ -70106,30 +70107,68 @@
|
|
|
70106
70107
|
this.repraintAllContrastSlices();
|
|
70107
70108
|
this.nrrd_states.readyToUpdate = true;
|
|
70108
70109
|
});
|
|
70109
|
-
|
|
70110
|
-
|
|
70110
|
+
const advanceFolder = modeFolder.addFolder("AdvanceSettings");
|
|
70111
|
+
advanceFolder
|
|
70112
|
+
.add(this.gui_states, "label", ["label1", "label2", "label3"])
|
|
70113
|
+
.name("Label")
|
|
70114
|
+
.onChange((val) => {
|
|
70115
|
+
if (val === "label1") {
|
|
70116
|
+
this.gui_states.fillColor = "#00ff00";
|
|
70117
|
+
this.gui_states.brushColor = "#00ff00";
|
|
70118
|
+
}
|
|
70119
|
+
else if (val === "label2") {
|
|
70120
|
+
this.gui_states.fillColor = "#ff0000";
|
|
70121
|
+
this.gui_states.brushColor = "#ff0000";
|
|
70122
|
+
}
|
|
70123
|
+
else if (val === "label3") {
|
|
70124
|
+
this.gui_states.fillColor = "#0000ff";
|
|
70125
|
+
this.gui_states.brushColor = "#0000ff";
|
|
70126
|
+
}
|
|
70127
|
+
});
|
|
70128
|
+
advanceFolder
|
|
70129
|
+
.add(this.gui_states, "cursor", ["crosshair", "pencil", "dot"])
|
|
70130
|
+
.name("CursorIcons")
|
|
70131
|
+
.onChange((value) => {
|
|
70132
|
+
this.nrrd_states.defaultPaintCursor = switchPencilIcon(value, this.pencilUrls);
|
|
70133
|
+
this.drawingCanvas.style.cursor = this.nrrd_states.defaultPaintCursor;
|
|
70134
|
+
});
|
|
70135
|
+
advanceFolder
|
|
70136
|
+
.add(this.gui_states, "mainAreaSize")
|
|
70137
|
+
.name("Zoom")
|
|
70138
|
+
.min(1)
|
|
70139
|
+
.max(8)
|
|
70140
|
+
.onFinishChange((factor) => {
|
|
70141
|
+
this.resetPaintArea();
|
|
70142
|
+
this.nrrd_states.sizeFoctor = factor;
|
|
70143
|
+
this.resizePaintArea(factor);
|
|
70144
|
+
});
|
|
70111
70145
|
advanceFolder
|
|
70112
70146
|
.add(this.gui_states, "dragSensitivity")
|
|
70147
|
+
.name("DragSensitivity")
|
|
70113
70148
|
.min(1)
|
|
70114
70149
|
.max(this.nrrd_states.Max_sensitive)
|
|
70115
70150
|
.step(1);
|
|
70116
|
-
const segmentationFolder = advanceFolder.addFolder("
|
|
70151
|
+
const segmentationFolder = advanceFolder.addFolder("PencilSettings");
|
|
70117
70152
|
segmentationFolder
|
|
70118
70153
|
.add(this.gui_states, "lineWidth")
|
|
70119
|
-
.name("
|
|
70154
|
+
.name("OuterLineWidth")
|
|
70120
70155
|
.min(1.7)
|
|
70121
70156
|
.max(3)
|
|
70122
70157
|
.step(0.01);
|
|
70123
|
-
segmentationFolder.addColor(this.gui_states, "color");
|
|
70124
|
-
segmentationFolder.addColor(this.gui_states, "fillColor");
|
|
70125
|
-
const bushFolder = advanceFolder.addFolder("
|
|
70126
|
-
bushFolder.addColor(this.gui_states, "brushColor");
|
|
70158
|
+
segmentationFolder.addColor(this.gui_states, "color").name("Color");
|
|
70159
|
+
segmentationFolder.addColor(this.gui_states, "fillColor").name("FillColor");
|
|
70160
|
+
const bushFolder = advanceFolder.addFolder("BrushSettings");
|
|
70161
|
+
bushFolder.addColor(this.gui_states, "brushColor").name("BrushColor");
|
|
70127
70162
|
// modeFolder.add(this.stateMode, "EraserSize").min(1).max(50).step(1);
|
|
70128
|
-
advanceFolder.
|
|
70129
|
-
|
|
70163
|
+
const maskFolder = advanceFolder.addFolder("MaskDownload");
|
|
70164
|
+
maskFolder
|
|
70165
|
+
.add(this.gui_states, "downloadCurrentMask")
|
|
70166
|
+
.name("DownloadCurrentMask");
|
|
70167
|
+
maskFolder.add(this.gui_states, "exportMarks").name("ExportMask");
|
|
70168
|
+
const contrastFolder = advanceFolder.addFolder("ContrastAdvanceSettings");
|
|
70130
70169
|
contrastFolder
|
|
70131
70170
|
.add(this.mainPreSlice.volume, "lowerThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70132
|
-
.name("
|
|
70171
|
+
.name("LowerThreshold")
|
|
70133
70172
|
.onChange((value) => {
|
|
70134
70173
|
this.nrrd_states.readyToUpdate = false;
|
|
70135
70174
|
this.updateSlicesContrast(value, "lowerThreshold");
|
|
@@ -70140,7 +70179,7 @@
|
|
|
70140
70179
|
});
|
|
70141
70180
|
contrastFolder
|
|
70142
70181
|
.add(this.mainPreSlice.volume, "upperThreshold", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70143
|
-
.name("
|
|
70182
|
+
.name("UpperThreshold")
|
|
70144
70183
|
.onChange((value) => {
|
|
70145
70184
|
this.nrrd_states.readyToUpdate = false;
|
|
70146
70185
|
this.updateSlicesContrast(value, "upperThreshold");
|
|
@@ -70151,7 +70190,7 @@
|
|
|
70151
70190
|
});
|
|
70152
70191
|
contrastFolder
|
|
70153
70192
|
.add(this.mainPreSlice.volume, "windowLow", this.mainPreSlice.volume.min, this.mainPreSlice.volume.max, 1)
|
|
70154
|
-
.name("
|
|
70193
|
+
.name("WindowLow")
|
|
70155
70194
|
.onChange((value) => {
|
|
70156
70195
|
this.nrrd_states.readyToUpdate = false;
|
|
70157
70196
|
this.updateSlicesContrast(value, "windowLow");
|
|
@@ -70371,8 +70410,8 @@
|
|
|
70371
70410
|
}
|
|
70372
70411
|
|
|
70373
70412
|
// import * as kiwrious from "copper3d_plugin_heart_k";
|
|
70374
|
-
const REVISION = "v1.15.
|
|
70375
|
-
console.log("%cCopper3D Visualisation %cBeta:v1.15.
|
|
70413
|
+
const REVISION = "v1.15.21";
|
|
70414
|
+
console.log("%cCopper3D Visualisation %cBeta:v1.15.21", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
|
|
70376
70415
|
|
|
70377
70416
|
exports.CameraViewPoint = CameraViewPoint;
|
|
70378
70417
|
exports.Copper3dTrackballControls = Copper3dTrackballControls;
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,6 @@ import { Copper3dTrackballControls } from "./Controls/Copper3dTrackballControls"
|
|
|
17
17
|
import { MeshNodeTool } from "./Utils/MeshNodeTool";
|
|
18
18
|
import { nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, paintImageType, exportPaintImageType, IOptVTKLoader } from "./types/types";
|
|
19
19
|
import "./css/style.css";
|
|
20
|
-
export declare const REVISION = "v1.15.
|
|
20
|
+
export declare const REVISION = "v1.15.21";
|
|
21
21
|
export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, nrrd_tools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, };
|
|
22
22
|
export type { positionType, screenPosType, optsType, nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, paintImageType, exportPaintImageType, IOptVTKLoader, };
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ import { nrrd_tools } from "./Utils/nrrd_tool";
|
|
|
17
17
|
import { Copper3dTrackballControls } from "./Controls/Copper3dTrackballControls";
|
|
18
18
|
import { MeshNodeTool } from "./Utils/MeshNodeTool";
|
|
19
19
|
import "./css/style.css";
|
|
20
|
-
export const REVISION = "v1.15.
|
|
21
|
-
console.log("%cCopper3D Visualisation %cBeta:v1.15.
|
|
20
|
+
export const REVISION = "v1.15.21";
|
|
21
|
+
console.log("%cCopper3D Visualisation %cBeta:v1.15.21", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
|
|
22
22
|
export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, nrrd_tools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, };
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -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[];
|
|
@@ -5,6 +5,7 @@ export declare function loading(): {
|
|
|
5
5
|
loadingContainer: HTMLDivElement;
|
|
6
6
|
progress: HTMLDivElement;
|
|
7
7
|
};
|
|
8
|
+
export declare function switchPencilIcon(icon: string, urls?: string[]): string;
|
|
8
9
|
export declare function switchEraserSize(size: number, urls?: string[]): string;
|
|
9
10
|
export declare function throttle(callback: (event: MouseEvent) => void, wait: number): (event: MouseEvent) => void;
|
|
10
11
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -17,6 +17,6 @@ import { Copper3dTrackballControls } from "./Controls/Copper3dTrackballControls"
|
|
|
17
17
|
import { MeshNodeTool } from "./Utils/MeshNodeTool";
|
|
18
18
|
import { nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, paintImageType, exportPaintImageType, IOptVTKLoader } from "./types/types";
|
|
19
19
|
import "./css/style.css";
|
|
20
|
-
export declare const REVISION = "v1.15.
|
|
20
|
+
export declare const REVISION = "v1.15.21";
|
|
21
21
|
export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, nrrd_tools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, };
|
|
22
22
|
export type { positionType, screenPosType, optsType, nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, paintImageType, exportPaintImageType, IOptVTKLoader, };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "copper3d",
|
|
3
3
|
"description": "A 3d visualisation package base on threejs provides multiple scenes and Nrrd image load funtion.",
|
|
4
|
-
"version": "1.15.
|
|
4
|
+
"version": "1.15.21",
|
|
5
5
|
"main": "dist/bundle.umd.js",
|
|
6
6
|
"moudle": "dist/bundle.esm.js",
|
|
7
7
|
"types": "dist/types/index.d.ts",
|