import '@kitware/vtk.js/favicon';
import '@kitware/vtk.js/Rendering/Profiles/Geometry';
import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow'; import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper'; import vtkSTLReader from '@kitware/vtk.js/IO/Geometry/STLReader';
const reader = vtkSTLReader.newInstance(); const mapper = vtkMapper.newInstance({ scalarVisibility: false }); const actor = vtkActor.newInstance();
actor.setMapper(mapper); mapper.setInputConnection(reader.getOutputPort());
function update() { const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance(); const renderer = fullScreenRenderer.getRenderer(); const renderWindow = fullScreenRenderer.getRenderWindow();
const resetCamera = renderer.resetCamera; const render = renderWindow.render;
renderer.addActor(actor); resetCamera(); render(); }
const myContainer = document.querySelector('body'); const fileContainer = document.createElement('div'); fileContainer.innerHTML = '<input type="file" class="file"/>'; myContainer.appendChild(fileContainer);
const fileInput = fileContainer.querySelector('input');
function handleFile(event) { event.preventDefault(); const dataTransfer = event.dataTransfer; const files = event.target.files || dataTransfer.files; if (files.length === 1) { myContainer.removeChild(fileContainer); const fileReader = new FileReader(); fileReader.onload = function onLoad(e) { reader.parseAsArrayBuffer(fileReader.result); update(); }; fileReader.readAsArrayBuffer(files[0]); } }
fileInput.addEventListener('change', handleFile);
|