package ui.opengl;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import javax.media.opengl.GL;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLJPanel;
import javax.media.opengl.glu.GLU;
import javax.swing.JPanel;
import com.sun.opengl.util.GLUT;
public class MyOpenGLPanel extends GLCanvas implements MouseMotionListener, MouseListener, GLEventListener
{
private boolean showEdges = true;
private boolean showFaces = true;
FloatBuffer points; // 3D-Punkte
FloatBuffer lines; // Linien aus 2x 3D-Punkt
public MyOpenGLPanel()
{
this.addGLEventListener(this);
}
@Override
public void mouseDragged(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void display(GLAutoDrawable arg0)
{
GL gl = arg0.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
float red;
float green;
float blue;
////////////////////
//drawing the grid
red = 0.2f;
green = 0.2f;
blue = 0.2f;
gl.glColor3f(red, green, blue);
//You may notice I'm using GL_LINES here.
//Details of glBegin() will be discussed later.
gl.glBegin(GL.GL_LINES);
//draw the vertical lines
for (int x=-250; x<=250; x+=10) {
gl.glVertex2f(x, -150);
gl.glVertex2f(x, 150);
}
//draw the horizontal lines
for (int y=-150; y<=150; y+=10) {
gl.glVertex2f(-250, y);
gl.glVertex2f(250, y);
}
gl.glEnd();
gl.glFlush();
//////////////////////////////
// draw the x-axis and y-axis
red = 0.0f;
green = 0.2f;
blue = 0.4f;
gl.glColor3f(red, green, blue);
gl.glBegin(GL.GL_LINES);
//line for y-axis
gl.glVertex2d(0, 140);
gl.glVertex2d(0, -140);
//line for x-axis
gl.glVertex2d(240, 0);
gl.glVertex2d(-240, 0);
gl.glEnd();
gl.glFlush();
/////////////////////
// draw arrow heads
gl.glBegin(GL.GL_TRIANGLES);
gl.glVertex2d( 0, 150);
gl.glVertex2d(-5, 140);
gl.glVertex2d( 5, 140);
gl.glVertex2d( 0, -150);
gl.glVertex2d(-5, -140);
gl.glVertex2d( 5, -140);
gl.glVertex2d(250, 0);
gl.glVertex2d(240,-5);
gl.glVertex2d(240, 5);
gl.glVertex2d(-250, 0);
gl.glVertex2d(-240,-5);
gl.glVertex2d(-240, 5);
gl.glEnd();
gl.glFlush();
}
@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();
}
@Override
public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3,
int arg4)
{
}
}