00001
00002
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
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
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
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 }