
import javax.media.j3d.*; // Canvas3D etc
import java.applet.Applet;
import java.awt.Frame;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;

public class Prog1 extends Applet {
	public Prog1() {
		setLayout ( new BorderLayout() );
		Canvas3D c = new Canvas3D ( null );
		add ( "Center", c );
		BranchGroup scene = createSceneGraph();
		SimpleUniverse u = new SimpleUniverse ( c );

		// [move the ViewPlatform back a bit]
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph ( scene ); // We are "live"
	}

	public BranchGroup createSceneGraph() {
		BranchGroup objRoot = new BranchGroup();
		Transform3D spin = new Transform3D();
		Transform3D tempspin = new Transform3D();
		spin.rotX ( Math.PI/4.0 );
		tempspin.rotY ( Math.PI/5.0 );
		spin.mul ( tempspin );
		TransformGroup objTrans = new TransformGroup ( spin );
		objRoot.addChild ( objTrans );
		//ColorCube x = new ColorCube();// needs to be smaller
		ColorCube x = new ColorCube(0.4);
		objTrans.addChild ( x );
		return objRoot;
	}

	public static void main ( String[] args ) {
		Frame frame = new MainFrame ( new Prog1(), 256, 256 );
	}
}
