import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.*;
import com.sun.j3d.utils.applet.MainFrame; 
import com.sun.j3d.utils.universe.*; 
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.behaviors.mouse.*;
import javax.media.j3d.*;
import javax.vecmath.*;



class Test extends Applet 
{
        Canvas3D canvas;
        Panel panel;
        public SimpleUniverse su;
        public BranchGroup bgTeste;
               
        public Test()
        {
                canvas = new Canvas3D(null);
                canvas.setBackground(Color.black);
                canvas.setSize(400,300);

                panel = new Panel();

                panel.add(canvas);

                bgTeste = scene();

                bgTeste.compile();

                su = new SimpleUniverse(canvas);

                su.getViewingPlatform().setNominalViewingTransform();

                su.addBranchGraph(bgTeste);

                this.add(panel);
        }

        public static void main(String[] args)
        {
                Frame frame = new MainFrame(new Test(), 800, 600);
        }

        public BranchGroup scene()
        {

                

                BranchGroup bgScene = new BranchGroup();

                TransformGroup tg = new TransformGroup();

                tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);

                tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);

                bgScene.addChild(tg);

                tg.addChild(new ColorCube(0.3));

                MouseZoom mz = new MouseZoom();

                mz.setTransformGroup(tg);

                mz.setSchedulingBounds(new BoundingSphere());

                bgScene.addChild(mz);

                return bgScene;
        }
}





                
