Conversion from python VTK to VTK.js

Thank you both. It is working now.
For anyone looking in the future …

...
  /* Set up the Polydata */

  // Polydata holds the location and scalar values for the spheres
  var polydata = vtk.Common.DataModel.vtkPolyData.newInstance()
  polydata.getPoints().setData(Float64Array.from(oneD_xyzLocations), 3)

  // There is neighborhood data, so we should add it to the scalar values here.
  var scalarAr = vtk.Common.Core.vtkDataArray.newInstance({
    numberOfComponents: 1,
    values: values,
    name: 'name'
  });
  polydata.getPointData().setScalars(scalarAr);

  /*Set up the viewer */

  // Where the VTK will be placed in the HTML
  const container = document.querySelector('#VTKPanel')

  // VTK renderWindow/renderer
  const renderWindow = vtk.Rendering.Core.vtkRenderWindow.newInstance();
  const renderer = vtk.Rendering.Core.vtkRenderer.newInstance();
  renderWindow.addRenderer(renderer);

  // WebGL.OpenGL impl
  const openGLRenderWindow = vtk.Rendering.OpenGL.vtkRenderWindow.newInstance();
  openGLRenderWindow.setContainer(container);
  const { width, height } = container.getBoundingClientRect();
  openGLRenderWindow.setSize(width, height);
  renderWindow.addView(openGLRenderWindow);

  // Interactor
  const interactor = vtk.Rendering.Core.vtkRenderWindowInteractor.newInstance();
  interactor.setView(openGLRenderWindow)
  interactor.initialize();
  interactor.bindEvents(container);

  // Interactor style
  const trackball = vtk.Interaction.Style.vtkInteractorStyleTrackballCamera.newInstance();
  interactor.setInteractorStyle(trackball);

  // Pipeline
  let sphereSrc = vtk.Filters.Sources.vtkSphereSource.newInstance();
  let glyph3DMapper = vtk.Rendering.Core.vtkGlyph3DMapper.newInstance();
  var actor = vtk.Rendering.Core.vtkActor.newInstance();

  sphereSrc.setRadius(0.01)

  glyph3DMapper.setInputData(polydata, 0)
  glyph3DMapper.setInputConnection(sphereSrc.getOutputPort(), 1)

  actor.setMapper(glyph3DMapper);
  actor.getProperty().setColor(0.0, 1.0, 0.0);
  actor.getProperty().setOpacity(1.0);

  renderer.addActor(actor);

  // Render
  renderer.resetCamera();
  renderWindow.render();

2 Likes