import '@kitware/vtk.js/favicon';
import '@kitware/vtk.js/Rendering/Profiles/Geometry'; import '@kitware/vtk.js/Rendering/Profiles/Glyph';
import '@kitware/vtk.js/IO/Core/DataAccessHelper/HttpDataAccessHelper';
import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import vtkCleanPolyData from '@kitware/vtk.js/Filters/Core/CleanPolyData'; import vtkCubeSource from '@kitware/vtk.js/Filters/Sources/CubeSource'; import vtkFullScreenRenderWindow from '@kitware/vtk.js/Rendering/Misc/FullScreenRenderWindow'; import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper'; import vtkGlyph3DMapper from '@kitware/vtk.js/Rendering/Core/Glyph3DMapper'; import vtkArrowSource from '@kitware/vtk.js/Filters/Sources/ArrowSource';
import controlPanel from './controlPanel.html';
const fullScreenRenderer = vtkFullScreenRenderWindow.newInstance(); const renderer = fullScreenRenderer.getRenderer(); const renderWindow = fullScreenRenderer.getRenderWindow();
fullScreenRenderer.addController(controlPanel);
const cubeSource1 = vtkCubeSource.newInstance(); const cubeActor1 = vtkActor.newInstance(); const cubeMapper1 = vtkMapper.newInstance(); cubeActor1.setMapper(cubeMapper1); cubeMapper1.setInputConnection(cubeSource1.getOutputPort()); renderer.addActor(cubeActor1);
const arrowSource1 = vtkArrowSource.newInstance(); const glyphMapper1 = vtkGlyph3DMapper.newInstance(); glyphMapper1.setInputConnection(cubeSource1.getOutputPort()); glyphMapper1.setSourceConnection(arrowSource1.getOutputPort()); glyphMapper1.setOrientationModeToDirection(); glyphMapper1.setOrientationArray('Normals'); glyphMapper1.setScaleModeToScaleByMagnitude(); glyphMapper1.setScaleArray('Normals'); glyphMapper1.setScaleFactor(0.1);
const glyphActor1 = vtkActor.newInstance(); glyphActor1.setMapper(glyphMapper1); renderer.addActor(glyphActor1);
const cubeSource2 = vtkCubeSource.newInstance(); const cubeActor2 = vtkActor.newInstance(); const cubeMapper2 = vtkMapper.newInstance();
cubeActor2.setMapper(cubeMapper2); cubeMapper2.setInputConnection(cubeSource2.getOutputPort()); cubeActor2.setPosition(2, 0, 0); renderer.addActor(cubeActor2);
const cleanPolyData = vtkCleanPolyData.newInstance(); cleanPolyData.setInputConnection(cubeSource2.getOutputPort());
const arrowSource2 = vtkArrowSource.newInstance(); const glyphMapper2 = vtkGlyph3DMapper.newInstance(); glyphMapper2.setInputConnection(cleanPolyData.getOutputPort()); glyphMapper2.setSourceConnection(arrowSource2.getOutputPort()); glyphMapper2.setOrientationModeToDirection(); glyphMapper2.setOrientationArray('Normals'); glyphMapper2.setScaleModeToScaleByMagnitude(); glyphMapper2.setScaleArray('Normals'); glyphMapper2.setScaleFactor(0.1);
const glyphActor2 = vtkActor.newInstance(); glyphActor2.setMapper(glyphMapper2); glyphActor2.setPosition(2, 0, 0); renderer.addActor(glyphActor2);
renderer.resetCamera(); renderWindow.render();
const initialPolyData = cubeSource1.getOutputData(); const initialPoints = initialPolyData.getNumberOfPoints(); const initialCells = initialPolyData.getNumberOfCells(); const initialLines = initialPolyData.getLines().getNumberOfCells(); const initialPolys = initialPolyData.getPolys().getNumberOfCells(); const initialStrips = initialPolyData.getStrips().getNumberOfCells();
document.querySelector('.initial-points').textContent = initialPoints; document.querySelector('.initial-cells').textContent = initialCells; document.querySelector('.initial-lines').textContent = initialLines; document.querySelector('.initial-polys').textContent = initialPolys; document.querySelector('.initial-strips').textContent = initialStrips;
const finalPolyData = cleanPolyData.getOutputData(); const finalPoints = finalPolyData.getNumberOfPoints(); const finalCells = finalPolyData.getNumberOfCells(); const finalLines = finalPolyData.getLines().getNumberOfCells(); const finalPolys = finalPolyData.getPolys().getNumberOfCells(); const finalStrips = finalPolyData.getStrips().getNumberOfCells();
document.querySelector('.final-points').textContent = finalPoints; document.querySelector('.final-cells').textContent = finalCells; document.querySelector('.final-lines').textContent = finalLines; document.querySelector('.final-polys').textContent = finalPolys; document.querySelector('.final-strips').textContent = finalStrips;
|