copper3d 3.4.5 → 3.4.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.
@@ -94,6 +94,15 @@ export declare class DrawingTool extends BaseTool {
94
94
  * then composite all layers to master.
95
95
  */
96
96
  private refreshLayerFromVolume;
97
+ /**
98
+ * Notify the backend of the brush stroke by firing onMaskChanged for the
99
+ * current slice. Brush writes voxels straight into the MaskVolume (no canvas
100
+ * bake), so we read the authoritative slice back from the volume — mirrors
101
+ * SphereBrushTool.refreshDisplay's notify path. Brush only ever touches the
102
+ * current view slice (canvasToVoxel3D fixes the slice axis), so a single
103
+ * slice notification is sufficient.
104
+ */
105
+ private notifyMaskChanged;
97
106
  /** Capture pre-draw slice snapshot for undo */
98
107
  private capturePreDrawSnapshot;
99
108
  /** Push delta to UndoManager after drawing completes */
@@ -145,9 +145,15 @@ export class DrawingTool extends BaseTool {
145
145
  this.refreshLayerFromVolume();
146
146
  }
147
147
  else {
148
- // Brush mode: voxels already written during mousemove
149
- // Just re-render final state and composite
148
+ // Brush mode: voxels already written directly into the MaskVolume
149
+ // during mousemove, so no canvas→voxel bake (syncLayerSliceData) is
150
+ // needed. But we MUST still notify the backend — unlike pencil/eraser
151
+ // (which go through syncLayerSliceData) the brush path never fires
152
+ // onMaskChanged, so brush strokes were silently never persisted via
153
+ // useReplaceMask. Re-render the final state, then fire onMaskChanged
154
+ // for the current slice (same pattern as SphereBrushTool.refreshDisplay).
150
155
  this.refreshLayerFromVolume();
156
+ this.notifyMaskChanged();
151
157
  }
152
158
  }
153
159
  else {
@@ -405,6 +411,30 @@ export class DrawingTool extends BaseTool {
405
411
  this.callbacks.compositeAllLayers();
406
412
  this.ctx.protectedData.mainPreSlices.mesh.material.map.needsUpdate = true;
407
413
  }
414
+ /**
415
+ * Notify the backend of the brush stroke by firing onMaskChanged for the
416
+ * current slice. Brush writes voxels straight into the MaskVolume (no canvas
417
+ * bake), so we read the authoritative slice back from the volume — mirrors
418
+ * SphereBrushTool.refreshDisplay's notify path. Brush only ever touches the
419
+ * current view slice (canvasToVoxel3D fixes the slice axis), so a single
420
+ * slice notification is sufficient.
421
+ */
422
+ notifyMaskChanged() {
423
+ if (this.ctx.nrrd_states.flags.loadingMaskData)
424
+ return;
425
+ try {
426
+ const layer = this.ctx.gui_states.layerChannel.layer;
427
+ const vol = this.callbacks.getVolumeForLayer(layer);
428
+ const channel = this.ctx.gui_states.layerChannel.activeChannel || 1;
429
+ const axis = this.ctx.protectedData.axis;
430
+ const sliceIndex = this.ctx.nrrd_states.view.currentSliceIndex;
431
+ const { data: sliceData, width, height } = vol.getSliceUint8(sliceIndex, axis);
432
+ this.ctx.callbacks.onMaskChanged(sliceData, layer, channel, sliceIndex, axis, width, height, false);
433
+ }
434
+ catch (_a) {
435
+ // Volume not ready — skip notification
436
+ }
437
+ }
408
438
  // ── Private helpers ────────────────────────────────────────
409
439
  /** Capture pre-draw slice snapshot for undo */
410
440
  capturePreDrawSnapshot() {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawingTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/DrawingTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DrawingTool.js","sourceRoot":"","sources":["../../../../src/Utils/segmentation/tools/DrawingTool.ts"],"names":[],"mappings":"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"}
@@ -75035,9 +75035,15 @@ class DrawingTool extends BaseTool {
75035
75035
  this.refreshLayerFromVolume();
75036
75036
  }
75037
75037
  else {
75038
- // Brush mode: voxels already written during mousemove
75039
- // Just re-render final state and composite
75038
+ // Brush mode: voxels already written directly into the MaskVolume
75039
+ // during mousemove, so no canvas→voxel bake (syncLayerSliceData) is
75040
+ // needed. But we MUST still notify the backend — unlike pencil/eraser
75041
+ // (which go through syncLayerSliceData) the brush path never fires
75042
+ // onMaskChanged, so brush strokes were silently never persisted via
75043
+ // useReplaceMask. Re-render the final state, then fire onMaskChanged
75044
+ // for the current slice (same pattern as SphereBrushTool.refreshDisplay).
75040
75045
  this.refreshLayerFromVolume();
75046
+ this.notifyMaskChanged();
75041
75047
  }
75042
75048
  }
75043
75049
  else {
@@ -75295,6 +75301,30 @@ class DrawingTool extends BaseTool {
75295
75301
  this.callbacks.compositeAllLayers();
75296
75302
  this.ctx.protectedData.mainPreSlices.mesh.material.map.needsUpdate = true;
75297
75303
  }
75304
+ /**
75305
+ * Notify the backend of the brush stroke by firing onMaskChanged for the
75306
+ * current slice. Brush writes voxels straight into the MaskVolume (no canvas
75307
+ * bake), so we read the authoritative slice back from the volume — mirrors
75308
+ * SphereBrushTool.refreshDisplay's notify path. Brush only ever touches the
75309
+ * current view slice (canvasToVoxel3D fixes the slice axis), so a single
75310
+ * slice notification is sufficient.
75311
+ */
75312
+ notifyMaskChanged() {
75313
+ if (this.ctx.nrrd_states.flags.loadingMaskData)
75314
+ return;
75315
+ try {
75316
+ const layer = this.ctx.gui_states.layerChannel.layer;
75317
+ const vol = this.callbacks.getVolumeForLayer(layer);
75318
+ const channel = this.ctx.gui_states.layerChannel.activeChannel || 1;
75319
+ const axis = this.ctx.protectedData.axis;
75320
+ const sliceIndex = this.ctx.nrrd_states.view.currentSliceIndex;
75321
+ const { data: sliceData, width, height } = vol.getSliceUint8(sliceIndex, axis);
75322
+ this.ctx.callbacks.onMaskChanged(sliceData, layer, channel, sliceIndex, axis, width, height, false);
75323
+ }
75324
+ catch (_a) {
75325
+ // Volume not ready — skip notification
75326
+ }
75327
+ }
75298
75328
  // ── Private helpers ────────────────────────────────────────
75299
75329
  /** Capture pre-draw slice snapshot for undo */
75300
75330
  capturePreDrawSnapshot() {
@@ -79450,7 +79480,7 @@ function evaluateElement(element, weights) {
79450
79480
  }
79451
79481
 
79452
79482
  // import * as kiwrious from "copper3d_plugin_heart_k";
79453
- const REVISION = "v3.4.5-beta";
79483
+ const REVISION = "v3.4.6-beta";
79454
79484
  console.log(`%cCopper3D Visualisation %cBeta:${REVISION}`, "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
79455
79485
 
79456
79486
  export { CHANNEL_COLORS, CHANNEL_HEX_COLORS, CameraViewPoint, Copper3dTrackballControls, GaussianSmoother, MeshNodeTool, NrrdTools, REVISION, addBoxHelper, addLabelToScene, configKiwriousHeart, convert3DPostoScreenPos, convertScreenPosto3DPos, copperMScene, copperMSceneRenderer, copperRenderer, copperRendererOnDemond, copperScene, copperSceneOnDemond, createTexture2D_NRRD, fullScreenListenner, kiwrious, loading, removeGuiFolderChilden, rgbaToCss, rgbaToHex, setHDRFilePath, throttle };
@@ -75043,9 +75043,15 @@ void main() {
75043
75043
  this.refreshLayerFromVolume();
75044
75044
  }
75045
75045
  else {
75046
- // Brush mode: voxels already written during mousemove
75047
- // Just re-render final state and composite
75046
+ // Brush mode: voxels already written directly into the MaskVolume
75047
+ // during mousemove, so no canvas→voxel bake (syncLayerSliceData) is
75048
+ // needed. But we MUST still notify the backend — unlike pencil/eraser
75049
+ // (which go through syncLayerSliceData) the brush path never fires
75050
+ // onMaskChanged, so brush strokes were silently never persisted via
75051
+ // useReplaceMask. Re-render the final state, then fire onMaskChanged
75052
+ // for the current slice (same pattern as SphereBrushTool.refreshDisplay).
75048
75053
  this.refreshLayerFromVolume();
75054
+ this.notifyMaskChanged();
75049
75055
  }
75050
75056
  }
75051
75057
  else {
@@ -75303,6 +75309,30 @@ void main() {
75303
75309
  this.callbacks.compositeAllLayers();
75304
75310
  this.ctx.protectedData.mainPreSlices.mesh.material.map.needsUpdate = true;
75305
75311
  }
75312
+ /**
75313
+ * Notify the backend of the brush stroke by firing onMaskChanged for the
75314
+ * current slice. Brush writes voxels straight into the MaskVolume (no canvas
75315
+ * bake), so we read the authoritative slice back from the volume — mirrors
75316
+ * SphereBrushTool.refreshDisplay's notify path. Brush only ever touches the
75317
+ * current view slice (canvasToVoxel3D fixes the slice axis), so a single
75318
+ * slice notification is sufficient.
75319
+ */
75320
+ notifyMaskChanged() {
75321
+ if (this.ctx.nrrd_states.flags.loadingMaskData)
75322
+ return;
75323
+ try {
75324
+ const layer = this.ctx.gui_states.layerChannel.layer;
75325
+ const vol = this.callbacks.getVolumeForLayer(layer);
75326
+ const channel = this.ctx.gui_states.layerChannel.activeChannel || 1;
75327
+ const axis = this.ctx.protectedData.axis;
75328
+ const sliceIndex = this.ctx.nrrd_states.view.currentSliceIndex;
75329
+ const { data: sliceData, width, height } = vol.getSliceUint8(sliceIndex, axis);
75330
+ this.ctx.callbacks.onMaskChanged(sliceData, layer, channel, sliceIndex, axis, width, height, false);
75331
+ }
75332
+ catch (_a) {
75333
+ // Volume not ready — skip notification
75334
+ }
75335
+ }
75306
75336
  // ── Private helpers ────────────────────────────────────────
75307
75337
  /** Capture pre-draw slice snapshot for undo */
75308
75338
  capturePreDrawSnapshot() {
@@ -79458,7 +79488,7 @@ void main() {
79458
79488
  }
79459
79489
 
79460
79490
  // import * as kiwrious from "copper3d_plugin_heart_k";
79461
- const REVISION = "v3.4.5-beta";
79491
+ const REVISION = "v3.4.6-beta";
79462
79492
  console.log(`%cCopper3D Visualisation %cBeta:${REVISION}`, "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
79463
79493
 
79464
79494
  exports.CHANNEL_COLORS = CHANNEL_COLORS;
package/dist/index.d.ts CHANGED
@@ -25,6 +25,6 @@ import type { ToolMode, IAnnotationCallbacks } from "./Utils/segmentation/core/t
25
25
  import { CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss } from "./Utils/segmentation/core/index";
26
26
  import type { LayerId, ChannelValue } from "./Utils/segmentation/core/index";
27
27
  import "./css/style.css";
28
- export declare const REVISION = "v3.4.5-beta";
28
+ export declare const REVISION = "v3.4.6-beta";
29
29
  export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, NrrdTools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, removeGuiFolderChilden, CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss, GaussianSmoother, };
30
30
  export type { positionType, screenPosType, optsType, nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, IPaintImage, exportPaintImageType, IOptVTKLoader, ICommXYZ, IGUIStates, IGuiParameterSettings, INrrdStates, NrrdState, GuiState, IGuiMeta, ToolMode, IAnnotationCallbacks, LayerId, ChannelValue, };
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ import { MeshNodeTool } from "./Utils/MeshNodeTool";
21
21
  import { removeGuiFolderChilden } from "./Utils/segmentation/coreTools/gui";
22
22
  import { CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss } from "./Utils/segmentation/core/index";
23
23
  import "./css/style.css";
24
- export const REVISION = "v3.4.5-beta";
24
+ export const REVISION = "v3.4.6-beta";
25
25
  console.log(`%cCopper3D Visualisation %cBeta:${REVISION}`, "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
26
26
  export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, NrrdTools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, removeGuiFolderChilden, CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss, GaussianSmoother, };
27
27
  //# sourceMappingURL=index.js.map
@@ -94,6 +94,15 @@ export declare class DrawingTool extends BaseTool {
94
94
  * then composite all layers to master.
95
95
  */
96
96
  private refreshLayerFromVolume;
97
+ /**
98
+ * Notify the backend of the brush stroke by firing onMaskChanged for the
99
+ * current slice. Brush writes voxels straight into the MaskVolume (no canvas
100
+ * bake), so we read the authoritative slice back from the volume — mirrors
101
+ * SphereBrushTool.refreshDisplay's notify path. Brush only ever touches the
102
+ * current view slice (canvasToVoxel3D fixes the slice axis), so a single
103
+ * slice notification is sufficient.
104
+ */
105
+ private notifyMaskChanged;
97
106
  /** Capture pre-draw slice snapshot for undo */
98
107
  private capturePreDrawSnapshot;
99
108
  /** Push delta to UndoManager after drawing completes */
@@ -25,6 +25,6 @@ import type { ToolMode, IAnnotationCallbacks } from "./Utils/segmentation/core/t
25
25
  import { CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss } from "./Utils/segmentation/core/index";
26
26
  import type { LayerId, ChannelValue } from "./Utils/segmentation/core/index";
27
27
  import "./css/style.css";
28
- export declare const REVISION = "v3.4.5-beta";
28
+ export declare const REVISION = "v3.4.6-beta";
29
29
  export { copperRenderer, copperRendererOnDemond, copperMSceneRenderer, setHDRFilePath, addLabelToScene, convert3DPostoScreenPos, convertScreenPosto3DPos, addBoxHelper, fullScreenListenner, configKiwriousHeart, copperScene, copperSceneOnDemond, copperMScene, CameraViewPoint, kiwrious, NrrdTools, loading, Copper3dTrackballControls, createTexture2D_NRRD, MeshNodeTool, throttle, removeGuiFolderChilden, CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss, GaussianSmoother, };
30
30
  export type { positionType, screenPosType, optsType, nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, IPaintImage, exportPaintImageType, IOptVTKLoader, ICommXYZ, IGUIStates, IGuiParameterSettings, INrrdStates, NrrdState, GuiState, IGuiMeta, ToolMode, IAnnotationCallbacks, LayerId, ChannelValue, };
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": "3.4.5",
4
+ "version": "3.4.6",
5
5
  "main": "dist/bundle.umd.js",
6
6
  "moudle": "dist/bundle.esm.js",
7
7
  "types": "dist/types/index.d.ts",