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,424 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { NRRDLoader } from "three/examples/jsm/loaders/NRRDLoader";
|
|
3
|
+
import { VolumeRenderShader1 } from "three/examples/jsm/shaders/VolumeShader";
|
|
4
|
+
import cm_gray from "../css/images/cm_gray.png";
|
|
5
|
+
import cm_viridis from "../css/images/cm_viridis.png";
|
|
6
|
+
import { GUI } from "dat.gui";
|
|
7
|
+
import { DecalGeometry } from "three/examples/jsm/geometries/DecalGeometry";
|
|
8
|
+
import { loading } from "../Utils/utils";
|
|
9
|
+
import { resize3dnrrd } from "./convet";
|
|
10
|
+
let loader;
|
|
11
|
+
loader = new NRRDLoader();
|
|
12
|
+
// loader.setSegmentationn(true);
|
|
13
|
+
let cube;
|
|
14
|
+
let gui;
|
|
15
|
+
let oldGuiDom;
|
|
16
|
+
let CircleGeometry = new THREE.RingGeometry(5, 6, 30);
|
|
17
|
+
let CircleMaterial = new THREE.MeshBasicMaterial({
|
|
18
|
+
transparent: true,
|
|
19
|
+
side: THREE.DoubleSide,
|
|
20
|
+
});
|
|
21
|
+
export function copperNrrdLoader(url, loadingBar, segmentation, callback, opts) {
|
|
22
|
+
let nrrdMeshes;
|
|
23
|
+
let nrrdSlices;
|
|
24
|
+
let { loadingContainer, progress } = loadingBar;
|
|
25
|
+
let name = url.split("/").pop();
|
|
26
|
+
loader.setSegmentation(segmentation);
|
|
27
|
+
loader.load(url, function (volume) {
|
|
28
|
+
configGui(opts);
|
|
29
|
+
const rasdimensions = volume.RASDimensions;
|
|
30
|
+
const dimensions = volume.dimensions;
|
|
31
|
+
const ratio = volume.spacing;
|
|
32
|
+
const initIndexZ = Math.floor(dimensions[2] / 2);
|
|
33
|
+
const initIndexY = Math.floor(dimensions[1] / 2);
|
|
34
|
+
const initIndexX = Math.floor(dimensions[0] / 2);
|
|
35
|
+
const sliceZ = volume.extractSlice("z", initIndexZ * ratio[2]);
|
|
36
|
+
const sliceY = volume.extractSlice("y", initIndexY * ratio[1]);
|
|
37
|
+
//x plane
|
|
38
|
+
const sliceX = volume.extractSlice("x", initIndexX * ratio[0]);
|
|
39
|
+
sliceZ.initIndex = initIndexZ;
|
|
40
|
+
sliceY.initIndex = initIndexY;
|
|
41
|
+
sliceX.initIndex = initIndexX;
|
|
42
|
+
sliceZ.MaxIndex = dimensions[2] - 1;
|
|
43
|
+
sliceY.MaxIndex = dimensions[1] - 1;
|
|
44
|
+
sliceX.MaxIndex = dimensions[0] - 1;
|
|
45
|
+
sliceZ.RSARatio = ratio[2];
|
|
46
|
+
sliceY.RSARatio = ratio[1];
|
|
47
|
+
sliceX.RSARatio = ratio[0];
|
|
48
|
+
sliceZ.RSAMaxIndex = rasdimensions[2] - 1;
|
|
49
|
+
sliceY.RSAMaxIndex = rasdimensions[1] - 1;
|
|
50
|
+
sliceX.RSAMaxIndex = rasdimensions[0] - 1;
|
|
51
|
+
nrrdMeshes = {
|
|
52
|
+
x: sliceX.mesh,
|
|
53
|
+
y: sliceY.mesh,
|
|
54
|
+
z: sliceZ.mesh,
|
|
55
|
+
};
|
|
56
|
+
nrrdSlices = {
|
|
57
|
+
x: sliceX,
|
|
58
|
+
y: sliceY,
|
|
59
|
+
z: sliceZ,
|
|
60
|
+
};
|
|
61
|
+
const state = {
|
|
62
|
+
indexX: initIndexX,
|
|
63
|
+
indexY: initIndexY,
|
|
64
|
+
indexZ: initIndexZ,
|
|
65
|
+
};
|
|
66
|
+
if (gui) {
|
|
67
|
+
gui
|
|
68
|
+
.add(state, "indexX", 0, volume.dimensions[0] - 1)
|
|
69
|
+
.step(1)
|
|
70
|
+
.name("indexX")
|
|
71
|
+
.onChange(function (val) {
|
|
72
|
+
sliceX.index = val * sliceX.RSARatio;
|
|
73
|
+
sliceX.repaint.call(sliceX);
|
|
74
|
+
});
|
|
75
|
+
gui
|
|
76
|
+
.add(state, "indexY", 0, volume.dimensions[1] - 1)
|
|
77
|
+
.step(1)
|
|
78
|
+
.name("indexY")
|
|
79
|
+
.onChange(function (val) {
|
|
80
|
+
sliceY.index = val * sliceY.RSARatio;
|
|
81
|
+
sliceY.repaint.call(sliceY);
|
|
82
|
+
});
|
|
83
|
+
gui
|
|
84
|
+
.add(state, "indexZ", 0, volume.dimensions[2] - 1)
|
|
85
|
+
.step(1)
|
|
86
|
+
.name("indexZ")
|
|
87
|
+
.onChange(function (val) {
|
|
88
|
+
sliceZ.index = val * sliceZ.RSARatio;
|
|
89
|
+
sliceZ.repaint.call(sliceZ);
|
|
90
|
+
});
|
|
91
|
+
gui
|
|
92
|
+
.add(volume, "lowerThreshold", volume.min, volume.max, 1)
|
|
93
|
+
.name("Lower Threshold")
|
|
94
|
+
.onChange(function () {
|
|
95
|
+
volume.repaintAllSlices();
|
|
96
|
+
});
|
|
97
|
+
gui
|
|
98
|
+
.add(volume, "upperThreshold", volume.min, volume.max, 1)
|
|
99
|
+
.name("Upper Threshold")
|
|
100
|
+
.onChange(function () {
|
|
101
|
+
volume.repaintAllSlices();
|
|
102
|
+
});
|
|
103
|
+
gui
|
|
104
|
+
.add(volume, "windowLow", volume.min, volume.max, 1)
|
|
105
|
+
.name("Window Low")
|
|
106
|
+
.onChange(function () {
|
|
107
|
+
volume.repaintAllSlices();
|
|
108
|
+
});
|
|
109
|
+
gui
|
|
110
|
+
.add(volume, "windowHigh", volume.min, volume.max, 1)
|
|
111
|
+
.name("Window High")
|
|
112
|
+
.onChange(function () {
|
|
113
|
+
volume.repaintAllSlices();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (gui) {
|
|
117
|
+
callback && callback(volume, nrrdMeshes, nrrdSlices, gui);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
callback && callback(volume, nrrdMeshes, nrrdSlices);
|
|
121
|
+
}
|
|
122
|
+
gui = undefined;
|
|
123
|
+
}, function (xhr) {
|
|
124
|
+
loadingContainer.style.display = "flex";
|
|
125
|
+
progress.innerText = `File: ${name} ${Math.ceil((xhr.loaded / xhr.total) * 100)} % loaded`;
|
|
126
|
+
if (xhr.loaded / xhr.total === 1) {
|
|
127
|
+
loadingContainer.style.display = "none";
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
export function copperNrrdTexture3dLoader(url, scene, container, callback) {
|
|
132
|
+
// for case 12
|
|
133
|
+
const volconfig = {
|
|
134
|
+
clim1_g: 5,
|
|
135
|
+
clim2_g: 58,
|
|
136
|
+
clim1: -0.005,
|
|
137
|
+
clim2: 0.058,
|
|
138
|
+
renderStyle: "mip",
|
|
139
|
+
isothreshold_g: 4,
|
|
140
|
+
isothreshold: 0.004,
|
|
141
|
+
colormap: "viridis",
|
|
142
|
+
};
|
|
143
|
+
let { loadingContainer, progress } = loading();
|
|
144
|
+
container.appendChild(loadingContainer);
|
|
145
|
+
let cmtextures;
|
|
146
|
+
let material;
|
|
147
|
+
let mesh;
|
|
148
|
+
let loader;
|
|
149
|
+
loader = new NRRDLoader();
|
|
150
|
+
loader.setSegmentation(true);
|
|
151
|
+
loader.load(url, function (volume) {
|
|
152
|
+
const is_Int16Array = volume.data.byteLength / volume.data.length === 2;
|
|
153
|
+
volume.lowerThreshold = 19;
|
|
154
|
+
volume.upperThreshold = 498;
|
|
155
|
+
volume.windowLow = 0;
|
|
156
|
+
volume.windowHigh = 354;
|
|
157
|
+
let data = is_Int16Array
|
|
158
|
+
? int16ToFloat32(volume.data, 0, volume.data.length)
|
|
159
|
+
: volume.data;
|
|
160
|
+
const dimTarget = [
|
|
161
|
+
Math.floor(volume.xLength * volume.spacing[0]),
|
|
162
|
+
Math.floor(volume.yLength * volume.spacing[1]),
|
|
163
|
+
Math.ceil(volume.zLength * volume.spacing[2]),
|
|
164
|
+
];
|
|
165
|
+
const scalePixels = resize3dnrrd(data, volume.dimensions, dimTarget);
|
|
166
|
+
const width = dimTarget[0];
|
|
167
|
+
const height = dimTarget[1];
|
|
168
|
+
const depth = dimTarget[2];
|
|
169
|
+
const texture = new THREE.Data3DTexture(scalePixels, width, height, depth);
|
|
170
|
+
texture.format = THREE.RedFormat;
|
|
171
|
+
texture.type = THREE.FloatType;
|
|
172
|
+
texture.minFilter = texture.magFilter = THREE.LinearFilter;
|
|
173
|
+
texture.unpackAlignment = 1;
|
|
174
|
+
texture.needsUpdate = true;
|
|
175
|
+
// colormap texture
|
|
176
|
+
cmtextures = {
|
|
177
|
+
viridis: new THREE.TextureLoader().load(cm_viridis),
|
|
178
|
+
gray: new THREE.TextureLoader().load(cm_gray),
|
|
179
|
+
};
|
|
180
|
+
// Material
|
|
181
|
+
const shader = VolumeRenderShader1;
|
|
182
|
+
const uniforms = THREE.UniformsUtils.clone(shader.uniforms);
|
|
183
|
+
uniforms["u_data"].value = texture;
|
|
184
|
+
uniforms["u_size"].value.set(width, height, depth);
|
|
185
|
+
uniforms["u_clim"].value.set(volconfig.clim1, volconfig.clim2);
|
|
186
|
+
uniforms["u_renderstyle"].value = volconfig.renderStyle === "mip" ? 0 : 1; // mip 0, iso 1
|
|
187
|
+
uniforms["u_renderthreshold"].value = volconfig.isothreshold; // for iso render style
|
|
188
|
+
uniforms["u_cmdata"].value = cmtextures[volconfig.colormap];
|
|
189
|
+
material = new THREE.ShaderMaterial({
|
|
190
|
+
uniforms: uniforms,
|
|
191
|
+
vertexShader: shader.vertexShader,
|
|
192
|
+
fragmentShader: shader.fragmentShader,
|
|
193
|
+
side: THREE.BackSide, // The volume shader uses the backface as its "reference point"
|
|
194
|
+
});
|
|
195
|
+
const geometry = new THREE.BoxGeometry(width, height, depth);
|
|
196
|
+
geometry.translate(width / 2 - 0.5, height / 2 - 0.5, depth / 2 - 0.5);
|
|
197
|
+
mesh = new THREE.Mesh(geometry, material);
|
|
198
|
+
const boxHelper = new THREE.BoxHelper(mesh);
|
|
199
|
+
// scene.add(boxHelper);
|
|
200
|
+
boxHelper.applyMatrix4(volume.matrix);
|
|
201
|
+
const box = new THREE.Box3().setFromObject(mesh);
|
|
202
|
+
const size = box.getSize(new THREE.Vector3()).length();
|
|
203
|
+
const center = box.getCenter(new THREE.Vector3());
|
|
204
|
+
mesh.position.x += mesh.position.x - center.x;
|
|
205
|
+
mesh.position.y += mesh.position.y - center.y;
|
|
206
|
+
mesh.position.z += mesh.position.z - center.z;
|
|
207
|
+
const boundingBox = new THREE.Box3().setFromObject(mesh);
|
|
208
|
+
// 获取边界框的尺寸
|
|
209
|
+
const size_ = new THREE.Vector3();
|
|
210
|
+
boundingBox.getSize(size_);
|
|
211
|
+
console.log(size_);
|
|
212
|
+
scene.add(mesh);
|
|
213
|
+
const gui = new GUI();
|
|
214
|
+
gui.add(volconfig, "clim1_g", -500, 500, 1).onChange((value) => {
|
|
215
|
+
volconfig.clim1 = value / 1000;
|
|
216
|
+
updateUniforms();
|
|
217
|
+
});
|
|
218
|
+
gui.add(volconfig, "clim2_g", -500, 500, 1).onChange((value) => {
|
|
219
|
+
volconfig.clim2 = value / 1000;
|
|
220
|
+
updateUniforms();
|
|
221
|
+
});
|
|
222
|
+
gui
|
|
223
|
+
.add(volconfig, "colormap", { gray: "gray", viridis: "viridis" })
|
|
224
|
+
.onChange(updateUniforms);
|
|
225
|
+
gui
|
|
226
|
+
.add(volconfig, "renderStyle", { mip: "mip", iso: "iso" })
|
|
227
|
+
.onChange(updateUniforms);
|
|
228
|
+
gui.add(volconfig, "isothreshold_g", -1000, 1000, 1).onChange((value) => {
|
|
229
|
+
volconfig.isothreshold = value / 1000;
|
|
230
|
+
updateUniforms();
|
|
231
|
+
});
|
|
232
|
+
function updateUniforms() {
|
|
233
|
+
material.uniforms["u_clim"].value.set(volconfig.clim1, volconfig.clim2);
|
|
234
|
+
material.uniforms["u_renderstyle"].value =
|
|
235
|
+
volconfig.renderStyle == "mip" ? 0 : 1; // 0: MIP, 1: ISO
|
|
236
|
+
material.uniforms["u_renderthreshold"].value = volconfig.isothreshold; // For ISO renderstyle
|
|
237
|
+
material.uniforms["u_cmdata"].value = cmtextures[volconfig.colormap];
|
|
238
|
+
}
|
|
239
|
+
callback && callback(volume, gui);
|
|
240
|
+
}, function (xhr) {
|
|
241
|
+
loadingContainer.style.display = "flex";
|
|
242
|
+
progress.innerText = `${Math.ceil((xhr.loaded / xhr.total) * 100)} % loaded`;
|
|
243
|
+
if (xhr.loaded / xhr.total === 1) {
|
|
244
|
+
loadingContainer.style.display = "none";
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
export function getWholeSlices(nrrdSlices, scene, gui, controls) {
|
|
249
|
+
let i = 0;
|
|
250
|
+
let timeX = nrrdSlices.x.volume.RASDimensions[0];
|
|
251
|
+
let timeY = nrrdSlices.y.volume.RASDimensions[1];
|
|
252
|
+
let timeZ = nrrdSlices.z.volume.RASDimensions[2];
|
|
253
|
+
let slicesX = [];
|
|
254
|
+
let sliceGroup = new THREE.Group();
|
|
255
|
+
// const volume = nrrdSlices.x.volume;
|
|
256
|
+
// volume.lowerThreshold = 19;
|
|
257
|
+
// volume.upperThreshold = 498;
|
|
258
|
+
// volume.windowLow = 0;
|
|
259
|
+
// volume.windowHigh = 354;
|
|
260
|
+
// for (let i = 0; i < timeZ; i++) {
|
|
261
|
+
// const slicez = volume.extractSlice("z", i);
|
|
262
|
+
// slicez.mesh.index = i;
|
|
263
|
+
// sliceGroup.add(slicez.mesh);
|
|
264
|
+
// slicesX.push(slicez.mesh);
|
|
265
|
+
// }
|
|
266
|
+
// for (let i = 0; i < timeX; i++) {
|
|
267
|
+
// const slicex = volume.extractSlice("x", i);
|
|
268
|
+
// sliceGroup.add(slicex.mesh);
|
|
269
|
+
// }
|
|
270
|
+
// for (let i = 0; i < timeY; i++) {
|
|
271
|
+
// const slicey = volume.extractSlice("y", i);
|
|
272
|
+
// sliceGroup.add(slicey.mesh);
|
|
273
|
+
// }
|
|
274
|
+
// scene.add(sliceGroup);
|
|
275
|
+
scene.add(nrrdSlices.z.mesh);
|
|
276
|
+
// for (let i = 0; i < timeZ; i++) {
|
|
277
|
+
// setTimeout(() => {
|
|
278
|
+
// nrrdSlices.z.index = i;
|
|
279
|
+
// nrrdSlices.z.repaint(nrrdSlices.z);
|
|
280
|
+
// nrrdSlices.z.mesh.position.set(0, 0, 0.5);
|
|
281
|
+
// console.log(nrrdSlices.z.mesh);
|
|
282
|
+
// }, 100);
|
|
283
|
+
// }
|
|
284
|
+
let up = true;
|
|
285
|
+
function rederZ() {
|
|
286
|
+
requestAnimationFrame(rederZ);
|
|
287
|
+
if (i < 0) {
|
|
288
|
+
i = 0;
|
|
289
|
+
up = true;
|
|
290
|
+
}
|
|
291
|
+
if (i > timeZ) {
|
|
292
|
+
i = timeZ;
|
|
293
|
+
up = false;
|
|
294
|
+
}
|
|
295
|
+
setTimeout(() => {
|
|
296
|
+
nrrdSlices.z.index = i;
|
|
297
|
+
nrrdSlices.z.repaint(nrrdSlices.z);
|
|
298
|
+
nrrdSlices.z.mesh.position.set(0, 0, 0.5);
|
|
299
|
+
}, 100);
|
|
300
|
+
if (up) {
|
|
301
|
+
i++;
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
i--;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
rederZ();
|
|
308
|
+
const zz = {
|
|
309
|
+
indexX: 0,
|
|
310
|
+
};
|
|
311
|
+
let a = 0;
|
|
312
|
+
gui
|
|
313
|
+
.add(zz, "indexX", 0, 50, 1)
|
|
314
|
+
.name("indexZ")
|
|
315
|
+
.onChange((index) => {
|
|
316
|
+
controls.enabled = false;
|
|
317
|
+
// if (index < a) {
|
|
318
|
+
// a = index;
|
|
319
|
+
// slicesX[a].visible = true;
|
|
320
|
+
// } else if (index >= a) {
|
|
321
|
+
// slicesX[a].visible = false;
|
|
322
|
+
// a = index;
|
|
323
|
+
// slicesX[a].visible = false;
|
|
324
|
+
// }
|
|
325
|
+
// if (slicesX[index]) {
|
|
326
|
+
// controls.enabled = false;
|
|
327
|
+
// console.log(slicesX[index]);
|
|
328
|
+
// slicesX[index].visible = false;
|
|
329
|
+
// // ? (slicesX[index].visible = false)
|
|
330
|
+
// // : (slicesX[index].visible = true);
|
|
331
|
+
// }
|
|
332
|
+
});
|
|
333
|
+
gui.add(controls, "enabled").name("controls");
|
|
334
|
+
}
|
|
335
|
+
export function addBoxHelper(scene, volume, boxCube) {
|
|
336
|
+
let obj;
|
|
337
|
+
boxCube ? (obj = boxCube) : (obj = cube);
|
|
338
|
+
const boxHelper = new THREE.BoxHelper(obj);
|
|
339
|
+
scene.addObject(boxHelper);
|
|
340
|
+
boxHelper.applyMatrix4(volume.matrix);
|
|
341
|
+
}
|
|
342
|
+
function configGui(opts) {
|
|
343
|
+
if (opts && opts.openGui) {
|
|
344
|
+
if (opts.container) {
|
|
345
|
+
if (oldGuiDom) {
|
|
346
|
+
oldGuiDom.remove();
|
|
347
|
+
// opts.container.removeChild(oldGuiDom);
|
|
348
|
+
}
|
|
349
|
+
gui = new GUI({
|
|
350
|
+
width: 260,
|
|
351
|
+
autoPlace: false,
|
|
352
|
+
});
|
|
353
|
+
oldGuiDom = gui.domElement;
|
|
354
|
+
opts.container.appendChild(gui.domElement);
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
gui = new GUI();
|
|
358
|
+
gui.closed = true;
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function int16ToFloat32(inputArray, startIndex, length) {
|
|
363
|
+
var output = new Float32Array(inputArray.length - startIndex);
|
|
364
|
+
for (var i = startIndex; i < length; i++) {
|
|
365
|
+
var int = inputArray[i];
|
|
366
|
+
// If the high bit is on, then it is a negative number, and actually counts backwards.
|
|
367
|
+
var float = int >= 0x8000 ? -(0x10000 - int) / 0x8000 : int / 0x7fff;
|
|
368
|
+
output[i] = float;
|
|
369
|
+
}
|
|
370
|
+
return output;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
*
|
|
374
|
+
* @param {number} r - Radius
|
|
375
|
+
* @param {string} color - e.g., 0xffffff
|
|
376
|
+
* @returns {object} - A Circle mesh
|
|
377
|
+
*/
|
|
378
|
+
function createCircle(r, color) {
|
|
379
|
+
const geometry = new THREE.CircleGeometry(r * 1.6, 30);
|
|
380
|
+
const material = new THREE.MeshBasicMaterial({
|
|
381
|
+
color: color,
|
|
382
|
+
transparent: true,
|
|
383
|
+
side: THREE.DoubleSide,
|
|
384
|
+
});
|
|
385
|
+
return new THREE.Mesh(geometry, material);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
*
|
|
389
|
+
* @param {string} color - e.g., 0xffffff
|
|
390
|
+
* @returns {object} - A ring circle mesh
|
|
391
|
+
*/
|
|
392
|
+
function createRingCircle(color) {
|
|
393
|
+
CircleMaterial.color = new THREE.Color(color);
|
|
394
|
+
return new THREE.Mesh(CircleGeometry, CircleMaterial);
|
|
395
|
+
}
|
|
396
|
+
function createDecalMesh(map, normalMap, mesh, position, orientation, size, opt) {
|
|
397
|
+
const decalMaterial = new THREE.MeshPhongMaterial({
|
|
398
|
+
specular: 0x444444,
|
|
399
|
+
map,
|
|
400
|
+
normalScale: new THREE.Vector2(1, 1),
|
|
401
|
+
shininess: 30,
|
|
402
|
+
transparent: true,
|
|
403
|
+
depthTest: true,
|
|
404
|
+
depthWrite: false,
|
|
405
|
+
polygonOffset: true,
|
|
406
|
+
polygonOffsetFactor: -4,
|
|
407
|
+
wireframe: false,
|
|
408
|
+
});
|
|
409
|
+
if (!!normalMap)
|
|
410
|
+
decalMaterial.normalMap = normalMap;
|
|
411
|
+
const material = decalMaterial.clone();
|
|
412
|
+
if (opt === null || opt === void 0 ? void 0 : opt.randomColor) {
|
|
413
|
+
material.color.setHex(Math.random() * 0xffffff);
|
|
414
|
+
}
|
|
415
|
+
else if (opt === null || opt === void 0 ? void 0 : opt.color) {
|
|
416
|
+
material.color.setHex(opt.color);
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
material.color.setHex(0xff00ff);
|
|
420
|
+
}
|
|
421
|
+
const m = new THREE.Mesh(new DecalGeometry(mesh, position, orientation, size), material);
|
|
422
|
+
return m;
|
|
423
|
+
}
|
|
424
|
+
//# sourceMappingURL=copperNrrdLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copperNrrdLoader.js","sourceRoot":"","sources":["../../src/Loader/copperNrrdLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copperOBJLoader.js","sourceRoot":"","sources":["../../src/Loader/copperOBJLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { VTKLoader } from "three/examples/jsm/loaders/VTKLoader.js";
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
import { IOptVTKLoader } from "../types/types";
|
|
4
|
+
export declare function copperVtkLoader(url: string, scene: THREE.Scene, content: THREE.Group, opts?: IOptVTKLoader): void;
|
|
5
|
+
export declare function copperMultipleVtk(opts?: IOptVTKLoader): {
|
|
6
|
+
vtkLoader: VTKLoader;
|
|
7
|
+
vtkmaterial: THREE.MeshStandardMaterial;
|
|
8
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { VTKLoader } from "three/examples/jsm/loaders/VTKLoader.js";
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
const vtkLoader = new VTKLoader();
|
|
4
|
+
const materialConfig = {
|
|
5
|
+
wireframe: false,
|
|
6
|
+
side: THREE.DoubleSide,
|
|
7
|
+
color: 0xfff000,
|
|
8
|
+
};
|
|
9
|
+
export function copperVtkLoader(url, scene, content, opts) {
|
|
10
|
+
vtkLoader.load(url, function (geometry) {
|
|
11
|
+
geometry.center();
|
|
12
|
+
geometry.computeVertexNormals();
|
|
13
|
+
const vtkmaterial = new THREE.MeshStandardMaterial(materialConfig);
|
|
14
|
+
if (opts) {
|
|
15
|
+
configOpts(vtkmaterial, opts);
|
|
16
|
+
}
|
|
17
|
+
const mesh = new THREE.Mesh(geometry, vtkmaterial);
|
|
18
|
+
mesh.scale.multiplyScalar(0.1);
|
|
19
|
+
content.add(mesh);
|
|
20
|
+
scene.add(content);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function copperMultipleVtk(opts) {
|
|
24
|
+
const vtkmaterial = new THREE.MeshStandardMaterial(materialConfig);
|
|
25
|
+
if (opts) {
|
|
26
|
+
configOpts(vtkmaterial, opts);
|
|
27
|
+
}
|
|
28
|
+
return { vtkLoader, vtkmaterial };
|
|
29
|
+
}
|
|
30
|
+
function configOpts(vtkmaterial, opts) {
|
|
31
|
+
if (opts.wireframe) {
|
|
32
|
+
vtkmaterial.wireframe = opts.wireframe;
|
|
33
|
+
}
|
|
34
|
+
if (opts.color) {
|
|
35
|
+
vtkmaterial.color.set(opts.color);
|
|
36
|
+
}
|
|
37
|
+
if (opts.transparent) {
|
|
38
|
+
vtkmaterial.transparent = opts.transparent;
|
|
39
|
+
}
|
|
40
|
+
if (opts.opacity) {
|
|
41
|
+
vtkmaterial.opacity = opts.opacity;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=copperVtkLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copperVtkLoader.js","sourceRoot":"","sources":["../../src/Loader/copperVtkLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,MAAM,cAAc,GAAG;IACrB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,KAAK,CAAC,UAAU;IACtB,KAAK,EAAE,QAAQ;CAChB,CAAC;AAEF,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,KAAkB,EAClB,OAAoB,EACpB,IAAoB;IAEpB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,QAAQ;QACpC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,IAAI,EAAE;YACR,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SAC/B;QAED,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAE/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACnE,IAAI,IAAI,EAAE;QACR,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;KAC/B;IACD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CACjB,WAAuC,EACvC,IAAmB;IAEnB,IAAI,IAAI,CAAC,SAAS,EAAE;QAClB,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;KACxC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IACD,IAAI,IAAI,CAAC,WAAW,EAAE;QACpB,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;KAC5C;IACD,IAAI,IAAI,CAAC,OAAO,EAAE;QAChB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;KACpC;AACH,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="stats.js" />
|
|
2
|
+
import * as THREE from "three";
|
|
3
|
+
import baseScene from "../Scene/baseScene";
|
|
4
|
+
import { customMeshType } from "../lib/three-vignette";
|
|
5
|
+
import Stats from "three/examples/jsm/libs/stats.module";
|
|
6
|
+
import { GUI } from "dat.gui";
|
|
7
|
+
import { optType } from "../types/types";
|
|
8
|
+
export default class baseRenderer {
|
|
9
|
+
container: HTMLDivElement;
|
|
10
|
+
renderer: THREE.WebGLRenderer;
|
|
11
|
+
gui: GUI | null;
|
|
12
|
+
stats: Stats;
|
|
13
|
+
currentScene: baseScene;
|
|
14
|
+
pmremGenerator: THREE.PMREMGenerator;
|
|
15
|
+
options: optType | undefined;
|
|
16
|
+
private state;
|
|
17
|
+
private visualiseFolder;
|
|
18
|
+
private visualCtrls;
|
|
19
|
+
private cameraFolder;
|
|
20
|
+
constructor(container: HTMLDivElement, options?: optType);
|
|
21
|
+
init(): void;
|
|
22
|
+
updateEnvironment(vignette?: customMeshType): void;
|
|
23
|
+
private getCubeMapTexture;
|
|
24
|
+
getCurrentScene(): baseScene;
|
|
25
|
+
hideGui(): void;
|
|
26
|
+
closeGui(): void;
|
|
27
|
+
setClearColor(clearColor?: number, alpha?: number): void;
|
|
28
|
+
addGui(): void;
|
|
29
|
+
updateGui(): void;
|
|
30
|
+
}
|