import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.Font;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.SimpleUniverse;

import javax.media.j3d.Appearance;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Font3D;
import javax.media.j3d.FontExtrusion;
import javax.media.j3d.Material;
import javax.media.j3d.Shape3D;
import javax.media.j3d.Text3D;
import javax.media.j3d.TransformGroup;
import javax.media.j3d.Transform3D;

import javax.vecmath.AxisAngle4f;
import javax.vecmath.Color3f;
import javax.vecmath.Point3f;
import java.applet.Applet;

public class Leuphana extends Applet
{
	private SimpleUniverse u;
	
	private Leuphana(String message)
	{
		super();
		System.out.println(message);
		
	}
	public BranchGroup createSceneGraph()
	{
		BranchGroup bg = new BranchGroup();
		TransformGroup tg = new TransformGroup();
		Transform3D t3d = new Transform3D();
		t3d.setRotation
		(new AxisAngle4f(1f, 1f, 0f, (float) Math.toRadians(330)));
		t3d.setScale(0.45);
		tg.setTransform(t3d);
		
		Font3D font3D = new Font3D
		(new Font ("Times", Font.PLAIN,1),
		new FontExtrusion());
		Text3D textGeom = new Text3D
		(font3D, new String("Leuphana"),
		new Point3f(-0.6f, 0.0f, -0.9f);
		Text3D.ALIGN_CENTER,
		Text3D.PATH_RIGHT);
		Appearance app = new Appearance();
		Material m = new Material();
		m.setEmissiveColor(new Color3f(0.8f, 0.8f, 0.8f));
		app.setMaterial(m);
		tg.addChild(new Shape3D(textGeom, app));
		bg.addChild(tg);
		return bg;
	}
	public void init()
	{
		setLayout(new BorderLayout());
		Canvas3D c = new Canvas3D
		(SimpleUniverse.getPreferredConfiguration());
		add("Center", c);
		u = new SimpleUniverse(c);
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph(createSceneGraph());
	}
	public void destroy()
	{
		u.cleanup();
	}
	public static void main(String[] args)
	{
		new MainFrame(new Leuphana("new Leuphana(..)"), 800, 200);
	}
}
