/Users/lyon/j4p/src/j3d/cr325/Hello/HelloJava3Db.java

1    package j3d.cr325.Hello; 
2     
3     
4    import com.sun.j3d.utils.applet.MainFrame; 
5    import com.sun.j3d.utils.geometry.ColorCube; 
6    import com.sun.j3d.utils.universe.SimpleUniverse; 
7     
8    import javax.media.j3d.BranchGroup; 
9    import javax.media.j3d.Canvas3D; 
10   import javax.media.j3d.Transform3D; 
11   import javax.media.j3d.TransformGroup; 
12   import java.applet.Applet; 
13   import java.awt.*; 
14    
15   //   HelloJava3Db renders a single, rotated cube. 
16    
17   public class HelloJava3Db extends Applet { 
18       public BranchGroup createSceneGraph() { 
19           // Create the root of the branch graph 
20           BranchGroup bg = new BranchGroup(); 
21    
22           // rotate object has composited transformation matrix 
23           Transform3D rotate = new Transform3D(); 
24           Transform3D tempRotate = new Transform3D(); 
25    
26           rotate.rotX(Math.PI / 4.0d); 
27           tempRotate.rotY(Math.PI / 5.0d); 
28           rotate.mul(tempRotate); 
29    
30           TransformGroup objRotate = new TransformGroup(rotate); 
31    
32           bg.addChild(objRotate); 
33           objRotate.addChild(new ColorCube(0.4)); 
34           // Let Java 3D perform optimizations on this scene graph. 
35           bg.compile(); 
36    
37           return bg; 
38       } // end of CreateSceneGraph method of HelloJava3Db 
39    
40       // Create a simple scene and attach it to the virtual universe 
41    
42       public HelloJava3Db() { 
43           setLayout(new BorderLayout()); 
44           GraphicsConfiguration config = 
45                   SimpleUniverse.getPreferredConfiguration(); 
46    
47           Canvas3D canvas3D = new Canvas3D(config); 
48           add("Center", canvas3D); 
49    
50           BranchGroup scene = createSceneGraph(); 
51    
52           // SimpleUniverse is a Convenience Utility class 
53           SimpleUniverse simpleU = new SimpleUniverse(canvas3D); 
54    
55           // This will move the ViewPlatform back a bit so the 
56           // objects in the scene can be viewed. 
57           simpleU.getViewingPlatform().setNominalViewingTransform(); 
58    
59           simpleU.addBranchGraph(scene); 
60       } // end of HelloJava3Db (constructor) 
61       //  The following allows this to be run as an application 
62       //  as well as an applet 
63    
64       public static void main(String[] args) { 
65           Frame frame = new MainFrame(new HelloJava3Db(), 256, 256); 
66       } // end of main (method of HelloJava3Db) 
67    
68   } // end of class HelloJava3Db 
69