Cutter
VTKExamples/Java/Miscellaneous/Cutter
Description¶
This example demonstrates how to use vtkCutter by cutting through a cube.
Code¶
Cutter.java
import vtk.*; public class Cutter { // Loading Native Libraries. // Now it works in eclipse without any issues. static { if (!vtkNativeLibrary.LoadAllNativeLibraries()) { for (vtkNativeLibrary lib : vtkNativeLibrary.values()) { if (!lib.IsLoaded()) { System.out.println(lib.GetLibraryName() + " not loaded"); } } } vtkNativeLibrary.DisableOutputWindow(null); } public static void main(String[] args) { vtkCubeSource cube = new vtkCubeSource(); cube.SetXLength(40); cube.SetYLength(30); cube.SetZLength(20); vtkPolyDataMapper cubeMapper = new vtkPolyDataMapper(); cubeMapper.SetInputConnection(cube.GetOutputPort()); //create a plane to cut,here it cuts in the XZ direction (xz normal=(1,0,0);XY =(0,0,1),YZ =(0,1,0) vtkPlane plane = new vtkPlane(); plane.SetOrigin(10,0,0); plane.SetNormal(1,0,0); //create cutter vtkCutter cutter = new vtkCutter(); cutter.SetCutFunction(plane); cutter.SetInput(cubeMapper.GetInput()); cutter.Update(); vtkPolyDataMapper cutterMapper = new vtkPolyDataMapper(); cutterMapper.SetInputConnection( cutter.GetOutputPort()); //create plane actor vtkActor planeActor = new vtkActor(); planeActor.GetProperty().SetColor(1.0,1,0); planeActor.GetProperty().SetLineWidth(2); planeActor.SetMapper(cutterMapper); //create cube actor vtkActor cubeActor = new vtkActor(); cubeActor.GetProperty().SetColor(0.5,1,0.5); cubeActor.GetProperty().SetOpacity(0.5); cubeActor.SetMapper(cubeMapper); //create renderers and add actors of plane and cube vtkRenderer ren = new vtkRenderer(); ren.AddActor(planeActor); ren.AddActor(cubeActor); //Add renderer to renderwindow and render vtkRenderWindow renWin = new vtkRenderWindow(); renWin.AddRenderer(ren); renWin.SetSize(600, 600); vtkRenderWindowInteractor iren = new vtkRenderWindowInteractor(); iren.SetRenderWindow(renWin); ren.SetBackground(0,0,0); renWin.Render(); iren.Start(); } }