Cono3D.java_



import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.*;
import javax.media.j3d.*;
import javax.swing.JFrame;
import java.awt.*;

public class Cono3D extends JFrame
{
	private Transform3D rotate1 = new Transform3D();
	private Transform3D rotate2 = new Transform3D();

	public Cono3D()
	{
		super("Static3DWorld");
		setBackground(Color.white);
		setForeground(Color.blue);
		Canvas3D canvas3D = createCanvas3D();
		BranchGroup scene = createSceneGraph();
		connect(canvas3D, scene);
	}
	private Canvas3D createCanvas3D()
	{
		setSize(600, 600);
		getContentPane().setLayout(new BorderLayout());
		GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
		Canvas3D canvas3D = new Canvas3D(config);
		getContentPane().add(canvas3D);
		return canvas3D;
	}
	private BranchGroup createSceneGraph()
	{
		Appearance Apariencia = new Appearance();
		ColoringAttributes CA = new ColoringAttributes();
		CA.setColor((float)0.5,(float)0.5,(float)0.5);
		//Apariencia.setLineAttributes(new LineAttributes());
		//Apariencia.setMaterial(new Material());
		Apariencia.setColoringAttributes(CA);
		Cone Cono = new Cone((float)0.5, (float)1.0, Apariencia);
		Sphere Esfera = new Sphere((float)0.5, 1, 20, Apariencia);
		BranchGroup objRoot = new BranchGroup();
		TransformGroup rotator = new TransformGroup(rotateCono());
		objRoot.addChild(rotator);
		rotator.addChild(Esfera);
		rotator.addChild(Cono);
		rotator.addChild(new ColorCube(0.3));
		objRoot.compile();
		return objRoot;
	}
	private Transform3D rotateCono()
	{
		rotate1.rotX(Math.PI / 4.0d);
		rotate2.rotY(Math.PI / 4.0d);
		rotate1.mul(rotate2);
		return rotate1;
	}
	private void connect(Canvas3D canvas3D, BranchGroup scene)
	{
		SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
		simpleU.getViewingPlatform().setNominalViewingTransform();
		simpleU.addBranchGraph(scene);
	}

	public static void main(String[] args) { new Cono3D().setVisible(true); }
}