FileDocCategorySizeDatePackage
HelloJava3Dd.javaAPI DocExample4752Fri Sep 22 14:57:10 BST 2000None

HelloJava3Dd

public class HelloJava3Dd extends Applet

Fields Summary
Constructors Summary
public HelloJava3Dd()

        setLayout(new BorderLayout());
        GraphicsConfiguration config =
           SimpleUniverse.getPreferredConfiguration();

        Canvas3D canvas3D = new Canvas3D(config);
        add("Center", canvas3D);

        BranchGroup scene = createSceneGraph();
	scene.compile();

        // SimpleUniverse is a Convenience Utility class
        SimpleUniverse simpleU = new SimpleUniverse(canvas3D);

	// This will move the ViewPlatform back a bit so the
	// objects in the scene can be viewed.
        simpleU.getViewingPlatform().setNominalViewingTransform();

        simpleU.addBranchGraph(scene);
   
Methods Summary
public BranchGroupcreateSceneGraph()

	// Create the root of the branch graph
	BranchGroup objRoot = new BranchGroup();

	// rotate object has composited transformation matrix
	Transform3D rotate = new Transform3D();
	Transform3D tempRotate = new Transform3D();

        rotate.rotX(Math.PI/4.0d);
	tempRotate.rotY(Math.PI/5.0d);
        rotate.mul(tempRotate);

	TransformGroup objRotate = new TransformGroup(rotate);

	// Create the transform group node and initialize it to the
	// identity.  Enable the TRANSFORM_WRITE capability so that
	// our behavior code can modify it at runtime.  Add it to the
	// root of the subgraph.
	TransformGroup objSpin = new TransformGroup();
	objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

	objRoot.addChild(objRotate);
	objRotate.addChild(objSpin);
 
	// Create a simple shape leaf node, add it to the scene graph.
	// ColorCube is a Convenience Utility class
	objSpin.addChild(new ColorCube(0.4));

	// Create a new Behavior object that will perform the desired
	// operation on the specified transform object and add it into
	// the scene graph.
	Transform3D yAxis = new Transform3D();
	Alpha rotationAlpha = new Alpha(-1, 4000);

	RotationInterpolator rotator =
	    new RotationInterpolator(rotationAlpha, objSpin, yAxis,
				     0.0f, (float) Math.PI*2.0f);

	// a bounding sphere specifies a region a behavior is active
	// create a sphere centered at the origin with radius of 1
	BoundingSphere bounds = new BoundingSphere();
	rotator.setSchedulingBounds(bounds);
	objSpin.addChild(rotator);

	return objRoot;
    
public static voidmain(java.lang.String[] args)

        Frame frame = new MainFrame(new HelloJava3Dd(), 256, 256);