import '@kitware/vtk.js/favicon';
import '@kitware/vtk.js/Rendering/Profiles/Geometry';
import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import vtkCubeAxesActor from '@kitware/vtk.js/Rendering/Core/CubeAxesActor'; import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource'; import vtkInteractorStyleTrackballCamera from '@kitware/vtk.js/Interaction/Style/InteractorStyleTrackballCamera'; import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper'; import vtkRenderWindow from '@kitware/vtk.js/Rendering/Core/RenderWindow'; import vtkRenderWindowInteractor from '@kitware/vtk.js/Rendering/Core/RenderWindowInteractor'; import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer'; import vtkURLExtract from '@kitware/vtk.js/Common/Core/URLExtract';
import '@kitware/vtk.js/Rendering/OpenGL/RenderWindow'; import '@kitware/vtk.js/Rendering/WebGPU/RenderWindow';
const userParams = vtkURLExtract.extractURLParameters();
const renderWindow = vtkRenderWindow.newInstance(); const renderer = vtkRenderer.newInstance({ background: [0.2, 0.3, 0.4] }); renderWindow.addRenderer(renderer);
const coneSource = vtkConeSource.newInstance({ height: 1.0 });
const mapper = vtkMapper.newInstance(); mapper.setInputConnection(coneSource.getOutputPort());
const actor = vtkActor.newInstance(); actor.setMapper(mapper);
renderer.addActor(actor); renderer.resetCamera();
const cubeAxes = vtkCubeAxesActor.newInstance(); cubeAxes.setCamera(renderer.getActiveCamera()); cubeAxes.setDataBounds(actor.getBounds()); renderer.addActor(cubeAxes);
const apiSpecificRenderWindow = renderWindow.newAPISpecificView( userParams.viewAPI ); renderWindow.addView(apiSpecificRenderWindow);
const container = document.createElement('div'); document.querySelector('body').appendChild(container); apiSpecificRenderWindow.setContainer(container);
const { width, height } = container.getBoundingClientRect(); apiSpecificRenderWindow.setSize(width, height);
const interactor = vtkRenderWindowInteractor.newInstance(); interactor.setView(apiSpecificRenderWindow); interactor.initialize(); interactor.bindEvents(container);
interactor.setInteractorStyle(vtkInteractorStyleTrackballCamera.newInstance());
global.cubeAxes = cubeAxes;
|