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.
@@ -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
- // defaultPaintCursor:
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("Default Actions");
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("opacity")
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("Image contrast")
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
- actionsFolder.add(this.gui_states, "exportMarks");
70102
- const advanceFolder = modeFolder.addFolder("Advance settings");
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("Pencil settings");
70143
+ const segmentationFolder = advanceFolder.addFolder("PencilSettings");
70109
70144
  segmentationFolder
70110
70145
  .add(this.gui_states, "lineWidth")
70111
- .name("outerLineWidth")
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("Brush settings");
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.add(this.gui_states, "downloadCurrentMask");
70121
- const contrastFolder = advanceFolder.addFolder("contrast advance settings");
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("Lower Threshold")
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("Upper Threshold")
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("Window Low")
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.20";
70367
- console.log("%cCopper3D Visualisation %cBeta:v1.15.20", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
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 };
@@ -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
- // defaultPaintCursor:
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("Default Actions");
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("opacity")
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("Image contrast")
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
- actionsFolder.add(this.gui_states, "exportMarks");
70110
- const advanceFolder = modeFolder.addFolder("Advance settings");
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("Pencil settings");
70151
+ const segmentationFolder = advanceFolder.addFolder("PencilSettings");
70117
70152
  segmentationFolder
70118
70153
  .add(this.gui_states, "lineWidth")
70119
- .name("outerLineWidth")
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("Brush settings");
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.add(this.gui_states, "downloadCurrentMask");
70129
- const contrastFolder = advanceFolder.addFolder("contrast advance settings");
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("Lower Threshold")
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("Upper Threshold")
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("Window Low")
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.20";
70375
- console.log("%cCopper3D Visualisation %cBeta:v1.15.20", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
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";
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.20";
21
- console.log("%cCopper3D Visualisation %cBeta:v1.15.20", "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
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
  /**
@@ -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";
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.20",
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",