Skip to content

Commit 556b3ba

Browse files
committed
feat(CutterMapper): add vtkCutterMapper
fixes #1967
1 parent 8b54eca commit 556b3ba

File tree

14 files changed

+1692
-3
lines changed

14 files changed

+1692
-3
lines changed
46.1 KB
Loading

Sources/Filters/Core/Cutter/example/index.js

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import '@kitware/vtk.js/Rendering/Profiles/Geometry';
55

66
import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
77
import vtkCutter from '@kitware/vtk.js/Filters/Core/Cutter';
8+
import vtkCutterMapper from '@kitware/vtk.js/Rendering/Core/CutterMapper';
89
import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow';
910
import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper';
1011
import DataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper';
@@ -23,9 +24,7 @@ import '@kitware/vtk.js/IO/Core/DataAccessHelper/JSZipDataAccessHelper';
2324
// Standard rendering code setup
2425
// ----------------------------------------------------------------------------
2526

26-
const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance({
27-
background: [0, 0, 0],
28-
});
27+
const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance();
2928
const renderer = fullScreenRenderer.getRenderer();
3029
const renderWindow = fullScreenRenderer.getRenderWindow();
3130

@@ -48,6 +47,17 @@ cutProperty.setLighting(false);
4847
cutProperty.setColor(0, 1, 0);
4948
renderer.addActor(cutActor);
5049

50+
const gpuCutMapper = vtkCutterMapper.newInstance({
51+
cutFunction: plane,
52+
cutWidth: 2.0,
53+
});
54+
const gpuCutActor = vtkActor.newInstance();
55+
gpuCutActor.setMapper(gpuCutMapper);
56+
const gpuCutProperty = gpuCutActor.getProperty();
57+
gpuCutProperty.setLighting(false);
58+
gpuCutProperty.setColor(1.0, 0.55, 0.15);
59+
renderer.addActor(gpuCutActor);
60+
5161
const cubeMapper = vtkMapper.newInstance();
5262
cubeMapper.setScalarVisibility(false);
5363
const cubeActor = vtkActor.newInstance();
@@ -63,6 +73,9 @@ renderer.addActor(cubeActor);
6373
// -----------------------------------------------------------
6474

6575
const state = {
76+
showCPU: true,
77+
showGPU: true,
78+
gpuWidth: 2.0,
6679
originX: 0,
6780
originY: 0,
6881
originZ: 0,
@@ -74,11 +87,38 @@ const state = {
7487
const updatePlaneFunction = () => {
7588
plane.setOrigin(state.originX, state.originY, state.originZ);
7689
plane.setNormal(state.normalX, state.normalY, state.normalZ);
90+
cutActor.setVisibility(state.showCPU);
91+
gpuCutActor.setVisibility(state.showGPU);
92+
gpuCutMapper.setCutWidth(state.gpuWidth);
7793
renderWindow.render();
7894
};
7995

8096
const gui = new GUI();
8197

98+
gui
99+
.add(state, 'showCPU')
100+
.name('CPU vtkCutter')
101+
.onChange((value) => {
102+
state.showCPU = value;
103+
updatePlaneFunction();
104+
});
105+
106+
gui
107+
.add(state, 'showGPU')
108+
.name('GPU vtkCutterMapper')
109+
.onChange((value) => {
110+
state.showGPU = value;
111+
updatePlaneFunction();
112+
});
113+
114+
gui
115+
.add(state, 'gpuWidth', 0.5, 5.0, 0.1)
116+
.name('GPU vtkCutterMapper width')
117+
.onChange((value) => {
118+
state.gpuWidth = Number(value);
119+
updatePlaneFunction();
120+
});
121+
82122
const originFolder = gui.addFolder('Origin');
83123
originFolder
84124
.add(state, 'originX', -6, 6, 0.01)
@@ -144,6 +184,7 @@ HttpDataAccessHelper.fetchBinary(
144184
const source = sceneImporter.getScene()[0].source;
145185
cutter.setInputConnection(source.getOutputPort());
146186
cubeMapper.setInputConnection(source.getOutputPort());
187+
gpuCutMapper.setInputConnection(source.getOutputPort());
147188
renderer.resetCamera();
148189
updatePlaneFunction();
149190
});

0 commit comments

Comments
 (0)