Bloques3D.java



// COLOCA UNA ESFERA EN LA ESQUINA DE UN CUBO (todo alAmbrico)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.media.opengl.*;
import javax.media.opengl.glu.*;
import com.sun.opengl.util.*;


public class  Bloques3D extends JFrame implements GLEventListener

{
	GLU glu = new GLU();
	GL gl = null;
	GLUT glut = new GLUT();

	//FPSAnimator Animacion;

	public static void main(String[] args) {  new Bloques3D(); }

	public Bloques3D()
	{
		super("Bloques");
		GLCapabilities caps = new GLCapabilities();
		GLCanvas canvas = new GLCanvas(caps);
		canvas.addGLEventListener(this);

		add("Center", canvas);
		setSize(1000, 1000);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);

		//caps.setDoubleBuffered ( true ) ;
		//Animacion = new FPSAnimator ( canvas, 20 ) ;
		//Animacion.start();

	}

	public void init (GLAutoDrawable DRAW)
	{
		gl = DRAW.getGL();
		//glut.glutInitDisplayMode(GLUT.GLUT_SINGLE | GLUT.GLUT_RGB);
		gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
		gl.glShadeModel(GL.GL_FLAT);
	}

	public void display(GLAutoDrawable drawable)
	{
		gl.glClear(GL.GL_COLOR_BUFFER_BIT);
		gl.glLoadIdentity(); /* clear the matrix */
		/* viewing transformation */
		glu.gluLookAt(-1.2, 1.2, 2.5, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
		//glu.gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
		//gl.glTranslatef(0.0f, 0.0f, -5.0f);
		//gl.glScalef(1.0f, 1.0f, 1.0f); /* modeling transformation */
		gl.glBegin(GL.GL_LINES);
			gl.glColor3f(0.0f, 1.0f, 0.0f); gl.glVertex3f(0.0f, 0.0f, 0.0f); gl.glVertex3f(2.0f, 0.0f, 0.0f);
			gl.glColor3f(0.0f, 1.0f, 1.0f); gl.glVertex3f(0.0f, 0.0f, 0.0f); gl.glVertex3f(0.0f, 2.0f, 0.0f);
			gl.glColor3f(1.0f, 1.0f, 1.0f); gl.glVertex3f(0.0f, 0.0f, 0.0f); gl.glVertex3f(0.0f, 0.0f, 2.0f);
		gl.glEnd();
		//gl.glColor3f(1.0f, 1.0f, 1.0f);
		glut.glutWireCube(1.0f);
		gl.glTranslatef(0.5f, 0.5f, 0.5f);
		glut.glutWireSphere(0.25d, 20, 20);
		gl.glFlush();
	}


	public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h)
	{
		gl.glViewport(0, 0, w, h);
		gl.glMatrixMode(GL.GL_PROJECTION);
		gl.glLoadIdentity();
		gl.glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);
		gl.glMatrixMode(GL.GL_MODELVIEW);
	}


	public void displayChanged(GLAutoDrawable drawable,
		boolean modeChanged, boolean deviceChanged) { }

}