copper3d 1.15.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/LICENSE +201 -0
- package/README.md +105 -0
- package/dist/Controls/Copper3dTrackballControls.d.ts +45 -0
- package/dist/Controls/Copper3dTrackballControls.js +543 -0
- package/dist/Controls/Copper3dTrackballControls.js.map +1 -0
- package/dist/Controls/copperControls.d.ts +17 -0
- package/dist/Controls/copperControls.js +36 -0
- package/dist/Controls/copperControls.js.map +1 -0
- package/dist/Loader/convet.d.ts +1 -0
- package/dist/Loader/convet.js +80 -0
- package/dist/Loader/convet.js.map +1 -0
- package/dist/Loader/copperDicomLoader.d.ts +7 -0
- package/dist/Loader/copperDicomLoader.js +113 -0
- package/dist/Loader/copperDicomLoader.js.map +1 -0
- package/dist/Loader/copperGltfLoader.d.ts +3 -0
- package/dist/Loader/copperGltfLoader.js +16 -0
- package/dist/Loader/copperGltfLoader.js.map +1 -0
- package/dist/Loader/copperNrrdLoader.d.ts +13 -0
- package/dist/Loader/copperNrrdLoader.js +424 -0
- package/dist/Loader/copperNrrdLoader.js.map +1 -0
- package/dist/Loader/copperOBJLoader.d.ts +3 -0
- package/dist/Loader/copperOBJLoader.js +4 -0
- package/dist/Loader/copperOBJLoader.js.map +1 -0
- package/dist/Loader/copperVtkLoader.d.ts +8 -0
- package/dist/Loader/copperVtkLoader.js +44 -0
- package/dist/Loader/copperVtkLoader.js.map +1 -0
- package/dist/Renderer/baseRenderer.d.ts +30 -0
- package/dist/Renderer/baseRenderer.js +223 -0
- package/dist/Renderer/baseRenderer.js.map +1 -0
- package/dist/Renderer/copperMSceneRenderer.d.ts +21 -0
- package/dist/Renderer/copperMSceneRenderer.js +115 -0
- package/dist/Renderer/copperMSceneRenderer.js.map +1 -0
- package/dist/Renderer/copperRenderer.d.ts +15 -0
- package/dist/Renderer/copperRenderer.js +52 -0
- package/dist/Renderer/copperRenderer.js.map +1 -0
- package/dist/Renderer/copperRendererOnDemond.d.ts +13 -0
- package/dist/Renderer/copperRendererOnDemond.js +44 -0
- package/dist/Renderer/copperRendererOnDemond.js.map +1 -0
- package/dist/Scene/baseScene.d.ts +38 -0
- package/dist/Scene/baseScene.js +180 -0
- package/dist/Scene/baseScene.js.map +1 -0
- package/dist/Scene/commonSceneMethod.d.ts +45 -0
- package/dist/Scene/commonSceneMethod.js +258 -0
- package/dist/Scene/commonSceneMethod.js.map +1 -0
- package/dist/Scene/copperMScene.d.ts +42 -0
- package/dist/Scene/copperMScene.js +325 -0
- package/dist/Scene/copperMScene.js.map +1 -0
- package/dist/Scene/copperScene.d.ts +34 -0
- package/dist/Scene/copperScene.js +303 -0
- package/dist/Scene/copperScene.js.map +1 -0
- package/dist/Scene/copperSceneOnDemond.d.ts +13 -0
- package/dist/Scene/copperSceneOnDemond.js +60 -0
- package/dist/Scene/copperSceneOnDemond.js.map +1 -0
- package/dist/Utils/add3DLabel.d.ts +18 -0
- package/dist/Utils/add3DLabel.js +66 -0
- package/dist/Utils/add3DLabel.js.map +1 -0
- package/dist/Utils/download.d.ts +1 -0
- package/dist/Utils/download.js +21 -0
- package/dist/Utils/download.js.map +1 -0
- package/dist/Utils/getVOILUT.d.ts +13 -0
- package/dist/Utils/getVOILUT.js +78 -0
- package/dist/Utils/getVOILUT.js.map +1 -0
- package/dist/Utils/kiwrious/configKiwrious.d.ts +4 -0
- package/dist/Utils/kiwrious/configKiwrious.js +59 -0
- package/dist/Utils/kiwrious/configKiwrious.js.map +1 -0
- package/dist/Utils/nrrd_tool.d.ts +187 -0
- package/dist/Utils/nrrd_tool.js +2173 -0
- package/dist/Utils/nrrd_tool.js.map +1 -0
- package/dist/Utils/raycaster.d.ts +9 -0
- package/dist/Utils/raycaster.js +75 -0
- package/dist/Utils/raycaster.js.map +1 -0
- package/dist/Utils/texture2d.d.ts +10 -0
- package/dist/Utils/texture2d.js +111 -0
- package/dist/Utils/texture2d.js.map +1 -0
- package/dist/Utils/utils.d.ts +8 -0
- package/dist/Utils/utils.js +141 -0
- package/dist/Utils/utils.js.map +1 -0
- package/dist/Utils/workers/reformatSaveDataWorker.d.ts +13 -0
- package/dist/Utils/workers/reformatSaveDataWorker.js +107 -0
- package/dist/Utils/workers/reformatSaveDataWorker.js.map +1 -0
- package/dist/bundle.esm.js +68951 -0
- package/dist/bundle.umd.js +68982 -0
- package/dist/css/style.css +168 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/dicom_pharser_dictionary.d.ts +1 -0
- package/dist/lib/dicom_pharser_dictionary.js +28116 -0
- package/dist/lib/dicom_pharser_dictionary.js.map +1 -0
- package/dist/lib/environment/index.d.ts +8 -0
- package/dist/lib/environment/index.js +28 -0
- package/dist/lib/environment/index.js.map +1 -0
- package/dist/lib/three-vignette.d.ts +11 -0
- package/dist/lib/three-vignette.js +93 -0
- package/dist/lib/three-vignette.js.map +1 -0
- package/dist/types/Controls/Copper3dTrackballControls.d.ts +45 -0
- package/dist/types/Controls/copperControls.d.ts +17 -0
- package/dist/types/Loader/convet.d.ts +1 -0
- package/dist/types/Loader/copperDicomLoader.d.ts +7 -0
- package/dist/types/Loader/copperGltfLoader.d.ts +3 -0
- package/dist/types/Loader/copperNrrdLoader.d.ts +13 -0
- package/dist/types/Loader/copperOBJLoader.d.ts +3 -0
- package/dist/types/Loader/copperVtkLoader.d.ts +8 -0
- package/dist/types/Renderer/baseRenderer.d.ts +30 -0
- package/dist/types/Renderer/copperMSceneRenderer.d.ts +21 -0
- package/dist/types/Renderer/copperRenderer.d.ts +15 -0
- package/dist/types/Renderer/copperRendererOnDemond.d.ts +13 -0
- package/dist/types/Scene/baseScene.d.ts +38 -0
- package/dist/types/Scene/commonSceneMethod.d.ts +45 -0
- package/dist/types/Scene/copperMScene.d.ts +42 -0
- package/dist/types/Scene/copperScene.d.ts +34 -0
- package/dist/types/Scene/copperSceneOnDemond.d.ts +13 -0
- package/dist/types/Utils/add3DLabel.d.ts +18 -0
- package/dist/types/Utils/download.d.ts +1 -0
- package/dist/types/Utils/getVOILUT.d.ts +13 -0
- package/dist/types/Utils/kiwrious/configKiwrious.d.ts +4 -0
- package/dist/types/Utils/nrrd_tool.d.ts +187 -0
- package/dist/types/Utils/raycaster.d.ts +9 -0
- package/dist/types/Utils/texture2d.d.ts +10 -0
- package/dist/types/Utils/utils.d.ts +8 -0
- package/dist/types/Utils/workers/reformatSaveDataWorker.d.ts +13 -0
- package/dist/types/index.d.ts +21 -0
- package/dist/types/lib/dicom_pharser_dictionary.d.ts +1 -0
- package/dist/types/lib/environment/index.d.ts +8 -0
- package/dist/types/lib/three-vignette.d.ts +11 -0
- package/dist/types/types/types.d.ts +198 -0
- package/dist/types/types.d.ts +198 -0
- package/dist/types/types.js +2 -0
- package/dist/types/types.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nrrd_tool.js","sourceRoot":"","sources":["../../src/Utils/nrrd_tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { mouseMovePositionType } from "../types/types";
|
|
3
|
+
export declare function pickModelDefault(camera: THREE.PerspectiveCamera, container: HTMLDivElement, pickableObjects: THREE.Mesh[], callback: (selectMesh: THREE.Mesh | undefined) => void): void;
|
|
4
|
+
export declare function throttle(callback: (event: MouseEvent) => void, wait: number): (event: MouseEvent) => void;
|
|
5
|
+
export declare function isPickedModel(camera: THREE.PerspectiveCamera, container: HTMLDivElement, pickableObjects: THREE.Mesh[], mouseMovePosition: mouseMovePositionType): {
|
|
6
|
+
intersectedObject: THREE.Object3D<THREE.Event> | null;
|
|
7
|
+
intersects: THREE.Intersection<THREE.Object3D<THREE.Event>>[];
|
|
8
|
+
};
|
|
9
|
+
export declare function dragImage(): void;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
let raycaster = new THREE.Raycaster();
|
|
3
|
+
let intersects;
|
|
4
|
+
let intersectedObject;
|
|
5
|
+
export function pickModelDefault(camera, container, pickableObjects, callback) {
|
|
6
|
+
const highlightedMaterial = new THREE.MeshBasicMaterial({
|
|
7
|
+
wireframe: true,
|
|
8
|
+
color: 0x00ff66,
|
|
9
|
+
});
|
|
10
|
+
const originalMaterials = {};
|
|
11
|
+
let oldName = "";
|
|
12
|
+
pickableObjects.forEach((m) => {
|
|
13
|
+
originalMaterials[m.name] = m.material;
|
|
14
|
+
});
|
|
15
|
+
const onDocumentMouseMove = (event) => {
|
|
16
|
+
const mouseMovePosition = new THREE.Vector2(event.offsetX, event.offsetY);
|
|
17
|
+
intersects = baseRaycaster(camera, container, pickableObjects, mouseMovePosition.x, mouseMovePosition.y);
|
|
18
|
+
if (intersects.length > 0) {
|
|
19
|
+
intersectedObject = intersects[0].object;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
intersectedObject = null;
|
|
23
|
+
oldName = "";
|
|
24
|
+
callback(undefined);
|
|
25
|
+
}
|
|
26
|
+
pickableObjects.forEach((o, i) => {
|
|
27
|
+
if (intersectedObject && intersectedObject.name === o.name) {
|
|
28
|
+
if (oldName != o.name) {
|
|
29
|
+
oldName = o.name;
|
|
30
|
+
pickableObjects[i].material = highlightedMaterial;
|
|
31
|
+
callback(pickableObjects[i]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
pickableObjects[i].material = originalMaterials[o.name];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
container.addEventListener("mousemove", throttle(onDocumentMouseMove, 80), false);
|
|
40
|
+
}
|
|
41
|
+
export function throttle(callback, wait) {
|
|
42
|
+
let start = 0;
|
|
43
|
+
return function (event) {
|
|
44
|
+
const current = Date.now();
|
|
45
|
+
if (current - start > wait) {
|
|
46
|
+
callback.call(null, event);
|
|
47
|
+
start = current;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function baseRaycaster(camera, container, pickableObjects, mouse_x, mouse_y) {
|
|
52
|
+
const coords = new THREE.Vector2((mouse_x / container.clientWidth) * 2 - 1, -(mouse_y / container.clientHeight) * 2 + 1);
|
|
53
|
+
raycaster.setFromCamera(coords, camera);
|
|
54
|
+
intersects = raycaster.intersectObjects(pickableObjects, false);
|
|
55
|
+
return intersects;
|
|
56
|
+
}
|
|
57
|
+
export function isPickedModel(camera, container, pickableObjects, mouseMovePosition) {
|
|
58
|
+
intersects = baseRaycaster(camera, container, pickableObjects, mouseMovePosition.x, mouseMovePosition.y);
|
|
59
|
+
if (intersects.length > 0) {
|
|
60
|
+
intersectedObject = intersects[0].object;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
intersectedObject = null;
|
|
64
|
+
}
|
|
65
|
+
return { intersectedObject, intersects };
|
|
66
|
+
}
|
|
67
|
+
export function dragImage() {
|
|
68
|
+
document.addEventListener("keydown", (ev) => {
|
|
69
|
+
console.log(ev);
|
|
70
|
+
});
|
|
71
|
+
document.addEventListener("keyup", (ev) => {
|
|
72
|
+
console.log(ev);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=raycaster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raycaster.js","sourceRoot":"","sources":["../../src/Utils/raycaster.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { copperVolumeType } from "../types/types";
|
|
3
|
+
import { GUI } from "dat.gui";
|
|
4
|
+
export declare function createTexture2D_Zip(url: string, scene: THREE.Scene): void;
|
|
5
|
+
export declare function createTexture2D_NRRD(data: Uint8Array, width: number, height: number, depth: number, callback: (mesh: THREE.Mesh) => void): void;
|
|
6
|
+
export declare function createTexture2D_Array(copperVolume: copperVolumeType, depth: number, scene: THREE.Scene, gui?: GUI): {
|
|
7
|
+
mesh: THREE.Mesh<THREE.PlaneGeometry, THREE.ShaderMaterial>;
|
|
8
|
+
copperVolume: copperVolumeType;
|
|
9
|
+
updateTexture: (copperVolumeUp: copperVolumeType) => void;
|
|
10
|
+
};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { unzipSync } from "fflate";
|
|
3
|
+
import { getLut } from "../Loader/copperDicomLoader";
|
|
4
|
+
import vert_2d from "../lib/shader/texture2d_vertex.glsl";
|
|
5
|
+
import frag_2d from "../lib/shader/texture2d_frag.glsl";
|
|
6
|
+
let planeWidth = 80;
|
|
7
|
+
let planeHeight = 80;
|
|
8
|
+
export function createTexture2D_Zip(url, scene) {
|
|
9
|
+
new THREE.FileLoader()
|
|
10
|
+
.setResponseType("arraybuffer")
|
|
11
|
+
.load(url, function (data) {
|
|
12
|
+
const zip = unzipSync(new Uint8Array(data));
|
|
13
|
+
const array = new Uint8Array(zip["head256x256x109"].buffer);
|
|
14
|
+
const texture = new THREE.DataArrayTexture(array, 256, 256, 109);
|
|
15
|
+
texture.format = THREE.RedFormat;
|
|
16
|
+
texture.needsUpdate = true;
|
|
17
|
+
const material = new THREE.ShaderMaterial({
|
|
18
|
+
uniforms: {
|
|
19
|
+
diffuse: { value: texture },
|
|
20
|
+
depth: { value: 1 },
|
|
21
|
+
size: { value: new THREE.Vector2(planeWidth, planeHeight) },
|
|
22
|
+
},
|
|
23
|
+
vertexShader: vert_2d,
|
|
24
|
+
fragmentShader: frag_2d,
|
|
25
|
+
glslVersion: THREE.GLSL3,
|
|
26
|
+
side: THREE.DoubleSide,
|
|
27
|
+
});
|
|
28
|
+
const geometry = new THREE.PlaneGeometry(planeWidth, planeHeight);
|
|
29
|
+
const mesh = new THREE.Mesh(geometry, material);
|
|
30
|
+
mesh.name = "texture2d_mesh_zip";
|
|
31
|
+
scene.add(mesh);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function createTexture2D_NRRD(data, width, height, depth, callback) {
|
|
35
|
+
const texture = new THREE.DataArrayTexture(data, width, height, depth);
|
|
36
|
+
texture.format = THREE.RedFormat;
|
|
37
|
+
texture.needsUpdate = true;
|
|
38
|
+
const material = new THREE.ShaderMaterial({
|
|
39
|
+
uniforms: {
|
|
40
|
+
diffuse: { value: texture },
|
|
41
|
+
depth: { value: 1 },
|
|
42
|
+
size: { value: new THREE.Vector2(planeWidth, planeHeight) },
|
|
43
|
+
},
|
|
44
|
+
vertexShader: vert_2d,
|
|
45
|
+
fragmentShader: frag_2d,
|
|
46
|
+
glslVersion: THREE.GLSL3,
|
|
47
|
+
side: THREE.DoubleSide,
|
|
48
|
+
});
|
|
49
|
+
const geometry = new THREE.PlaneGeometry(planeWidth, planeHeight);
|
|
50
|
+
const mesh = new THREE.Mesh(geometry, material);
|
|
51
|
+
mesh.name = "texture2d_mesh_zip";
|
|
52
|
+
callback(mesh);
|
|
53
|
+
}
|
|
54
|
+
export function createTexture2D_Array(copperVolume, depth, scene, gui) {
|
|
55
|
+
planeWidth = copperVolume.width / 2;
|
|
56
|
+
planeHeight = copperVolume.height / 2;
|
|
57
|
+
const state = {
|
|
58
|
+
windowWidth: copperVolume.windowWidth,
|
|
59
|
+
windowCenter: copperVolume.windowCenter,
|
|
60
|
+
};
|
|
61
|
+
const texture = new THREE.DataArrayTexture(copperVolume.uint8, copperVolume.width, copperVolume.height, depth);
|
|
62
|
+
texture.format = THREE.RedFormat;
|
|
63
|
+
texture.needsUpdate = true;
|
|
64
|
+
if (gui) {
|
|
65
|
+
gui
|
|
66
|
+
.add(copperVolume, "windowWidth")
|
|
67
|
+
.min(1)
|
|
68
|
+
.max(copperVolume.windowWidth * 2)
|
|
69
|
+
.step(1)
|
|
70
|
+
.onChange((value) => {
|
|
71
|
+
copperVolume.windowWidth = value;
|
|
72
|
+
updateTexture(copperVolume);
|
|
73
|
+
});
|
|
74
|
+
gui
|
|
75
|
+
.add(copperVolume, "windowCenter")
|
|
76
|
+
.min(1)
|
|
77
|
+
.max(copperVolume.windowCenter * 2)
|
|
78
|
+
.step(1)
|
|
79
|
+
.onChange((value) => {
|
|
80
|
+
copperVolume.windowCenter = value;
|
|
81
|
+
updateTexture(copperVolume);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const material = new THREE.ShaderMaterial({
|
|
85
|
+
uniforms: {
|
|
86
|
+
diffuse: { value: texture },
|
|
87
|
+
depth: { value: 1 },
|
|
88
|
+
size: { value: new THREE.Vector2(planeWidth, planeHeight) },
|
|
89
|
+
},
|
|
90
|
+
vertexShader: vert_2d,
|
|
91
|
+
fragmentShader: frag_2d,
|
|
92
|
+
glslVersion: THREE.GLSL3,
|
|
93
|
+
side: THREE.DoubleSide,
|
|
94
|
+
});
|
|
95
|
+
const geometry = new THREE.PlaneGeometry(planeWidth, planeHeight);
|
|
96
|
+
const mesh = new THREE.Mesh(geometry, material);
|
|
97
|
+
scene.add(mesh);
|
|
98
|
+
mesh.name = "texture2d_mesh_array";
|
|
99
|
+
function updateTexture(copperVolumeUp) {
|
|
100
|
+
if (!!copperVolumeUp) {
|
|
101
|
+
let voiLUT;
|
|
102
|
+
let lut = getLut(copperVolumeUp.uint16, copperVolumeUp.windowWidth, copperVolumeUp.windowCenter, copperVolumeUp.invert, voiLUT);
|
|
103
|
+
for (let i = 0, len = copperVolumeUp.uint16.length; i < len; i++) {
|
|
104
|
+
copperVolumeUp.uint8[i] = lut.lutArray[copperVolumeUp.uint16[i]];
|
|
105
|
+
}
|
|
106
|
+
texture.needsUpdate = true;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return { mesh, copperVolume, updateTexture };
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=texture2d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texture2d.js","sourceRoot":"","sources":["../../src/Utils/texture2d.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function fullScreenListenner(container: HTMLDivElement | HTMLCanvasElement): void;
|
|
2
|
+
export declare function isIOS(): boolean;
|
|
3
|
+
export declare function traverseMaterials(object: THREE.Group, callback: (material: any) => void): void;
|
|
4
|
+
export declare function loading(): {
|
|
5
|
+
loadingContainer: HTMLDivElement;
|
|
6
|
+
progress: HTMLDivElement;
|
|
7
|
+
};
|
|
8
|
+
export declare function switchEraserSize(size: number, urls?: string[]): string;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
export function fullScreenListenner(container) {
|
|
2
|
+
const fullscreenElement = document.fullscreenElement || document.webkitFullscreenElement;
|
|
3
|
+
if (!fullscreenElement) {
|
|
4
|
+
if (container.requestFullscreen) {
|
|
5
|
+
container.requestFullscreen();
|
|
6
|
+
}
|
|
7
|
+
else if (container.webkitRequestFullscreen) {
|
|
8
|
+
container.webkitRequestFullscreen();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
if (document.exitFullscreen) {
|
|
13
|
+
document.exitFullscreen();
|
|
14
|
+
}
|
|
15
|
+
else if (document.webkitExitFullscreen) {
|
|
16
|
+
document.webkitExitFullscreen();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function isIOS() {
|
|
21
|
+
return ([
|
|
22
|
+
"iPad Simulator",
|
|
23
|
+
"iPhone Simulator",
|
|
24
|
+
"iPod Simulator",
|
|
25
|
+
"iPad",
|
|
26
|
+
"iPhone",
|
|
27
|
+
"iPod",
|
|
28
|
+
].includes(navigator.platform) ||
|
|
29
|
+
(navigator.userAgent.includes("Mac") && "ontouchend" in document));
|
|
30
|
+
}
|
|
31
|
+
export function traverseMaterials(object, callback) {
|
|
32
|
+
object.traverse((node) => {
|
|
33
|
+
if (!node.isMesh)
|
|
34
|
+
return;
|
|
35
|
+
if (Array.isArray(node.material)) {
|
|
36
|
+
callback(node.material);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
[node.material].forEach(callback);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function loading() {
|
|
44
|
+
let loadingContainer = document.createElement("div");
|
|
45
|
+
const loadingDiv = document.createElement("div");
|
|
46
|
+
let progress = document.createElement("div");
|
|
47
|
+
loadingContainer.style.position = "relative";
|
|
48
|
+
// loadingContainer.style.top = "50%";
|
|
49
|
+
// loadingContainer.style.left = "50%";
|
|
50
|
+
loadingContainer.style.display = "none";
|
|
51
|
+
progress.style.color = "#000";
|
|
52
|
+
loadingContainer.style.zIndex = "1000";
|
|
53
|
+
loadingContainer.className = "copper3D_flex-center";
|
|
54
|
+
loadingDiv.className = "copper3D_three-balls-bounce";
|
|
55
|
+
progress.className = "copper3D_loading_progress";
|
|
56
|
+
loadingDiv.innerHTML = `<div class='copper3D_circle'></div><div class='copper3D_circle'></div><div class='copper3D_circle'></div><div class='copper3D_shadow'></div><div class='copper3D_shadow'></div><div class='copper3D_shadow'></div>`;
|
|
57
|
+
loadingContainer.appendChild(loadingDiv);
|
|
58
|
+
loadingContainer.appendChild(progress);
|
|
59
|
+
return { loadingContainer, progress };
|
|
60
|
+
}
|
|
61
|
+
export function switchEraserSize(size, urls) {
|
|
62
|
+
let url = "";
|
|
63
|
+
if (!!urls && urls.length > 0) {
|
|
64
|
+
if (size <= 3) {
|
|
65
|
+
url = `url(${urls[0]}) 3 3, crosshair`;
|
|
66
|
+
}
|
|
67
|
+
else if (3 < size && size <= 8) {
|
|
68
|
+
url = `url(${urls[1]}) 8 8, crosshair`;
|
|
69
|
+
}
|
|
70
|
+
else if (8 < size && size <= 13) {
|
|
71
|
+
url = `url(${urls[2]}) 13 13, crosshair`;
|
|
72
|
+
}
|
|
73
|
+
else if (13 < size && size <= 18) {
|
|
74
|
+
url = `url(${urls[3]}) 18 18, crosshair`;
|
|
75
|
+
}
|
|
76
|
+
else if (18 < size && size <= 23) {
|
|
77
|
+
url = `url(${urls[4]}) 23 23, crosshair`;
|
|
78
|
+
}
|
|
79
|
+
else if (23 < size && size <= 28) {
|
|
80
|
+
url = `url(${urls[5]}) 28 28, crosshair`;
|
|
81
|
+
}
|
|
82
|
+
else if (28 < size && size <= 33) {
|
|
83
|
+
url = `url(${urls[6]}) 33 33, crosshair`;
|
|
84
|
+
}
|
|
85
|
+
else if (33 < size && size <= 38) {
|
|
86
|
+
url = `url(${urls[7]}) 38 38, crosshair`;
|
|
87
|
+
}
|
|
88
|
+
else if (38 < size && size <= 43) {
|
|
89
|
+
url = `url(${urls[8]}) 43 43, crosshair`;
|
|
90
|
+
}
|
|
91
|
+
else if (43 < size && size <= 48) {
|
|
92
|
+
url = `url(${urls[9]}) 48 48, crosshair`;
|
|
93
|
+
}
|
|
94
|
+
else if (48 < size && size <= 53) {
|
|
95
|
+
url = `url(${urls[10]}) 52 52, crosshair`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
url = `url(${urls[11]}) 52 52, crosshair`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
if (size <= 3) {
|
|
103
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_3.png) 3 3, crosshair`;
|
|
104
|
+
}
|
|
105
|
+
else if (3 < size && size <= 8) {
|
|
106
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_8.png) 8 8, crosshair`;
|
|
107
|
+
}
|
|
108
|
+
else if (8 < size && size <= 13) {
|
|
109
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_13.png) 13 13, crosshair`;
|
|
110
|
+
}
|
|
111
|
+
else if (13 < size && size <= 18) {
|
|
112
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_18.png) 18 18, crosshair`;
|
|
113
|
+
}
|
|
114
|
+
else if (18 < size && size <= 23) {
|
|
115
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_23.png) 23 23, crosshair`;
|
|
116
|
+
}
|
|
117
|
+
else if (23 < size && size <= 28) {
|
|
118
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_28.png) 28 28, crosshair`;
|
|
119
|
+
}
|
|
120
|
+
else if (28 < size && size <= 33) {
|
|
121
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_33.png) 33 33, crosshair`;
|
|
122
|
+
}
|
|
123
|
+
else if (33 < size && size <= 38) {
|
|
124
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_38.png) 38 38, crosshair`;
|
|
125
|
+
}
|
|
126
|
+
else if (38 < size && size <= 43) {
|
|
127
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_43.png) 43 43, crosshair`;
|
|
128
|
+
}
|
|
129
|
+
else if (43 < size && size <= 48) {
|
|
130
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_48.png) 48 48, crosshair`;
|
|
131
|
+
}
|
|
132
|
+
else if (48 < size && size <= 53) {
|
|
133
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_52.png) 52 52, crosshair`;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
url = `url(https://raw.githubusercontent.com/LinkunGao/copper3d-datasets/main/icons/eraser/circular-cursor_52.png) 52 52, crosshair`;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return url;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/Utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { paintImageType } from "../../types/types";
|
|
2
|
+
declare function pruningData(originArr: paintImageType[]): Uint8ClampedArray[];
|
|
3
|
+
declare function restructData(originArr: paintImageType[], len: number, width: number, height: number): {
|
|
4
|
+
sliceIndex: number;
|
|
5
|
+
dataFormat: string;
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
voxelSpacing: number;
|
|
9
|
+
spaceOrigin: number;
|
|
10
|
+
data: never[];
|
|
11
|
+
}[];
|
|
12
|
+
declare function convertReformatDataToBlob(maskData: any): false | Blob;
|
|
13
|
+
export { pruningData, restructData, convertReformatDataToBlob };
|