Follower
VTKExamples/Java/Visualization/Follower
Description¶
The text stays right side up and facing the camera, while the cube does not.
Code¶
Follower.java
import vtk.*; public class Follower { static { System.loadLibrary("vtkCommonJava"); System.loadLibrary("vtkFilteringJava"); System.loadLibrary("vtkIOJava"); System.loadLibrary("vtkImagingJava"); System.loadLibrary("vtkGraphicsJava"); System.loadLibrary("vtkRenderingJava"); System.loadLibrary("vtkHybridJava"); } public static void main(String[] args) { //Create some text vtkVectorText textSource = new vtkVectorText(); textSource.SetText( "Hello" ); //Create a mapper vtkPolyDataMapper mapper = new vtkPolyDataMapper(); mapper.SetInputConnection( textSource.GetOutputPort() ); //Create a subclass of vtkActor: a vtkFollower that remains facing the camera vtkFollower follower = new vtkFollower(); follower.SetMapper( mapper ); follower.GetProperty().SetColor( 1, 0, 0 ); // red //Create a transparent cube that does not move around to face the camera vtkCubeSource cubeSource = new vtkCubeSource(); vtkPolyDataMapper cubeMapper = new vtkPolyDataMapper(); cubeMapper.SetInputConnection( cubeSource.GetOutputPort() ); vtkActor cubeActor = new vtkActor(); cubeActor.SetMapper( cubeMapper ); cubeActor.GetProperty().SetColor( 0, 0, 1 ); // blue cubeActor.GetProperty().SetOpacity( 0.3 ); //Create a renderer, render window, and interactor vtkRenderer renderer = new vtkRenderer(); vtkRenderWindow renderWindow = new vtkRenderWindow(); renderWindow.AddRenderer( renderer ); vtkRenderWindowInteractor renderWindowInteractor = new vtkRenderWindowInteractor(); ((vtkInteractorStyle)renderWindowInteractor.GetInteractorStyle()).AutoAdjustCameraClippingRangeOn(); renderWindowInteractor.SetRenderWindow( renderWindow ); //Add the actor to the scene renderer.AddActor( follower ); renderer.AddActor( cubeActor ); renderer.SetBackground( 1, 1, 1 ); // Background color white follower.SetCamera( renderer.GetActiveCamera() ); //Render and interact renderWindow.Render(); renderer.ResetCamera(); renderWindow.Render(); renderWindowInteractor.Start(); } }