/**
* "Java 3D Example"
*
*@author
*@version
*/

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;

import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.PolygonAttributes;
import javax.media.j3d.TransformGroup;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.Cylinder;
import com.sun.j3d.utils.geometry.Primitive;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class MyCylinder extends Applet
{
	private static final long serialVersionUID = 9087657386997999110L;

	public SimpleUniverse u = null;
	public BranchGroup createSceneGraph()
	{
		BranchGroup bg = new BranchGroup();
		TransformGroup tg = new TransformGroup();
		PolygonAttributes polyAtt = new PolygonAttributes();
		polyAtt.setPolygonMode(PolygonAttributes.POLYGON_LINE);
		polyAtt.setCullFace(PolygonAttributes.CULL_NONE);
		
		Appearance app = new Appearance();
		app.setPolygonAttributes(polyAtt);

		tg.addChild(new Cylinder(0.3f, 0.9f, Primitive.GENERATE_NORMALS, 5, 6, app));

		bg.addChild(tg);
		bg.compile();
		return bg;
	}

	public void init()
	{
		this.setLayout(new BorderLayout());
		GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
		Canvas3D c = new Canvas3D(config);
		this.add("Center", c);
		u = new SimpleUniverse(c);
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph(this.createSceneGraph());
	}

	public void destroy()
	{
		u.cleanup();
	}

	public static void main(String[] args)
	{
		new MainFrame(new MyCylinder(), 400, 400);
	}
}
		

		
