Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pv112;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.media.opengl.GL2;
- import javax.media.opengl.GLAutoDrawable;
- import javax.media.opengl.GLEventListener;
- import javax.media.opengl.awt.GLJPanel;
- import static javax.media.opengl.GL2.*; // GL2 konstanty
- public class OpenGlListener implements GLEventListener, KeyListener {
- private final GLJPanel glPanel;
- private boolean wireframeEnabled = true;
- private float angleTriangle = 0.0f;
- private float speedTriangle = 1.0f;
- OpenGlListener(GLJPanel glPanel) {
- this.glPanel = glPanel;
- }
- @Override
- // metoda volana pri vytvoreni okna OpenGL
- public void init(GLAutoDrawable glad) {
- GL2 gl = glad.getGL().getGL2();
- gl.glClearColor(1.0f, 1.0f, 1.0f, 0);
- }
- @Override
- // metoda volana pri zatvoreni okna OpenGL
- public void dispose(GLAutoDrawable glad) {
- }
- @Override
- // metoda volana pri kazdom prekresleni obrazovky
- public void display(GLAutoDrawable glad) {
- GL2 gl = glad.getGL().getGL2();
- gl.glClear(GL_COLOR_BUFFER_BIT);
- gl.glClearDepth(1.0);
- gl.glClear(GL_DEPTH_BUFFER_BIT);
- if( wireframeEnabled ) {
- gl.glPolygonMode(GL_FRONT, GL_LINE);
- }
- gl.glColor3f(0.0f,0.0f,0.0f);
- gl.glRotatef(45f, 1.0f, 1.0f, 1.0f);
- //front
- gl.glBegin(GL_QUADS);
- gl.glColor3f(1.0f, 0.0f, 0.0f);
- gl.glVertex3f(0.0f, 0.0f, 0.0f);
- gl.glVertex3f(0.5f, 0.0f, 0.0f);
- gl.glVertex3f(0.5f, 0.5f, 0.0f);
- gl.glVertex3f(0.0f, 0.5f, 0.0f);
- gl.glEnd();
- //back
- gl.glBegin(GL_QUADS);
- gl.glColor3f(0.0f,1.0f,0.0f);
- gl.glVertex3f(0.0f,0.0f,0.5f);
- gl.glVertex3f(0.5f,0.0f,0.5f);
- gl.glVertex3f(0.5f,0.5f,0.5f);
- gl.glVertex3f(0.0f,0.5f,0.5f);
- gl.glEnd();
- //top
- gl.glBegin(GL_QUADS);
- gl.glColor3f(0.0f,0.0f,1.0f);
- gl.glVertex3f(0.0f,0.5f,0.0f);
- gl.glVertex3f(0.5f,0.5f,0.0f);
- gl.glVertex3f(0.5f,0.5f,0.5f);
- gl.glVertex3f(0.0f,0.5f,0.5f);
- gl.glEnd();
- //down
- gl.glBegin(GL_QUADS);
- gl.glColor3f(1.0f,1.0f,0.0f);
- gl.glVertex3f(0.0f,0.0f,0.0f);
- gl.glVertex3f(0.5f,0.0f,0.0f);
- gl.glVertex3f(0.5f,0.0f,0.5f);
- gl.glVertex3f(0.0f,0.0f,0.5f);
- gl.glEnd();
- //right
- gl.glBegin(GL_QUADS);
- gl.glColor3f(1.0f,0.0f,1.0f);
- gl.glVertex3f(0.5f,0.0f,0.0f);
- gl.glVertex3f(0.5f,0.0f,0.5f);
- gl.glVertex3f(0.5f,0.5f,0.5f);
- gl.glVertex3f(0.5f,0.5f,0.0f);
- gl.glEnd();
- //left
- gl.glBegin(GL_QUADS);
- gl.glColor3f(0.0f,1.0f,1.0f);
- gl.glVertex3f(0.0f,0.0f,0.0f);
- gl.glVertex3f(0.0f,0.0f,0.5f);
- gl.glVertex3f(0.0f,0.5f,0.5f);
- gl.glVertex3f(0.0f,0.5f,0.0f);
- gl.glEnd();
- gl.glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- }
- @Override
- // metoda volana pri zmene velkosti okna
- public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) {
- GL2 gl = glad.getGL().getGL2();
- // gl.glViewport(x, y, width, height); // volano automaticky
- }
- @Override
- public void keyTyped(KeyEvent evt) {
- }
- @Override
- public void keyPressed(KeyEvent evt) {
- switch (evt.getKeyCode()) {
- case KeyEvent.VK_ESCAPE:
- System.exit(0);
- break;
- case KeyEvent.VK_E:
- glPanel.display();
- break;
- case KeyEvent.VK_F:
- wireframeEnabled = !wireframeEnabled;
- glPanel.display();
- break;
- default:
- }
- }
- @Override
- public void keyReleased(KeyEvent evt) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment