⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 joglboxrenderer.java

📁 基于java的3d开发库。对坐java3d的朋友有很大的帮助。
💻 JAVA
字号:
//===========================================================================//=-------------------------------------------------------------------------=//= Module history:                                                         =//= - March 20 2006 - Oscar Chavarro: Original base version                 =//===========================================================================package vsdk.toolkit.render.jogl;import javax.media.opengl.GL;import javax.media.opengl.glu.GLU;import javax.media.opengl.glu.GLUquadric;import com.sun.opengl.util.GLUT;import vsdk.toolkit.common.Vector3D;import vsdk.toolkit.common.RendererConfiguration;import vsdk.toolkit.environment.Camera;import vsdk.toolkit.environment.geometry.Box;public class JoglBoxRenderer extends JoglRenderer {    private static GLUT glut = null;    private static void drawSolidUnitCube(GL gl)    {        double l = 0.5;        gl.glBegin(gl.GL_QUADS);            // Down            gl.glNormal3d(0, 0, -1);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(-l, -l, -l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(-l, l, -l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(l, l, -l);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(l, -l, -l);            // Up            gl.glNormal3d(0, 0, 1);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(-l, -l, l);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(l, -l, l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(l, l, l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(-l, l, l);            // Front            gl.glNormal3d(0, -1, 0);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(-l, -l, l);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(-l, -l, -l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(l, -l, -l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(l, -l, l);            // Left            gl.glNormal3d(-1, 0, 0);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(-l, l, l);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(-l, l, -l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(-l, -l, -l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(-l, -l, l);            // Back            gl.glNormal3d(0, 1, 0);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(l, l, l);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(l, l, -l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(-l, l, -l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(-l, l, l);            // Right            gl.glNormal3d(1, 0, 0);            gl.glTexCoord2d(0, 1);            gl.glVertex3d(l, -l, l);            gl.glTexCoord2d(0, 0);            gl.glVertex3d(l, -l, -l);            gl.glTexCoord2d(1, 0);            gl.glVertex3d(l, l, -l);            gl.glTexCoord2d(1, 1);            gl.glVertex3d(l, l, l);        gl.glEnd();    }    /**    Generate OpenGL/JOGL primitives needed for the rendering of recieved    Geometry object.    */    public static void draw(GL gl, Box box, Camera c, RendererConfiguration q)    {        if (glut == null) {            glut = new GLUT();        }        Vector3D size = box.getSize();        gl.glPushMatrix();        gl.glEnable(gl.GL_NORMALIZE);        gl.glScaled(size.x, size.y, size.z);        if ( q.isSurfacesSet() ) {            JoglGeometryRenderer.prepareSurfaceQuality(gl, q);            gl.glPolygonMode(gl.GL_FRONT_AND_BACK, gl.GL_FILL);            drawSolidUnitCube(gl);        }        if ( q.isWiresSet() ) {            gl.glLineWidth(1);            glut.glutWireCube(1);        }        gl.glPopMatrix();        if ( q.isBoundingVolumeSet() ) {            JoglGeometryRenderer.drawMinMaxBox(gl, box, q);        }        if ( q.isSelectionCornersSet() ) {            JoglGeometryRenderer.drawSelectionCorners(gl, box, q);        }    }}//===========================================================================//= EOF                                                                     =//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -