// ...imports
import javax.media.j3d.*;
import com.sun.j3d.utils.universe.*;
import javax.vecmath.Point3d;
import com.sun.j3d.utils.behaviors.vp.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.*;
import java.applet.Applet;
import javax.media.j3d.Alpha;
import javax.media.j3d.PositionInterpolator;
import javax.vecmath.*;

public class Koordinatenachsen extends Applet{
	public BranchGroup createSceneGraph(){
		
		
		final Color3f red	= new Color3f(1.0f,0.0f,0.0f);
		final Color3f green	= new Color3f(0.0f,1.0f,0.0f);
		final Color3f blue	= new Color3f(0.0f,0.0f,1.0f);
		
		// Erzeuge die Wurzel der Szene
		BranchGroup root = new BranchGroup();
		
		// erzeuge X-achse
		LineArray axisX = new LineArray(2, LineArray.COORDINATES);
		axisX.setCoordinate(0, new Point3f(-1.0f,0.0f,0.0f));
		axisX.setCoordinate(1, new Point3f( 1.0f,0.0f,0.0f));
		
		root.addChild(new Shape3D(axisX));
		
		// erzeuge Y-Achse
		LineArray axisY = new LineArray(2, LineArray.COORDINATES|LineArray.COLOR_3);
		axisY.setCoordinate(0, new Point3f(0.0f,-1.0f,0.0f));
		axisY.setCoordinate(1, new Point3f( 0.0f,1.0f,0.0f));
		
		// Achsenfarbe: blau
		axisY.setColor(0, blue);
		axisY.setColor(1, blue);
		
		root.addChild(new Shape3D(axisY));
		
		// erzeuge z-Achse
		// Punkte stehen im Array
		Point3f[] zPoints = {new Point3f(0.0f,0.0f,-1.0f),
							 new Point3f(0.0f,0.0f, 1.0f)};
		 
		LineArray axisZ = new LineArray(2, LineArray.COORDINATES|LineArray.COLOR_3);
		
		axisZ.setCoordinates(0, zPoints);
		
		// z-Achse ist zweifarbig?
		axisZ.setColor(0, red);
		axisZ.setColor(1, green);
		
		root.addChild(new Shape3D(axisZ));
		
		return root;
		
	}
	public void init(){
		
		// erzeuge das Universum
		SimpleUniverse universe = Utils.createUniverse(this);
		
		// hänge die 3D-Szene ein
		universe.addBranchGraph(createSceneGraph());
	}
	public Koordinatenachsen(){}
	public static void main(String[]args){
		new MainFrame (new Koordinatenachsen(), 256, 256);
	}
}