source: development/steve/visualisation/Tutorial/Step2/Cone2.java @ 3295

Last change on this file since 3295 was 2229, checked in by steve, 19 years ago

Moved directories into production and development parent directories

File size: 2.5 KB
Line 
1//
2// This example shows how to add an observer to a Java program. It extends
3// the Step1/Java/Cone.java Java example (see that example for information on
4// the basic setup).
5//
6// VTK uses a command/observer design pattern. That is, observers watch for
7// particular events that any vtkObject (or subclass) may invoke on
8// itself. For example, the vtkRenderer invokes a "StartEvent" as it begins
9// to render. Here we add an observer that invokes a command when this event
10// is observed.
11//
12//
13// Show how to add an observer to the Cone example
14//
15
16// we import the vtk wrapped classes forst
17import vtk.*;
18
19// then we define our class
20public class Cone2 {
21  // in the static contructor we load in the native code
22  // The libraries must be in your path to work
23  static { 
24    System.loadLibrary("vtkCommonJava"); 
25    System.loadLibrary("vtkFilteringJava"); 
26    System.loadLibrary("vtkIOJava"); 
27    System.loadLibrary("vtkImagingJava"); 
28    System.loadLibrary("vtkGraphicsJava"); 
29    System.loadLibrary("vtkRenderingJava"); 
30  }
31
32  // Define the callback
33  public void myCallback()
34  {
35    System.out.println("Starting a render");
36  }
37
38  // now the main program
39  public static void main (String []args) {
40    //
41    // Now we create the pipeline as usual, see Cone.java in Step1 for details
42    //
43    vtkConeSource cone = new vtkConeSource();
44    cone.SetHeight( 3.0 );
45    cone.SetRadius( 1.0 );
46    cone.SetResolution( 10 );
47 
48    vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
49    coneMapper.SetInput( cone.GetOutput() );
50    vtkActor coneActor = new vtkActor();
51    coneActor.SetMapper( coneMapper );
52
53    vtkRenderer ren1 = new vtkRenderer();
54    ren1.AddActor( coneActor );
55    ren1.SetBackground( 0.1, 0.2, 0.4 );
56
57    // Add the observer here, the first argument is the event name
58    // the second argument is the instance to invoke the method on
59    // the third argument is which method to invoke
60    Cone2 me = new Cone2();
61    ren1.AddObserver("StartEvent",me,"myCallback");
62
63    // setup the window
64    vtkRenderWindow renWin = new vtkRenderWindow();
65    renWin.AddRenderer( ren1 );
66    renWin.SetSize( 300, 300 );
67   
68    //
69    // now we loop over 360 degreeees and render the cone each time
70    //
71    int i;
72    for (i = 0; i < 360; ++i)
73      {
74      // render the image
75      renWin.Render();
76      // rotate the active camera by one degree
77      ren1.GetActiveCamera().Azimuth( 1 );
78      }
79 
80    } 
81}
82
Note: See TracBrowser for help on using the repository browser.