import java.awt.Frame;
import java.io.*;
import java.lang.Exception.*;
import javax.media.j3d.*;
import java.awt.*;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.vecmath.*;



class Test3D extends Frame
{
	Panel panel;
	VirtualUniverse universe;
	Locale locale;
	Canvas3D canvas3d;
	BranchGroup root;
	TransformGroup tg;
	View view;


	Test3D()
	{

		canvas3d = new Canvas3D(null);
		canvas3d.setBackground(Color.blue);
		canvas3d.setSize(600,400);



		setLayout(new BorderLayout());
		this.setTitle("Test");
		this.setSize(800,600);
		this.setBackground(Color.white);

		panel = new Panel();
		panel.setBackground(Color.blue);
		this.add("Center",panel);
		panel.add(canvas3d); //cria-se um canvas3d e adiciona-se ao painel do applet



		universe = new VirtualUniverse();

		locale = new Locale(universe);


		PhysicalBody body = new PhysicalBody();
		PhysicalEnvironment environment = new PhysicalEnvironment();


		view = new View();
		view.addCanvas3D(canvas3d);
		view.setPhysicalBody(body);
		view.setPhysicalEnvironment(environment);

		root = new BranchGroup();

		Transform3D t3d = new Transform3D();
		t3d.set(new Vector3f(0.0f, 0.0f, 2.4f));
		tg = new TransformGroup(t3d);

		TransformGroup tgCube = new TransformGroup();

		ViewPlatform vp = new ViewPlatform();

		tg.addChild(vp);

		tgCube.addChild(new ColorCube(0.4));


		root.addChild(tg);

		root.addChild(tgCube);


		view.attachViewPlatform(vp);


		locale.addBranchGraph(root);

		setLayout(new FlowLayout(FlowLayout.CENTER));
		this.show();

		canvas3d.repaint();
	}


	public static void main(String Args[])
	{
		new Test3D();
	}
}

