In [17]:
from IPython.display import HTML

In [26]:
vtk_example = '''
<div id="container">
</div>

<script type="text/javascript" src="https://unpkg.com/vtk.js"></script>
<script type="text/javascript">


// ----------------------------------------------------------------------------
// Standard rendering code setup
// ----------------------------------------------------------------------------

//var fullScreenRenderer = vtk.Rendering.Misc.vtkFullScreenRenderWindow.newInstance();
var renderWindow = vtk.Rendering.Core.vtkRenderWindow.newInstance();
var renderer = vtk.Rendering.Core.vtkRenderer.newInstance({ background: [0.2, 0.3, 0.4] });
renderWindow.addRenderer(renderer);


// ----------------------------------------------------------------------------
// Simple pipeline ConeSource --> Mapper --> Actor
// ----------------------------------------------------------------------------

var coneSource = vtk.Filters.Sources.vtkConeSource.newInstance({ height: 1.0 });

var mapper = vtk.Rendering.Core.vtkMapper.newInstance();
mapper.setInputConnection(coneSource.getOutputPort());

var actor = vtk.Rendering.Core.vtkActor.newInstance();
actor.setMapper(mapper);



// ----------------------------------------------------------------------------
// Add the actor to the renderer and set the camera based on it
// ----------------------------------------------------------------------------

renderer.addActor(actor);
renderer.resetCamera();

// ----------------------------------------------------------------------------
// Use OpenGL as the backend to view the all this
// ----------------------------------------------------------------------------

var vtkOpenGLRenderWindow = vtk.Rendering.OpenGL.vtkRenderWindow;
var openglRenderWindow = vtkOpenGLRenderWindow.newInstance();
renderWindow.addView(openglRenderWindow);

// ----------------------------------------------------------------------------
// Create a div section to put this into
// ----------------------------------------------------------------------------

//var container = document.createElement('div');
//document.querySelector('body').appendChild(container);
openglRenderWindow.setContainer(container);

// ----------------------------------------------------------------------------
// Setup an interactor to handle mouse events
// ----------------------------------------------------------------------------

var interactor = vtk.Rendering.Core.vtkRenderWindowInteractor.newInstance();
interactor.setView(openglRenderWindow);
interactor.initialize();
interactor.bindEvents(container);

// ----------------------------------------------------------------------------
// Add Coordinates
// ----------------------------------------------------------------------------
var axes = vtk.Rendering.Core.vtkAxesActor.newInstance();
var widget = vtk.Interaction.Widgets.vtkOrientationMarkerWidget.newInstance({
  interactor: interactor,
  actor: axes,
});

widget.setViewportSize(0.15);
widget.setMinPixelSize(50);
widget.setMaxPixelSize(100);
widget.setEnabled(true);

</script>
'''
HTML(vtk_example)


Out[26]:

In [ ]: