UNPKG

@acransac/vtk.js

Version:

Visualization Toolkit for the Web

72 lines (54 loc) 2.56 kB
import 'vtk.js/Sources/favicon'; import vtkActor from 'vtk.js/Sources/Rendering/Core/Actor'; import vtkFullScreenRenderWindow from 'vtk.js/Sources/Rendering/Misc/FullScreenRenderWindow'; import vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper'; import vtkPLYReader from 'vtk.js/Sources/IO/Geometry/PLYReader'; // ---------------------------------------------------------------------------- // Example code // ---------------------------------------------------------------------------- const reader = vtkPLYReader.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); actor.getMapper().setScalarVisibility(true); const clr = { r: 200 / 255.0, g: 200 / 255.0, b: 200 / 255.0 }; actor.getProperty().setColor(clr.r, clr.g, clr.b); resetCamera(); render(); } // ---------------------------------------------------------------------------- // Use a file reader to load a local file // ---------------------------------------------------------------------------- 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); // ---------------------------------------------------------------------------- // Use the reader to download a file // ---------------------------------------------------------------------------- // reader.setUrl(`${__BASE_PATH__}/data/ply/mesh.ply`, { binary: true }).then(update);