VisClient/org/dronus/gl/GLBoxRenderer.java

Go to the documentation of this file.
00001 /*
00002  * Created on 28.02.2005
00003  *
00004  */
00005 package org.dronus.gl;
00006 
00007 import org.lwjgl.opengl.GL11;
00008 import org.lwjgl.util.vector.Vector3f;
00009 
00017 public class GLBoxRenderer {
00018         static public void renderBox(float w, float h, float l) {
00019                 GL11.glPushMatrix();
00020                 GL11.glScalef(w / 2, h / 2, l / 2);
00021                 // GL11.glCallList(dl_cube);
00022                 genCube();
00023                 GL11.glPopMatrix();
00024         }
00025 
00026         
00027         static public void renderBox(Vector3f at,float w, float h, float l) {
00028                 GL11.glPushMatrix();
00029                 GL11.glTranslatef(at.x,at.y,at.z);
00030                 
00031                 GL11.glScalef(w / 2, h / 2, l / 2);
00032                 
00033                 genCube();
00034                 GL11.glPopMatrix();
00035         }
00036  
00037         static public void renderFrame(float w, float h, float l) {
00038                 GL11.glPushMatrix();
00039                 GL11.glScalef(w / 2, h / 2, l / 2);
00040                 genFrame();
00041                 GL11.glPopMatrix();
00042         }
00043 
00044         static void genCube() {
00045                 GL11.glBegin(GL11.GL_QUADS);
00046 //              front
00047                 GL11.glNormal3f(0.0f, 0.0f, -1.0f);
00048                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
00049                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
00050                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(1.0f, 1.0f, -1.0f);
00051                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(1.0f, -1.0f, -1.0f);
00052 
00053                 
00054                 GL11.glNormal3f(0.0f, 1.0f, 0.0f);
00055                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
00056                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
00057                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(1.0f, 1.0f, 1.0f);              
00058                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(1.0f, 1.0f, -1.0f);
00059                 
00060                 GL11.glNormal3f(0.0f, -1.0f, 0.0f);
00061                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(-1.0f, -1.0f, -1.0f);           
00062                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(1.0f, -1.0f, -1.0f);
00063                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(1.0f, -1.0f, 1.0f);             
00064                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
00065                         
00066                 GL11.glNormal3f(1.0f, 0.0f, 0.0f);
00067                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(1.0f, -1.0f, -1.0f);            
00068                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(1.0f, 1.0f, -1.0f);
00069                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(1.0f, 1.0f, 1.0f);
00070                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(1.0f, -1.0f, 1.0f);             
00071                 
00072                 GL11.glNormal3f(-1.0f, 0.0f, 0.0f);
00073                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
00074                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
00075                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
00076                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
00077 
00078                 //back
00079                 GL11.glNormal3f(0.0f, 0.0f, 1.0f);
00080                 GL11.glTexCoord2f(0.0f, 0.0f);          GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
00081                 GL11.glTexCoord2f(1.0f, 0.0f);          GL11.glVertex3f(1.0f, -1.0f, 1.0f);             
00082                 GL11.glTexCoord2f(1.0f, 1.0f);          GL11.glVertex3f(1.0f, 1.0f, 1.0f);
00083                 GL11.glTexCoord2f(0.0f, 1.0f);          GL11.glVertex3f(-1.0f, 1.0f, 1.0f);
00084         
00085                                 
00086                 GL11.glEnd();
00087         }
00088 
00089 
00090         
00091         
00092         static void genFrame() {
00093                 GL11.glBegin(GL11.GL_LINE_LOOP);        
00094                 GL11.glNormal3f(0.0f, 0.0f, 1.0f);
00095                 GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
00096                 GL11.glVertex3f(1.0f, -1.0f, 1.0f);
00097                 GL11.glVertex3f(1.0f, 1.0f, 1.0f);
00098                 GL11.glVertex3f(-1.0f, 1.0f, 1.0f);             
00099                 GL11.glEnd();
00100                 
00101                 GL11.glBegin(GL11.GL_LINE_LOOP);
00102                 GL11.glNormal3f(0.0f, 0.0f, -1.0f);
00103                 GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
00104                 GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
00105                 GL11.glVertex3f(1.0f, 1.0f, -1.0f);
00106                 GL11.glVertex3f(1.0f, -1.0f, -1.0f);
00107                 GL11.glEnd();
00108                 
00109                 
00110                 GL11.glBegin(GL11.GL_LINES);
00111                 
00112                 GL11.glVertex3f(-1.0f, -1.0f, 1.0f);
00113                 GL11.glVertex3f(-1.0f, -1.0f, -1.0f);
00114 
00115                 GL11.glVertex3f(1.0f, -1.0f, 1.0f);
00116                 GL11.glVertex3f(1.0f, -1.0f, -1.0f);
00117 
00118                 GL11.glVertex3f(1.0f, 1.0f, 1.0f);
00119                 GL11.glVertex3f(1.0f, 1.0f, -1.0f);
00120 
00121                 GL11.glVertex3f(-1.0f, 1.0f, 1.0f);                             
00122                 GL11.glVertex3f(-1.0f, 1.0f, -1.0f);
00123 
00124                 GL11.glEnd();
00125         }
00126 
00127 
00128         public static void renderColoredBox(float w, float h, float l, float r, float g, float b){
00129                 GL11.glDisable(GL11.GL_TEXTURE_2D);
00130                 GL11.glEnable(GL11.GL_LIGHTING);
00131                 GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, Buffers.f4(r,g,b,1));
00132                 GL11.glMaterialf(GL11.GL_FRONT, GL11.GL_SHININESS, 10);
00133                 GL11.glMaterial(GL11.GL_FRONT, GL11.GL_SPECULAR, Buffers.f4(1,1,1,1));
00134                 renderBox(w,h,l);               
00135                 GL11.glDisable(GL11.GL_LIGHTING);
00136         }
00137 }

Generated on Tue Apr 7 17:57:19 2009 for visclient by  doxygen 1.5.1