public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().setLayout(new BorderLayout()); vtkPanel vPanel = new vtkPanel(); frame.getContentPane().add("Center", vPanel); vtkStructuredGridReader reader = new vtkStructuredGridReader(); reader.SetFileName("Data/office.binary.vtk"); // 8400 points reader.Update(); vtkMaskPoints masked = new vtkMaskPoints(); masked.SetInput(reader.GetOutput()); masked.RandomModeOn(); masked.SetOnRatio(30); // ~280 points vtkStreamLine streamline = new vtkStreamLine(); streamline.SetInput(reader.GetOutput()); streamline.SetSource(masked.GetOutput()); streamline.SetStepLength(0.5); streamline.SetMaximumPropagationTime(15.0); streamline.SetIntegrationDirection(1); vtkDiskSource disk = new vtkDiskSource(); disk.SetOuterRadius(0.01); vtkTransform trans = new vtkTransform(); trans.RotateY(90.0); vtkTransformPolyDataFilter tpdf = new vtkTransformPolyDataFilter(); tpdf.SetInput(disk.GetOutput()); tpdf.SetTransform(trans); vtkGlyph3D glyph = new vtkGlyph3D(); glyph.SetInput(streamline.GetOutput()); glyph.SetSource(tpdf.GetOutput()); glyph.SetScaleFactor(0.05); vtkPolyDataMapper mapper = new vtkPolyDataMapper(); mapper.SetInput(glyph.GetOutput()); vtkActor actor = new vtkActor(); actor.SetMapper(mapper); vPanel.GetRenderer().AddActor(actor); vPanel.GetRenderer().ResetCamera(); frame.pack(); frame.setVisible(true); // show frame for 3 seconds, dispose and recreate it try { Thread.sleep(3000); frame.dispose(); System.out.println("--- RESTART ---"); frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().setLayout(new BorderLayout()); vPanel = new vtkPanel(); frame.getContentPane().add("Center", vPanel); reader = new vtkStructuredGridReader(); reader.SetFileName("Data/office.binary.vtk"); reader.Update(); masked = new vtkMaskPoints(); masked.SetInput(reader.GetOutput()); masked.RandomModeOn(); masked.SetOnRatio(30); streamline = new vtkStreamLine(); streamline.SetInput(reader.GetOutput()); streamline.SetSource(masked.GetOutput()); streamline.SetStepLength(0.5); streamline.SetMaximumPropagationTime(15.0); streamline.SetIntegrationDirection(1); disk = new vtkDiskSource(); disk.SetOuterRadius(0.01); trans = new vtkTransform(); trans.RotateY(90.0); tpdf = new vtkTransformPolyDataFilter(); tpdf.SetInput(disk.GetOutput()); tpdf.SetTransform(trans); glyph = new vtkGlyph3D(); glyph.SetInput(streamline.GetOutput()); glyph.SetSource(tpdf.GetOutput()); glyph.SetScaleFactor(0.05); mapper = new vtkPolyDataMapper(); mapper.SetInput(glyph.GetOutput()); actor = new vtkActor(); actor.SetMapper(mapper); vPanel.GetRenderer().AddActor(actor); vPanel.GetRenderer().ResetCamera(); frame.pack(); frame.setVisible(true); } catch (InterruptedException e) { e.printStackTrace(); } catch (HeadlessException e) { e.printStackTrace(); } }