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); }
}