copper3d 3.0.1 → 3.1.0
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/README.md +197 -875
- package/dist/Utils/segmentation/CanvasState.d.ts +31 -0
- package/dist/Utils/segmentation/CanvasState.js +167 -0
- package/dist/Utils/segmentation/CanvasState.js.map +1 -0
- package/dist/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/Utils/segmentation/DragOperator.js +16 -8
- package/dist/Utils/segmentation/DragOperator.js.map +1 -1
- package/dist/Utils/segmentation/DrawToolCore.d.ts +64 -35
- package/dist/Utils/segmentation/DrawToolCore.js +332 -584
- package/dist/Utils/segmentation/DrawToolCore.js.map +1 -1
- package/dist/Utils/segmentation/NrrdTools.d.ts +117 -353
- package/dist/Utils/segmentation/NrrdTools.js +622 -1081
- package/dist/Utils/segmentation/NrrdTools.js.map +1 -1
- package/dist/Utils/segmentation/RenderingUtils.d.ts +73 -0
- package/dist/Utils/segmentation/RenderingUtils.js +180 -0
- package/dist/Utils/segmentation/RenderingUtils.js.map +1 -0
- package/dist/Utils/segmentation/core/MaskVolume.js +23 -2
- package/dist/Utils/segmentation/core/MaskVolume.js.map +1 -1
- package/dist/Utils/segmentation/core/UndoManager.d.ts +1 -1
- package/dist/Utils/segmentation/core/UndoManager.js +1 -1
- package/dist/Utils/segmentation/core/index.d.ts +1 -3
- package/dist/Utils/segmentation/core/index.js +0 -1
- package/dist/Utils/segmentation/core/index.js.map +1 -1
- package/dist/Utils/segmentation/core/types.d.ts +384 -0
- package/dist/Utils/segmentation/core/types.js +25 -24
- package/dist/Utils/segmentation/core/types.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/GuiState.d.ts +22 -0
- package/dist/Utils/segmentation/coreTools/GuiState.js +48 -0
- package/dist/Utils/segmentation/coreTools/GuiState.js.map +1 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.d.ts +25 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.js +85 -0
- package/dist/Utils/segmentation/coreTools/NrrdState.js.map +1 -0
- package/dist/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
- package/dist/Utils/segmentation/coreTools/divControlTools.js +1 -1
- package/dist/Utils/segmentation/coreTools/divControlTools.js.map +1 -1
- package/dist/Utils/segmentation/coreTools/gui.d.ts +12 -12
- package/dist/Utils/segmentation/coreTools/gui.js +81 -107
- package/dist/Utils/segmentation/coreTools/gui.js.map +1 -1
- package/dist/Utils/segmentation/eventRouter/EventRouter.d.ts +2 -1
- package/dist/Utils/segmentation/eventRouter/EventRouter.js +15 -10
- package/dist/Utils/segmentation/eventRouter/EventRouter.js.map +1 -1
- package/dist/Utils/segmentation/eventRouter/types.d.ts +3 -3
- package/dist/Utils/segmentation/tools/BaseTool.d.ts +8 -5
- package/dist/Utils/segmentation/tools/BaseTool.js +1 -2
- package/dist/Utils/segmentation/tools/BaseTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
- package/dist/Utils/segmentation/tools/ContrastTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
- package/dist/Utils/segmentation/tools/CrosshairTool.js +50 -25
- package/dist/Utils/segmentation/tools/CrosshairTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/DataLoader.d.ts +33 -0
- package/dist/Utils/segmentation/tools/DataLoader.js +159 -0
- package/dist/Utils/segmentation/tools/DataLoader.js.map +1 -0
- package/dist/Utils/segmentation/tools/DragSliceTool.d.ts +3 -10
- package/dist/Utils/segmentation/tools/DragSliceTool.js +63 -53
- package/dist/Utils/segmentation/tools/DragSliceTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/DrawingTool.d.ts +85 -0
- package/dist/Utils/segmentation/tools/DrawingTool.js +270 -0
- package/dist/Utils/segmentation/tools/DrawingTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/EraserTool.js +8 -8
- package/dist/Utils/segmentation/tools/EraserTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/ImageStoreHelper.d.ts +13 -33
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js +39 -82
- package/dist/Utils/segmentation/tools/ImageStoreHelper.js.map +1 -1
- package/dist/Utils/segmentation/tools/LayerChannelManager.d.ts +52 -0
- package/dist/Utils/segmentation/tools/LayerChannelManager.js +175 -0
- package/dist/Utils/segmentation/tools/LayerChannelManager.js.map +1 -0
- package/dist/Utils/segmentation/tools/PanTool.d.ts +47 -0
- package/dist/Utils/segmentation/tools/PanTool.js +90 -0
- package/dist/Utils/segmentation/tools/PanTool.js.map +1 -0
- package/dist/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
- package/dist/Utils/segmentation/tools/SliceRenderPipeline.js +355 -0
- package/dist/Utils/segmentation/tools/SliceRenderPipeline.js.map +1 -0
- package/dist/Utils/segmentation/tools/SphereTool.d.ts +223 -10
- package/dist/Utils/segmentation/tools/SphereTool.js +512 -47
- package/dist/Utils/segmentation/tools/SphereTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/ToolHost.d.ts +74 -0
- package/dist/Utils/segmentation/tools/ToolHost.js +10 -0
- package/dist/Utils/segmentation/tools/ToolHost.js.map +1 -0
- package/dist/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
- package/dist/Utils/segmentation/tools/ZoomTool.js +3 -3
- package/dist/Utils/segmentation/tools/ZoomTool.js.map +1 -1
- package/dist/Utils/segmentation/tools/index.d.ts +8 -6
- package/dist/Utils/segmentation/tools/index.js +10 -1
- package/dist/Utils/segmentation/tools/index.js.map +1 -1
- package/dist/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
- package/dist/bundle.esm.js +3729 -3017
- package/dist/bundle.umd.js +3729 -3017
- package/dist/index.d.ts +6 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/Utils/segmentation/CanvasState.d.ts +31 -0
- package/dist/types/Utils/segmentation/DragOperator.d.ts +10 -2
- package/dist/types/Utils/segmentation/DrawToolCore.d.ts +64 -35
- package/dist/types/Utils/segmentation/NrrdTools.d.ts +117 -353
- package/dist/types/Utils/segmentation/RenderingUtils.d.ts +73 -0
- package/dist/types/Utils/segmentation/core/UndoManager.d.ts +1 -1
- package/dist/types/Utils/segmentation/core/index.d.ts +1 -3
- package/dist/types/Utils/segmentation/core/types.d.ts +384 -0
- package/dist/types/Utils/segmentation/coreTools/GuiState.d.ts +22 -0
- package/dist/types/Utils/segmentation/coreTools/NrrdState.d.ts +25 -0
- package/dist/types/Utils/segmentation/coreTools/divControlTools.d.ts +1 -1
- package/dist/types/Utils/segmentation/coreTools/gui.d.ts +12 -12
- package/dist/types/Utils/segmentation/eventRouter/EventRouter.d.ts +2 -1
- package/dist/types/Utils/segmentation/eventRouter/types.d.ts +3 -3
- package/dist/types/Utils/segmentation/tools/BaseTool.d.ts +8 -5
- package/dist/types/Utils/segmentation/tools/ContrastTool.d.ts +3 -6
- package/dist/types/Utils/segmentation/tools/CrosshairTool.d.ts +11 -1
- package/dist/types/Utils/segmentation/tools/DataLoader.d.ts +33 -0
- package/dist/types/Utils/segmentation/tools/DragSliceTool.d.ts +3 -10
- package/dist/types/Utils/segmentation/tools/DrawingTool.d.ts +85 -0
- package/dist/types/Utils/segmentation/tools/ImageStoreHelper.d.ts +13 -33
- package/dist/types/Utils/segmentation/tools/LayerChannelManager.d.ts +52 -0
- package/dist/types/Utils/segmentation/tools/PanTool.d.ts +47 -0
- package/dist/types/Utils/segmentation/tools/SliceRenderPipeline.d.ts +80 -0
- package/dist/types/Utils/segmentation/tools/SphereTool.d.ts +223 -10
- package/dist/types/Utils/segmentation/tools/ToolHost.d.ts +74 -0
- package/dist/types/Utils/segmentation/tools/ZoomTool.d.ts +2 -6
- package/dist/types/Utils/segmentation/tools/index.d.ts +8 -6
- package/dist/types/Utils/workers/reformatSaveDataWorker.d.ts +1 -1
- package/dist/types/index.d.ts +6 -3
- package/package.json +1 -1
- package/dist/Utils/segmentation/CommToolsData.d.ts +0 -177
- package/dist/Utils/segmentation/CommToolsData.js +0 -548
- package/dist/Utils/segmentation/CommToolsData.js.map +0 -1
- package/dist/Utils/segmentation/core/MigrationUtils.d.ts +0 -97
- package/dist/Utils/segmentation/core/MigrationUtils.js +0 -163
- package/dist/Utils/segmentation/core/MigrationUtils.js.map +0 -1
- package/dist/Utils/segmentation/coreTools/coreType.d.ts +0 -363
- package/dist/Utils/segmentation/coreTools/coreType.js +0 -3
- package/dist/Utils/segmentation/coreTools/coreType.js.map +0 -1
- package/dist/types/Utils/segmentation/CommToolsData.d.ts +0 -177
- package/dist/types/Utils/segmentation/core/MigrationUtils.d.ts +0 -97
- package/dist/types/Utils/segmentation/coreTools/coreType.d.ts +0 -363
package/dist/index.d.ts
CHANGED
|
@@ -17,10 +17,13 @@ import { Copper3dTrackballControls } from "./Controls/Copper3dTrackballControls"
|
|
|
17
17
|
import { MeshNodeTool } from "./Utils/MeshNodeTool";
|
|
18
18
|
import { removeGuiFolderChilden } from "./Utils/segmentation/coreTools/gui";
|
|
19
19
|
import { nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, exportPaintImageType, IOptVTKLoader } from "./types/types";
|
|
20
|
-
import { IPaintImage, ICommXYZ, IGUIStates, IGuiParameterSettings, INrrdStates } from "./Utils/segmentation/
|
|
20
|
+
import { IPaintImage, ICommXYZ, IGUIStates, IGuiParameterSettings, INrrdStates, IGuiMeta } from "./Utils/segmentation/core/types";
|
|
21
|
+
import { NrrdState } from "./Utils/segmentation/coreTools/NrrdState";
|
|
22
|
+
import { GuiState } from "./Utils/segmentation/coreTools/GuiState";
|
|
23
|
+
import type { ToolMode, IAnnotationCallbacks } from "./Utils/segmentation/core/types";
|
|
21
24
|
import { CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss } from "./Utils/segmentation/core/index";
|
|
22
25
|
import type { LayerId, ChannelValue } from "./Utils/segmentation/core/index";
|
|
23
26
|
import "./css/style.css";
|
|
24
|
-
export declare const REVISION = "v3.0
|
|
27
|
+
export declare const REVISION = "v3.1.0-beta";
|
|
25
28
|
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, };
|
|
26
|
-
export type { positionType, screenPosType, optsType, nrrdMeshesType, nrrdSliceType, SensorDecodedValue_kiwrious, SensorReadResult_kiwrious, HeartRateResult_kiwrious, loadingBarType, IPaintImage, exportPaintImageType, IOptVTKLoader, ICommXYZ, IGUIStates, IGuiParameterSettings, INrrdStates, LayerId, ChannelValue, };
|
|
29
|
+
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
|
@@ -20,7 +20,7 @@ import { MeshNodeTool } from "./Utils/MeshNodeTool";
|
|
|
20
20
|
import { removeGuiFolderChilden } from "./Utils/segmentation/coreTools/gui";
|
|
21
21
|
import { CHANNEL_COLORS, CHANNEL_HEX_COLORS, rgbaToHex, rgbaToCss } from "./Utils/segmentation/core/index";
|
|
22
22
|
import "./css/style.css";
|
|
23
|
-
export const REVISION = "v3.0
|
|
23
|
+
export const REVISION = "v3.1.0-beta";
|
|
24
24
|
console.log(`%cCopper3D Visualisation %cBeta:${REVISION}`, "padding: 3px;color:white; background:#023047", "padding: 3px;color:white; background:#f50a25");
|
|
25
25
|
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, };
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,eAAe,EAGf,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAY,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,iDAAiD;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EACL,eAAe,EAGf,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAY,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,iDAAiD;AAEjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAiB5E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG3G,OAAO,iBAAiB,CAAC;AAEzB,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC;AAEtC,OAAO,CAAC,GAAG,CACT,mCAAmC,QAAQ,EAAE,EAC7C,8CAA8C,EAC9C,8CAA8C,CAC/C,CAAC;AAEF,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,yBAAyB,EACzB,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,sBAAsB,EACtB,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,SAAS,GACV,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { IProtected, ICursorPage, IKeyBoardSettings, IAnnotationCallbacks } from "./core/types";
|
|
2
|
+
import { NrrdState } from "./coreTools/NrrdState";
|
|
3
|
+
import { GuiState } from "./coreTools/GuiState";
|
|
4
|
+
/**
|
|
5
|
+
* CanvasState — Pure state container.
|
|
6
|
+
*
|
|
7
|
+
* Holds all shared mutable state that was previously scattered across the
|
|
8
|
+
* CommToolsData base class. No rendering logic lives here; rendering is
|
|
9
|
+
* handled by {@link RenderingUtils}.
|
|
10
|
+
*
|
|
11
|
+
* Created once by NrrdTools and shared (by reference) with DrawToolCore,
|
|
12
|
+
* RenderingUtils, DragOperator, and all legacy Tool instances.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CanvasState {
|
|
15
|
+
baseCanvasesSize: number;
|
|
16
|
+
/** External annotation callbacks — set via draw() options */
|
|
17
|
+
annotationCallbacks: IAnnotationCallbacks;
|
|
18
|
+
/** Whether the keyboard-config dialog is open (suppresses all shortcuts). */
|
|
19
|
+
configKeyBoard: boolean;
|
|
20
|
+
/** Active keyboard shortcut bindings. */
|
|
21
|
+
keyboardSettings: IKeyBoardSettings;
|
|
22
|
+
nrrd_states: NrrdState;
|
|
23
|
+
gui_states: GuiState;
|
|
24
|
+
protectedData: IProtected;
|
|
25
|
+
cursorPage: ICursorPage;
|
|
26
|
+
constructor(container: HTMLElement, mainAreaContainer: HTMLElement, options?: {
|
|
27
|
+
layers?: string[];
|
|
28
|
+
});
|
|
29
|
+
private generateSystemCanvases;
|
|
30
|
+
private generateLayerTargets;
|
|
31
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { IDragOpts, IDrawingEvents, IProtected
|
|
1
|
+
import { IDragOpts, IDrawingEvents, IProtected } from "./core/types";
|
|
2
|
+
import { NrrdState } from "./coreTools/NrrdState";
|
|
3
|
+
import { GuiState } from "./coreTools/GuiState";
|
|
2
4
|
import type { EventRouter } from "./eventRouter";
|
|
3
5
|
export declare class DragOperator {
|
|
4
6
|
container: HTMLElement;
|
|
@@ -16,10 +18,16 @@ export declare class DragOperator {
|
|
|
16
18
|
private setEmptyCanvasSize;
|
|
17
19
|
private getOrCreateSliceBuffer;
|
|
18
20
|
private renderSliceToCanvas;
|
|
21
|
+
private refreshSphereOverlayCb;
|
|
19
22
|
private eventRouter;
|
|
20
|
-
constructor(container: HTMLElement, nrrd_sates:
|
|
23
|
+
constructor(container: HTMLElement, nrrd_sates: NrrdState, gui_states: GuiState, protectedData: IProtected, drawingPrameters: IDrawingEvents, setSyncsliceNum: () => void, setIsDrawFalse: (target: number) => void, flipDisplayImageByAxis: () => void, setEmptyCanvasSize: (axis?: "x" | "y" | "z") => void, getOrCreateSliceBuffer: (axis: "x" | "y" | "z") => ImageData | null, renderSliceToCanvas: (layer: string, axis: "x" | "y" | "z", sliceIndex: number, buffer: ImageData, targetCtx: CanvasRenderingContext2D, scaledWidth: number, scaledHeight: number) => void);
|
|
21
24
|
private init;
|
|
22
25
|
setShowDragNumberDiv(sliceIndexContainer: HTMLDivElement): void;
|
|
26
|
+
/**
|
|
27
|
+
* Set the sphere overlay refresh callback.
|
|
28
|
+
* Called by NrrdTools after DrawToolCore is initialized.
|
|
29
|
+
*/
|
|
30
|
+
setRefreshSphereOverlay(cb: () => void): void;
|
|
23
31
|
/**
|
|
24
32
|
* Set the EventRouter reference for centralized event handling.
|
|
25
33
|
* Called by NrrdTools/DrawToolCore after EventRouter is initialized.
|
|
@@ -1,51 +1,66 @@
|
|
|
1
|
-
import { IConvertObjType, IDrawingEvents, IContrastEvents, IDrawOpts } from "./
|
|
2
|
-
import {
|
|
1
|
+
import { IConvertObjType, IDrawingEvents, IContrastEvents, IDrawOpts } from "./core/types";
|
|
2
|
+
import { CanvasState } from "./CanvasState";
|
|
3
|
+
import { RenderingUtils } from "./RenderingUtils";
|
|
3
4
|
import { EventRouter } from "./eventRouter";
|
|
4
5
|
import { SphereTool } from "./tools/SphereTool";
|
|
5
6
|
import { CrosshairTool } from "./tools/CrosshairTool";
|
|
6
7
|
import { ContrastTool } from "./tools/ContrastTool";
|
|
7
8
|
import { ZoomTool } from "./tools/ZoomTool";
|
|
8
9
|
import { EraserTool } from "./tools/EraserTool";
|
|
10
|
+
import { PanTool } from "./tools/PanTool";
|
|
11
|
+
import { DrawingTool } from "./tools/DrawingTool";
|
|
9
12
|
import { ImageStoreHelper } from "./tools/ImageStoreHelper";
|
|
10
13
|
import { UndoManager } from "./core";
|
|
11
|
-
|
|
14
|
+
/**
|
|
15
|
+
* DrawToolCore — Tool orchestration and event routing.
|
|
16
|
+
*
|
|
17
|
+
* Previously extended CommToolsData; now uses composition:
|
|
18
|
+
* - `state: CanvasState` — pure state container
|
|
19
|
+
* - `renderer: RenderingUtils` — rendering / slice-buffer helpers
|
|
20
|
+
*
|
|
21
|
+
* Created by NrrdTools which passes in a shared CanvasState.
|
|
22
|
+
*/
|
|
23
|
+
export declare class DrawToolCore {
|
|
12
24
|
container: HTMLElement;
|
|
13
25
|
mainAreaContainer: HTMLDivElement;
|
|
26
|
+
/** Shared state container (created by NrrdTools, passed in). */
|
|
27
|
+
readonly state: CanvasState;
|
|
28
|
+
/** Rendering utilities (created here, uses shared state). */
|
|
29
|
+
readonly renderer: RenderingUtils;
|
|
14
30
|
drawingPrameters: IDrawingEvents;
|
|
15
31
|
contrastEventPrameters: IContrastEvents;
|
|
16
32
|
eraserUrls: string[];
|
|
17
33
|
pencilUrls: string[];
|
|
18
34
|
undoManager: UndoManager;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
private preDrawSliceIndex;
|
|
23
|
-
protected eventRouter: EventRouter | null;
|
|
24
|
-
protected sphereTool: SphereTool;
|
|
25
|
-
protected crosshairTool: CrosshairTool;
|
|
35
|
+
eventRouter: EventRouter;
|
|
36
|
+
sphereTool: SphereTool;
|
|
37
|
+
crosshairTool: CrosshairTool;
|
|
26
38
|
protected contrastTool: ContrastTool;
|
|
27
39
|
protected zoomTool: ZoomTool;
|
|
28
40
|
protected eraserTool: EraserTool;
|
|
41
|
+
protected panTool: PanTool;
|
|
42
|
+
protected drawingTool: DrawingTool;
|
|
29
43
|
protected imageStoreHelper: ImageStoreHelper;
|
|
44
|
+
/** Slice index recorded when paintOnCanvas() starts, guards stale-click */
|
|
45
|
+
private paintSliceIndex;
|
|
46
|
+
/** Wheel event dispatch mode — replaces manual wheel add/remove (Phase 2) */
|
|
47
|
+
private activeWheelMode;
|
|
30
48
|
start: () => void;
|
|
31
|
-
constructor(container: HTMLElement,
|
|
32
|
-
layers?: string[];
|
|
33
|
-
});
|
|
49
|
+
constructor(container: HTMLElement, state: CanvasState);
|
|
34
50
|
private initTools;
|
|
35
51
|
private initDrawToolCore;
|
|
36
52
|
setEraserUrls(urls: string[]): void;
|
|
37
53
|
setPencilIconUrls(urls: string[]): void;
|
|
38
54
|
private setCurrentLayer;
|
|
39
55
|
draw(opts?: IDrawOpts): void;
|
|
40
|
-
drawCalSphereDown(x: number, y: number, sliceIndex: number, cal_position: "tumour" | "skin" | "nipple" | "ribcage"): void;
|
|
41
|
-
drawCalSphereUp(): void;
|
|
42
56
|
private zoomActionAfterDrawSphere;
|
|
43
|
-
private clearSpherePrintStoreImages;
|
|
44
57
|
private paintOnCanvas;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
private
|
|
58
|
+
/**
|
|
59
|
+
* Extracted from paintOnCanvas() pointerleave handler.
|
|
60
|
+
*/
|
|
61
|
+
private handlePointerLeave;
|
|
62
|
+
/** Extracted from paintOnCanvas() — handles sphere placement on left-click */
|
|
63
|
+
private handleSphereClick;
|
|
49
64
|
private initAllCanvas;
|
|
50
65
|
private useEraser;
|
|
51
66
|
configMouseZoomWheel(): (e: WheelEvent) => void;
|
|
@@ -54,10 +69,13 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
54
69
|
drawImageOnEmptyImage(canvas: HTMLCanvasElement): void;
|
|
55
70
|
/****************************Sphere functions (delegated to SphereTool)****************************************************/
|
|
56
71
|
drawCalculatorSphereOnEachViews(axis: "x" | "y" | "z"): void;
|
|
57
|
-
private drawSphereOnEachViews;
|
|
58
72
|
private configMouseSphereWheel;
|
|
59
73
|
drawCalculatorSphere(radius: number): void;
|
|
60
74
|
drawSphere(mouseX: number, mouseY: number, radius: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Refresh sphere canvas from sphereMaskVolume for the current slice/axis.
|
|
77
|
+
*/
|
|
78
|
+
refreshSphereOverlay(): void;
|
|
61
79
|
/**
|
|
62
80
|
* Convert cursor point between axis views.
|
|
63
81
|
* Delegated to CrosshairTool.
|
|
@@ -68,38 +86,49 @@ export declare class DrawToolCore extends CommToolsData {
|
|
|
68
86
|
getRestLayer(): string[];
|
|
69
87
|
/**************************** Undo/Redo functions (Phase 6 — Delta-based) ****************************/
|
|
70
88
|
/**
|
|
71
|
-
* Clear mask on current slice canvas.
|
|
72
|
-
*
|
|
73
|
-
* Only clears the active layer's MaskVolume slice data.
|
|
74
|
-
* Other layers are left untouched. After clearing, all layer canvases
|
|
75
|
-
* are re-rendered from MaskVolume to keep visuals in sync.
|
|
89
|
+
* Clear the mask on the current slice canvas for the active layer ONLY.
|
|
76
90
|
*/
|
|
77
|
-
|
|
91
|
+
clearActiveSlice(): void;
|
|
78
92
|
/**
|
|
79
93
|
* Undo the last drawing operation on the active layer.
|
|
80
|
-
* Restores the MaskVolume slice to its pre-draw state, re-renders
|
|
81
|
-
* the canvas, and notifies the backend.
|
|
82
94
|
*/
|
|
83
95
|
undoLastPainting(): void;
|
|
84
96
|
/**
|
|
85
97
|
* Redo the last undone operation on the active layer.
|
|
86
|
-
* Reapplies the MaskVolume slice to its post-draw state, re-renders
|
|
87
|
-
* the canvas, and notifies the backend.
|
|
88
98
|
*/
|
|
89
99
|
redoLastPainting(): void;
|
|
90
100
|
/**
|
|
91
101
|
* Re-render a layer canvas from MaskVolume and composite to master.
|
|
92
|
-
* Called after writing oldSlice/newSlice back to the volume during undo/redo.
|
|
93
102
|
*/
|
|
94
103
|
private applyUndoRedoToCanvas;
|
|
95
104
|
/****************************Store images (delegated to ImageStoreHelper)****************************************************/
|
|
96
|
-
|
|
97
|
-
storeImageToLayer(index: number, canvas: HTMLCanvasElement): ImageData;
|
|
98
|
-
storeEachLayerImage(index: number, layer: string): void;
|
|
105
|
+
syncLayerSliceData(index: number, layer: string): void;
|
|
99
106
|
/******************************** Utils gui related functions (delegated to ContrastTool) ***************************************/
|
|
100
107
|
setupConrastEvents(callback: (step: number, towards: "horizental" | "vertical") => void): void;
|
|
101
108
|
configContrastDragMode: () => void;
|
|
102
109
|
removeContrastDragMode: () => void;
|
|
103
110
|
updateSlicesContrast: (value: number, flag: string) => void;
|
|
104
111
|
repraintCurrentContrastSlice: () => void;
|
|
112
|
+
/** Override in NrrdTools */
|
|
113
|
+
setIsDrawFalse(target: number): void;
|
|
114
|
+
/** Override in NrrdTools */
|
|
115
|
+
setSyncsliceNum(): void;
|
|
116
|
+
/** Override in NrrdTools */
|
|
117
|
+
resetPaintAreaUIPosition(l?: number, t?: number): void;
|
|
118
|
+
/** Override in NrrdTools */
|
|
119
|
+
resizePaintArea(factor: number): void;
|
|
120
|
+
/** Override in NrrdTools */
|
|
121
|
+
setEmptyCanvasSize(axis?: "x" | "y" | "z"): void;
|
|
122
|
+
/** Override in NrrdTools */
|
|
123
|
+
flipDisplayImageByAxis(): void;
|
|
124
|
+
/** Override in NrrdTools */
|
|
125
|
+
updateOriginAndChangedWH(): void;
|
|
126
|
+
/** Override in NrrdTools */
|
|
127
|
+
resetLayerCanvas(): void;
|
|
128
|
+
/** Override in NrrdTools */
|
|
129
|
+
redrawDisplayCanvas(): void;
|
|
130
|
+
/** Override in NrrdTools */
|
|
131
|
+
enterSphereMode(): void;
|
|
132
|
+
/** Override in NrrdTools */
|
|
133
|
+
exitSphereMode(): void;
|
|
105
134
|
}
|