Witiko

Untitled

Feb 25th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.12 KB | None | 0 0
  1. package pv112;
  2.  
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5. import javax.media.opengl.GL2;
  6. import javax.media.opengl.GLAutoDrawable;
  7. import javax.media.opengl.GLEventListener;
  8. import javax.media.opengl.awt.GLJPanel;
  9. import static javax.media.opengl.GL2.*; // GL2 konstanty
  10.  
  11. public class OpenGlListener implements GLEventListener, KeyListener {
  12.  
  13.     private final GLJPanel glPanel;
  14.     private boolean wireframeEnabled = true;
  15.     private float angleTriangle = 0.0f;
  16.     private float speedTriangle = 1.0f;
  17.  
  18.     OpenGlListener(GLJPanel glPanel) {
  19.         this.glPanel = glPanel;
  20.     }
  21.  
  22.     @Override
  23.     // metoda volana pri vytvoreni okna OpenGL
  24.     public void init(GLAutoDrawable glad) {
  25.         GL2 gl = glad.getGL().getGL2();
  26.         gl.glClearColor(1.0f, 1.0f, 1.0f, 0);
  27.     }
  28.  
  29.     @Override
  30.     // metoda volana pri zatvoreni okna OpenGL
  31.     public void dispose(GLAutoDrawable glad) {
  32.     }
  33.  
  34.     @Override
  35.     // metoda volana pri kazdom prekresleni obrazovky
  36.     public void display(GLAutoDrawable glad) {
  37.        
  38.         GL2 gl = glad.getGL().getGL2();
  39.         gl.glClear(GL_COLOR_BUFFER_BIT);
  40.         gl.glClearDepth(1.0);
  41.         gl.glClear(GL_DEPTH_BUFFER_BIT);
  42.         if( wireframeEnabled ) {
  43.             gl.glPolygonMode(GL_FRONT, GL_LINE);
  44.         }
  45.        
  46.         gl.glColor3f(0.0f,0.0f,0.0f);
  47.  
  48.         gl.glRotatef(45f, 1.0f, 1.0f, 1.0f);
  49.  
  50.         //front
  51.         gl.glBegin(GL_QUADS);
  52.             gl.glColor3f(1.0f, 0.0f, 0.0f);
  53.             gl.glVertex3f(0.0f, 0.0f, 0.0f);
  54.             gl.glVertex3f(0.5f, 0.0f, 0.0f);
  55.             gl.glVertex3f(0.5f, 0.5f, 0.0f);
  56.             gl.glVertex3f(0.0f, 0.5f, 0.0f);
  57.         gl.glEnd();
  58.  
  59.         //back
  60.         gl.glBegin(GL_QUADS);
  61.             gl.glColor3f(0.0f,1.0f,0.0f);
  62.             gl.glVertex3f(0.0f,0.0f,0.5f);
  63.             gl.glVertex3f(0.5f,0.0f,0.5f);
  64.             gl.glVertex3f(0.5f,0.5f,0.5f);
  65.             gl.glVertex3f(0.0f,0.5f,0.5f);
  66.         gl.glEnd();
  67.  
  68.         //top
  69.         gl.glBegin(GL_QUADS);
  70.             gl.glColor3f(0.0f,0.0f,1.0f);
  71.             gl.glVertex3f(0.0f,0.5f,0.0f);
  72.             gl.glVertex3f(0.5f,0.5f,0.0f);
  73.             gl.glVertex3f(0.5f,0.5f,0.5f);
  74.             gl.glVertex3f(0.0f,0.5f,0.5f);
  75.         gl.glEnd();
  76.  
  77.         //down
  78.         gl.glBegin(GL_QUADS);
  79.             gl.glColor3f(1.0f,1.0f,0.0f);
  80.             gl.glVertex3f(0.0f,0.0f,0.0f);
  81.             gl.glVertex3f(0.5f,0.0f,0.0f);
  82.             gl.glVertex3f(0.5f,0.0f,0.5f);
  83.             gl.glVertex3f(0.0f,0.0f,0.5f);
  84.         gl.glEnd();
  85.  
  86.         //right
  87.         gl.glBegin(GL_QUADS);
  88.             gl.glColor3f(1.0f,0.0f,1.0f);
  89.             gl.glVertex3f(0.5f,0.0f,0.0f);
  90.             gl.glVertex3f(0.5f,0.0f,0.5f);
  91.             gl.glVertex3f(0.5f,0.5f,0.5f);
  92.             gl.glVertex3f(0.5f,0.5f,0.0f);
  93.         gl.glEnd();
  94.  
  95.         //left
  96.         gl.glBegin(GL_QUADS);
  97.             gl.glColor3f(0.0f,1.0f,1.0f);
  98.             gl.glVertex3f(0.0f,0.0f,0.0f);
  99.             gl.glVertex3f(0.0f,0.0f,0.5f);
  100.             gl.glVertex3f(0.0f,0.5f,0.5f);
  101.             gl.glVertex3f(0.0f,0.5f,0.0f);
  102.         gl.glEnd();
  103.        
  104.         gl.glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
  105.        
  106.        
  107.     }
  108.  
  109.     @Override
  110.     // metoda volana pri zmene velkosti okna
  111.     public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
  112.         GL2 gl = glad.getGL().getGL2();
  113. //        gl.glViewport(x, y, width, height); // volano automaticky
  114.  
  115.     }
  116.  
  117.     @Override
  118.     public void keyTyped(KeyEvent evt) {
  119.     }
  120.  
  121.     @Override
  122.     public void keyPressed(KeyEvent evt) {
  123.  
  124.         switch (evt.getKeyCode()) {
  125.             case KeyEvent.VK_ESCAPE:
  126.                 System.exit(0);
  127.                 break;
  128.            
  129.             case KeyEvent.VK_E:
  130.                 glPanel.display();
  131.                 break;
  132.                
  133.                
  134.             case KeyEvent.VK_F:
  135.                 wireframeEnabled = !wireframeEnabled;
  136.                 glPanel.display();
  137.                 break;
  138.            
  139.             default:
  140.  
  141.         }
  142.     }
  143.  
  144.     @Override
  145.     public void keyReleased(KeyEvent evt) {
  146.     }
  147. }
Advertisement
Add Comment
Please, Sign In to add comment