@@ -5,6 +5,7 @@ import '@kitware/vtk.js/Rendering/Profiles/Geometry';
55
66import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor' ;
77import vtkCutter from '@kitware/vtk.js/Filters/Core/Cutter' ;
8+ import vtkCutterMapper from '@kitware/vtk.js/Rendering/Core/CutterMapper' ;
89import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow' ;
910import HttpDataAccessHelper from '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper' ;
1011import 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 ( ) ;
2928const renderer = fullScreenRenderer . getRenderer ( ) ;
3029const renderWindow = fullScreenRenderer . getRenderWindow ( ) ;
3130
@@ -48,6 +47,17 @@ cutProperty.setLighting(false);
4847cutProperty . setColor ( 0 , 1 , 0 ) ;
4948renderer . 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+
5161const cubeMapper = vtkMapper . newInstance ( ) ;
5262cubeMapper . setScalarVisibility ( false ) ;
5363const cubeActor = vtkActor . newInstance ( ) ;
@@ -63,6 +73,9 @@ renderer.addActor(cubeActor);
6373// -----------------------------------------------------------
6474
6575const 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 = {
7487const 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
8096const 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+
82122const originFolder = gui . addFolder ( 'Origin' ) ;
83123originFolder
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