Last active
December 17, 2015 05:18
-
-
Save metasim/5556435 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.awt.BorderLayout; | |
import java.awt.GridLayout; | |
import java.awt.event.ActionEvent; | |
import java.awt.event.ActionListener; | |
import java.awt.event.KeyEvent; | |
import java.io.File; | |
import javax.swing.*; | |
import javax.swing.filechooser.FileNameExtensionFilter; | |
import vtk.*; | |
public class VTKCanvas extends JPanel { | |
static { | |
if (!vtkNativeLibrary.LoadAllNativeLibraries()) { | |
for (vtkNativeLibrary lib : vtkNativeLibrary.values()) { | |
if (!lib.IsLoaded()) { | |
System.out.println(lib.GetLibraryName() + " not loaded"); | |
} | |
} | |
} | |
vtkNativeLibrary.DisableOutputWindow(null); | |
} | |
vtkXMLUnstructuredGridReader reader = new vtkXMLUnstructuredGridReader(); | |
vtkDataSetMapper surfMapper = new vtkDataSetMapper(); | |
public VTKCanvas() { | |
setLayout(new BorderLayout()); | |
// Create the buttons. | |
vtkCanvas renWin = new vtkCanvas(); | |
add(renWin, BorderLayout.CENTER); | |
AxesActor aa = new AxesActor(renWin.GetRenderer()); | |
renWin.GetRenderer().AddActor(aa); | |
vtkActor actor = new vtkActor(); | |
actor.SetMapper(surfMapper); | |
renWin.GetRenderer().AddActor(actor); | |
} | |
/** | |
* Menu action for opening file. | |
*/ | |
public JMenuBar createMenus() { | |
// Create menu | |
JMenuBar menuBar; | |
JMenu menu; | |
JMenuItem menuItem; | |
// Create the menu bar. | |
menuBar = new JMenuBar(); | |
// Build the first menu. | |
menu = new JMenu("File"); | |
menu.setMnemonic(KeyEvent.VK_F); | |
menuBar.add(menu); | |
// A JMenuItem | |
menuItem = new JMenuItem("Open XML...", KeyEvent.VK_X); | |
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, | |
ActionEvent.CTRL_MASK)); | |
menuItem.addActionListener(new ActionListener() { | |
public void actionPerformed(ActionEvent e) { | |
// Create a file chooser | |
final JFileChooser fc = new JFileChooser(); | |
FileNameExtensionFilter filter = new FileNameExtensionFilter("VTK Unstructured Grid files (*.vtu)", "vtu"); | |
fc.setFileFilter(filter); | |
// In response to a button click: | |
int returnVal = fc.showOpenDialog(null); | |
if (returnVal == JFileChooser.APPROVE_OPTION) { | |
File f = fc.getSelectedFile(); | |
reader.SetFileName(f.getAbsolutePath()); | |
surfMapper.SetInputConnection(reader.GetOutputPort()); | |
reader.Update(); | |
} | |
} | |
}); | |
menu.add(menuItem); | |
return menuBar; | |
} | |
public static void main(String s[]) { | |
javax.swing.SwingUtilities.invokeLater(new Runnable() | |
{ | |
public void run() | |
{ | |
VTKCanvas panel = new VTKCanvas(); | |
JFrame frame = new JFrame("VTK Canvas Test"); | |
frame.setJMenuBar(panel.createMenus()); | |
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |
frame.getContentPane().add(panel); | |
frame.setSize(600, 600); | |
frame.setLocationRelativeTo(null); | |
frame.setVisible(true); | |
vtkReferenceInformation infos = vtkObject.JAVA_OBJECT_MANAGER.gc(true); | |
System.out.println(infos); | |
System.out.println(infos.listRemovedReferenceToString()); | |
System.out.println(infos.listKeptReferenceToString()); | |
} | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment