Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.media.opengl.GL;
- import javax.media.opengl.GLAutoDrawable;
- import javax.media.opengl.GLCanvas;
- import javax.media.opengl.GLCapabilities;
- import javax.media.opengl.GLEventListener;
- import javax.media.opengl.glu.GLU;
- import javax.swing.JFrame;
- import com.sun.opengl.util.FPSAnimator;
- import com.sun.opengl.util.GLUT;
- public class RubikGUI extends JFrame implements GLEventListener, KeyListener{
- private static final long serialVersionUID = 1902650987469552859L;
- GLU glu = new GLU();
- GLUT glut = new GLUT();
- GLCapabilities caps;
- GLCanvas canvas;
- FPSAnimator animator;
- public static void main(String[] args) {
- new RubikGUI().start();
- }
- @Override
- public void keyPressed(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyReleased(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void keyTyped(KeyEvent arg0) {
- // TODO Auto-generated method stub
- }
- @Override
- public void display(GLAutoDrawable arg0) {
- GL gl = arg0.getGL();
- gl.glClear(GL.GL_COLOR_BUFFER_BIT);
- gl.glBegin(GL.GL_QUADS);
- drawFaceOne(gl);
- //Rubik3x3.performAction(Rubik3x3.getRandomAction());
- gl.glEnd();
- }
- private void drawFaceOne(GL gl) {
- float curx=0, cury=0, curz=3;
- for(int i=0; i<Rubik3x3.TOTAL_CUBIES; i++) {
- int[] cubie_color_arr = Rubik3x3.getCubieColor(i);
- float[] colors = gen_color(Rubik3x3.getColor(cubie_color_arr[5]));
- gl.glColor4fv(colors, 0);
- gl.glVertex3f(curx, cury, curz);
- gl.glVertex3f(curx+1, cury, curz);
- gl.glVertex3f(curx+1, cury+1, curz);
- gl.glVertex3f(curx, cury+1, curz);
- curx++;
- if(i%3 == 0) {
- cury++;
- curx=0;
- }
- if(i%9 == 0) {
- curz--;
- cury=0;
- curx=0;
- }
- }
- }
- private float[] gen_color(String color) {
- switch(color) {
- case "hidden": return new float[] {0,0,0,0};
- case "red": return new float[] {1,0,0,1};
- case "orange": return new float[] {1,1,0,1};
- case "blue": return new float[] {0,0,1,1};
- case "green": return new float[] {0,1,1,1};
- case "white": return new float[] {1,1,1,1};
- case "yellow": return new float[] {1,1,0,1};
- default: return new float[] {0,0,0,0};
- }
- }
- public void start() {
- caps = new GLCapabilities();
- caps.setDoubleBuffered(true);
- caps.setHardwareAccelerated(true);
- canvas = new GLCanvas(caps);
- canvas.addGLEventListener(this);
- canvas.addKeyListener(this);
- animator = new FPSAnimator(canvas, 60);
- getContentPane().add(canvas);
- setSize(400, 400);
- setLocationRelativeTo(null);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setVisible(true);
- animator.start();
- }
- @Override
- public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) {
- // TODO Auto-generated method stub
- }
- @Override
- public void init(GLAutoDrawable arg0) {
- GL gl = arg0.getGL();
- gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
- gl.glMatrixMode(GL.GL_PROJECTION);
- gl.glLoadIdentity();
- glu.gluOrtho2D(-1, 4, -1, 4);
- gl.glMatrixMode(GL.GL_MODELVIEW);
- }
- @Override
- public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3,
- int arg4) {
- // TODO Auto-generated method stub
- }
- }
Add Comment
Please, Sign In to add comment