// ...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.ColorCube;
import java.applet.Applet;
import javax.media.j3d.Alpha;
import javax.media.j3d.PositionInterpolator;

public class Animierter_Wuerfel_1 extends Applet{
	public BranchGroup createSceneGraph(){
		
		// erzeuge einen bunten Würfel
		ColorCube cube = new ColorCube(0.4);
		
		TransformGroup tg = new TransformGroup();
		
		// hänge den Würfel an die Wurzel
		tg.addChild(cube);
		
		// Gruppierung für Animation erzeugen
		TransformGroup animationGroup = new TransformGroup();
		animationGroup.setCapability (TransformGroup.ALLOW_TRANSFORM_WRITE);
		animationGroup.addChild(tg);
		
		// Trigger und Interpolator erzeugen
		Alpha alpha = new Alpha (-1,3000);
		PositionInterpolator interpolator = new PositionInterpolator (alpha, animationGroup);
		interpolator.setSchedulingBounds (new BoundingSphere());
		animationGroup.addChild(interpolator);
		
		// erzeuge die Wurzel der Würfelzene
		BranchGroup root = new BranchGroup();
		// hänge den Würfel an dei Animation
		root.addChild(animationGroup);
		
		//fertig
		return root;
	}
	public void init(){
		
		// erzeuge das Universum
		SimpleUniverse universe = Utils.createUniverse(this);
		
		// hänge die 3D-Szene ein
		universe.addBranchGraph(createSceneGraph());
	}
	public Animierter_Wuerfel_1(){}
	public static void main(String[]args){
		new MainFrame (new Animierter_Wuerfel_1(), 256, 256);
	}
}