Example usage for org.lwjgl.opengl GL11 glNormal3d

List of usage examples for org.lwjgl.opengl GL11 glNormal3d

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL11 glNormal3d.

Prototype

public static native void glNormal3d(@NativeType("GLdouble") double nx, @NativeType("GLdouble") double ny,
        @NativeType("GLdouble") double nz);

Source Link

Document

Double version of #glNormal3f Normal3f .

Usage

From source file:buildcraftAdditions.client.render.entities.EntityLaserShotRenderer.java

License:GNU General Public License

private void doRender(EntityLaserShot entity, double x, double y, double z, float rotation,
        float partialTicks) {
    bindEntityTexture(entity);/*from   ww w  .  j  av a 2s.  com*/
    GL11.glPushMatrix();
    float strength = entity.getStrength();
    if (strength >= 1)
        GL11.glColor3f(1, 0, 0);
    else if (strength > 0.75)
        GL11.glColor3f(0.75F, 0, 0.25F);
    else if (strength > 0.6)
        GL11.glColor3f(0.5F, 0, 0.5F);
    else if (strength > 0.35)
        GL11.glColor3f(0.25F, 0, 0.75F);
    else
        GL11.glColor3f(0, 0, 1);
    GL11.glTranslated(x, y, z);
    GL11.glRotatef(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * partialTicks - 90,
            0, 1, 0);
    GL11.glRotatef(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks,
            0, 0, 1);
    Tessellator t = Tessellator.instance;
    double d1 = 0;
    double d2 = 0.5;
    double d3 = 0 / 32D;
    double d4 = 5 / 32D;
    double d5 = 0.05625;
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);

    float f1 = entity.throwableShake - partialTicks;
    if (f1 > 0) {
        float f2 = -MathHelper.sin(f1 * 3) * f1;
        GL11.glRotatef(f2, 0, 0, 1);
    }

    GL11.glRotatef(45, 1, 0, 0);
    GL11.glScaled(d5, d5, d5);
    GL11.glTranslatef(-4, 0, 0);
    for (int i = 0; i < 4; i++) {
        GL11.glRotatef(90, 1, 0, 0);
        GL11.glNormal3d(0, 0, d5);
        t.startDrawingQuads();
        t.addVertexWithUV(-8, -2, 0, d1, d3);
        t.addVertexWithUV(8, -2, 0, d2, d3);
        t.addVertexWithUV(8, 2, 0, d2, d4);
        t.addVertexWithUV(-8, 2, 0, d1, d4);
        t.draw();
    }

    GL11.glDisable(GL12.GL_RESCALE_NORMAL);
    GL11.glPopMatrix();
}

From source file:com.aelitis.azureus.plugins.view3d.ViewTest2.java

License:Open Source License

static void drawTorus(float r, float R, int nsides, int rings) {
    double ringDelta = 2.0f * (double) Math.PI / rings;
    double sideDelta = 2.0f * (double) Math.PI / nsides;
    double theta = 0.0f, cosTheta = 1.0f, sinTheta = 0.0f;
    for (int i = rings - 1; i >= 0; i--) {
        double theta1 = theta + ringDelta;
        double cosTheta1 = (double) Math.cos(theta1);
        double sinTheta1 = (double) Math.sin(theta1);
        GL11.glBegin(GL11.GL_QUAD_STRIP);
        float phi = 0.0f;
        for (int j = nsides; j >= 0; j--) {
            phi += sideDelta;//from   w w  w . ja v a 2s  .  co  m
            double cosPhi = (double) Math.cos(phi);
            double sinPhi = (double) Math.sin(phi);
            double dist = R + r * cosPhi;
            GL11.glNormal3d(cosTheta1 * cosPhi, -sinTheta1 * cosPhi, sinPhi);
            GL11.glVertex3d(cosTheta1 * dist, -sinTheta1 * dist, r * sinPhi);
            GL11.glNormal3d(cosTheta * cosPhi, -sinTheta * cosPhi, sinPhi);
            GL11.glVertex3d(cosTheta * dist, -sinTheta * dist, r * sinPhi);
        }
        GL11.glEnd();
        theta = theta1;
        cosTheta = cosTheta1;
        sinTheta = sinTheta1;
    }
}

From source file:com.bluepowermod.client.render.RenderHelper.java

License:Open Source License

public static void renderButton(double x, double y, double z, String res, String resSide) {

    GL11.glPushMatrix();//from   w  ww .  j  a  va  2  s.co  m
    {
        GL11.glTranslated(x, y, z);

        GL11.glPushMatrix();
        {
            GL11.glTranslated(6 / 16D, 2 / 16D, 8 / 16D);
            Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(resSide));
            for (int i = 0; i < 4; i++) {
                GL11.glTranslated(2 / 16D, 0, 2 / 16D);
                GL11.glRotated(90, 0, 1, 0);
                GL11.glTranslated(-2 / 16D, 0, -2 / 16D);
                GL11.glBegin(GL11.GL_QUADS);
                {
                    GL11.glNormal3d(1, 0, 0);
                    addVertexWithTexture(0, 0, 0, 0, 0);
                    addVertexWithTexture(0, 1 / 16D, 0, 0, 1);
                    addVertexWithTexture(4 / 16D, 1 / 16D, 0, 1, 1);
                    addVertexWithTexture(4 / 16D, 0, 0, 1, 0);
                }
                GL11.glEnd();
            }
        }
        GL11.glPopMatrix();

        GL11.glTranslated(0, 1 / 16D, 0 / 16D);

        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(res));
        Tessellator t = Tessellator.instance;

        y = 2 / 16D;

        t.startDrawingQuads();
        t.setNormal(0, 1, 0);
        {
            t.addVertexWithUV(0, y, 0, 1, 1);
            t.addVertexWithUV(0, y, 1, 1, 0);
            t.addVertexWithUV(1, y, 1, 0, 0);
            t.addVertexWithUV(1, y, 0, 0, 1);
        }
        t.draw();
    }
    GL11.glPopMatrix();
}

From source file:com.bluepowermod.client.render.RenderHelper.java

License:Open Source License

/**
 * @author amadornes/*from ww  w  . j av  a  2  s  . c o m*/
 * @param x
 * @param y
 * @param z
 * @param angle
 */
public static void renderPointer(double x, double y, double z, double angle) {

    GL11.glPushMatrix();
    {
        GL11.glTranslated(x, y, z);

        GL11.glTranslated(0.5, 0.5, 0.5);
        GL11.glRotated(180 + 360 * -angle, 0, 1, 0);
        GL11.glTranslated(-0.5, -0.5, -0.5);

        Minecraft.getMinecraft().renderEngine
                .bindTexture(new ResourceLocation("minecraft:textures/blocks/stone.png"));

        GL11.glBegin(GL11.GL_QUADS);
        {
            GL11.glNormal3d(0, -1, 0);
            // Bottom
            addVertexWithTexture(0.5, 0, 2D / 16D, 0.5, 1D / 16D);
            addVertexWithTexture(0.5 + 1D / 8D, 0, 0.5, 0.5 + 1D / 8D, 0.5);
            addVertexWithTexture(0.5, 0, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            addVertexWithTexture(0.5 - 1D / 8D, 0, 0.5, 0.5 - 1D / 8D, 0.5);
            GL11.glNormal3d(0, 1, 0);
            // Top
            addVertexWithTexture(0.5, 1D / 16D, 2D / 16D, 0.5, 1D / 16D);
            addVertexWithTexture(0.5 - 1D / 8D, 1D / 16D, 0.5, 0.5 - 1D / 8D, 0.5);
            addVertexWithTexture(0.5, 1D / 16D, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            addVertexWithTexture(0.5 + 1D / 8D, 1D / 16D, 0.5, 0.5 + 1D / 8D, 0.5);
            GL11.glNormal3d(1, 0, 0);
            // Side 1
            addVertexWithTexture(0.5, 1D / 16D, 2D / 16D, 0.5, 1D / 16D);
            addVertexWithTexture(0.5, 0, 2D / 16D, 0.5, 1D / 16D);
            addVertexWithTexture(0.5 - 1D / 8D, 0, 0.5, 0.5 - 1D / 8D, 0.5);
            addVertexWithTexture(0.5 - 1D / 8D, 1D / 16D, 0.5, 0.5 - 1D / 8D, 0.5);
            // Side 2
            addVertexWithTexture(0.5 - 1D / 8D, 1D / 16D, 0.5, 0.5 - 1D / 8D, 0.5);
            addVertexWithTexture(0.5 - 1D / 8D, 0, 0.5, 0.5 - 1D / 8D, 0.5);
            addVertexWithTexture(0.5, 0, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            addVertexWithTexture(0.5, 1D / 16D, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            GL11.glNormal3d(-1, 0, 0);
            // Side 3
            addVertexWithTexture(0.5, 1D / 16D, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            addVertexWithTexture(0.5, 0, 0.5 + 1D / 8D, 0.5, 0.5 + 1D / 8D);
            addVertexWithTexture(0.5 + 1D / 8D, 0, 0.5, 0.5 + 1D / 8D, 0.5);
            addVertexWithTexture(0.5 + 1D / 8D, 1D / 16D, 0.5, 0.5 + 1D / 8D, 0.5);
            // Side 4
            addVertexWithTexture(0.5 + 1D / 8D, 1D / 16D, 0.5, 0.5 + 1D / 8D, 0.5);
            addVertexWithTexture(0.5 + 1D / 8D, 0, 0.5, 0.5 + 1D / 8D, 0.5);
            addVertexWithTexture(0.5, 0, 2D / 16D, 0.5, 1D / 16D);
            addVertexWithTexture(0.5, 1D / 16D, 2D / 16D, 0.5, 1D / 16D);
        }
        GL11.glEnd();

    }
    GL11.glPopMatrix();

}

From source file:com.bluepowermod.client.render.RenderHelper.java

License:Open Source License

/**
 * Draws a colored cube with the size of vector. Every face has a different color This uses OpenGL
 *
 * @author Koen Beckers (K4Unl)/*  www . j a  v a 2s. c o m*/
 * @param vector
 */
public static void drawColoredCube(Vec3dCube vector) {

    // Top side
    GL11.glColor3f(1.0F, 0.0F, 0.0F);
    GL11.glNormal3d(0, 1, 0);
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());

    // Bottom side
    GL11.glColor3f(1.0F, 1.0F, 0.0F);
    GL11.glNormal3d(0, -1, 0);
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());

    // Draw west side:
    GL11.glColor3f(0.0F, 1.0F, 0.0F);
    GL11.glNormal3d(-1, 0, 0);
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());

    // Draw east side:
    GL11.glColor3f(0.0F, 1.0F, 1.0F);
    GL11.glNormal3d(1, 0, 0);
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());

    // Draw north side
    GL11.glColor3f(0.0F, 0.0F, 1.0F);
    GL11.glNormal3d(0, 0, -1);
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());

    // Draw south side
    GL11.glColor3f(0.0F, 0.0F, 0.0F);
    GL11.glNormal3d(0, 0, 1);
    addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
    addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());
    addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
    addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
}

From source file:com.bluepowermod.client.render.RenderHelper.java

License:Open Source License

/**
 * Draws a colored cube with the size of vector. All faces have the specified color. This uses OpenGL
 *
 * @author Koen Beckers (K4Unl) and Amadornes
 * @param vector//ww  w. ja v a2 s .co  m
 * @param color
 */
public static void drawColoredCube(Vec3dCube vector, double r, double g, double b, double a,
        boolean... renderFaces) {

    GL11.glColor4d(r, g, b, a);

    // Top side
    if (renderFaces.length < 1 || renderFaces[0]) {
        GL11.glNormal3d(0, 1, 0);
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());
    }

    // Bottom side
    if (renderFaces.length < 2 || renderFaces[1]) {
        GL11.glNormal3d(0, -1, 0);
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());
    }

    // Draw west side:
    if (renderFaces.length < 3 || renderFaces[2]) {
        GL11.glNormal3d(-1, 0, 0);
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());
    }

    // Draw east side:
    if (renderFaces.length < 4 || renderFaces[3]) {
        GL11.glNormal3d(1, 0, 0);
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());
    }

    // Draw north side
    if (renderFaces.length < 5 || renderFaces[4]) {
        GL11.glNormal3d(0, 0, -1);
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMinZ());
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMinZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMinZ());
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMinZ());
    }

    // Draw south side
    if (renderFaces.length < 6 || renderFaces[5]) {
        GL11.glNormal3d(0, 0, 1);
        addVertex(vector.getMinX(), vector.getMinY(), vector.getMaxZ());
        addVertex(vector.getMaxX(), vector.getMinY(), vector.getMaxZ());
        addVertex(vector.getMaxX(), vector.getMaxY(), vector.getMaxZ());
        addVertex(vector.getMinX(), vector.getMaxY(), vector.getMaxZ());
    }

    GL11.glColor4d(1, 1, 1, 1);
}

From source file:com.bluepowermod.part.gate.ic.IntegratedCircuit.java

License:Open Source License

@Override
@SideOnly(Side.CLIENT)//  ww w  . ja  v  a 2  s .c  o  m
protected void renderTop(float frame) {

    renderTop("front", front());
    renderTop("left", left());
    renderTop("back", back());
    renderTop("right", right());
    Vec3d loc = new Vec3d(0, 0, 0);

    RenderHelper rh = RenderHelper.instance;
    rh.reset();
    RenderBlocks rb = RenderBlocks.getInstance();

    GL11.glPushMatrix();
    {
        GL11.glTranslated(0, 2 / 16D - 1 / 16D * (1.0 / getCircuitWidth()), 0);
        GL11.glNormal3d(0, 1, 0);
        int size = getCircuitWidth();
        double textureMaxUV = 0.5 * size;

        Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(
                Refs.MODID + ":textures/blocks/gates/" + getTextureName() + "/checkerboard.png"));
        GL11.glBegin(GL11.GL_QUADS);
        {
            com.bluepowermod.client.render.RenderHelper.addVertexWithTexture(BORDER_WIDTH, 0, BORDER_WIDTH, 0,
                    0);
            com.bluepowermod.client.render.RenderHelper.addVertexWithTexture(BORDER_WIDTH, 0, 1 - BORDER_WIDTH,
                    0, textureMaxUV);
            com.bluepowermod.client.render.RenderHelper.addVertexWithTexture(1 - BORDER_WIDTH, 0,
                    1 - BORDER_WIDTH, textureMaxUV, textureMaxUV);
            com.bluepowermod.client.render.RenderHelper.addVertexWithTexture(1 - BORDER_WIDTH, 0, BORDER_WIDTH,
                    textureMaxUV, 0);
        }
        GL11.glEnd();
    }
    GL11.glPopMatrix();

    GL11.glPushMatrix();
    {
        GL11.glTranslated(BORDER_WIDTH, 2 / 16D + 0.001D, BORDER_WIDTH);
        GL11.glScaled((1 - 2 * BORDER_WIDTH) / 1, 1, (1 - 2 * BORDER_WIDTH) / 1);

        GL11.glScaled(1.0 / getCircuitWidth(), 1.0 / getCircuitWidth(), 1.0 / getCircuitWidth());
        GL11.glTranslated(0, -2 / 16D, 0);
        for (GateBase[] gateArray : gates) {
            GL11.glPushMatrix();
            for (GateBase gate : gateArray) {
                if (gate != null) {
                    GL11.glPushMatrix();
                    gate.renderDynamic(loc, frame, 0);
                    GL11.glPopMatrix();

                    if (!isRenderingItem) {
                        // Static renderer
                        GL11.glPushMatrix();
                        {
                            Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
                            Tessellator.instance.startDrawingQuads();
                            gate.renderStatic(new Vec3i(gate), rh, rb, 0);
                            Tessellator.instance.draw();
                        }
                        GL11.glPopMatrix();
                    }

                    rh.reset();
                }
                GL11.glTranslated(0, 0, 1);
            }
            GL11.glPopMatrix();
            GL11.glTranslated(1, 0, 0);
        }
    }
    GL11.glPopMatrix();
}

From source file:net.quetzi.bluepower.part.gate.GateBase.java

License:Open Source License

@Override
public final void renderDynamic(Vector3 loc, int pass, float frame) {

    GL11.glPushMatrix();/*  ww  w  . j  a v  a  2s  . co  m*/
    {
        super.rotateAndTranslateDynamic(loc, pass, frame);

        /* Top */
        renderTop(frame);

        Minecraft.getMinecraft().renderEngine
                .bindTexture(new ResourceLocation(Refs.MODID + ":textures/blocks/gates/bottom.png"));
        GL11.glBegin(GL11.GL_QUADS);
        /* Bottom */
        GL11.glNormal3d(0, -1, 0);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 0, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 1);
        GL11.glEnd();
        Minecraft.getMinecraft().renderEngine
                .bindTexture(new ResourceLocation(Refs.MODID + ":textures/blocks/gates/side.png"));
        GL11.glBegin(GL11.GL_QUADS);
        /* East */
        GL11.glNormal3d(1, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(1, 0, 1, 0, 1);
        /* West */
        GL11.glNormal3d(-1, 0, 0);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 0, 1, 0);
        /* North */
        GL11.glNormal3d(0, 0, -1);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 0, 1, 1);
        RenderHelper.addVertexWithTexture(1, 0, 0, 0, 1);
        /* South */
        GL11.glNormal3d(0, 0, 1);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 1, 0, 1);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 1, 1, 0);
        GL11.glEnd();
    }
    GL11.glPopMatrix();
}

From source file:net.quetzi.bluepower.part.gate.GateBase.java

License:Open Source License

public void renderTopTexture(String texture) {

    Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(texture));
    GL11.glBegin(GL11.GL_QUADS);// w  w  w  .  j a v  a2 s.  c om
    GL11.glNormal3d(0, 1, 0);
    RenderHelper.addVertexWithTexture(0, 1D / 8D, 0, 0, 0);
    RenderHelper.addVertexWithTexture(0, 1D / 8D, 1, 0, 1);
    RenderHelper.addVertexWithTexture(1, 1D / 8D, 1, 1, 1);
    RenderHelper.addVertexWithTexture(1, 1D / 8D, 0, 1, 0);
    GL11.glEnd();
}

From source file:net.quetzi.bluepower.part.gate.GateBase.java

License:Open Source License

@Override
public final void renderItem(ItemRenderType type, ItemStack item, Object... data) {

    GL11.glPushMatrix();//from   www  .  j av a  2  s. com
    {

        if (type == ItemRenderType.INVENTORY) {
            GL11.glTranslated(0, 0.5, 0);
            GL11.glRotated(-12, -1, 0, 1);
        }

        /* Top */
        renderTop();

        Minecraft.getMinecraft().renderEngine
                .bindTexture(new ResourceLocation(Refs.MODID + ":textures/blocks/gates/bottom.png"));
        GL11.glBegin(GL11.GL_QUADS);
        /* Bottom */
        GL11.glNormal3d(0, -1, 0);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 0, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 1);
        GL11.glEnd();
        Minecraft.getMinecraft().renderEngine
                .bindTexture(new ResourceLocation(Refs.MODID + ":textures/blocks/gates/side.png"));
        GL11.glBegin(GL11.GL_QUADS);
        /* East */
        GL11.glNormal3d(1, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(1, 0, 1, 0, 1);
        /* West */
        GL11.glNormal3d(-1, 0, 0);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 0, 1, 0);
        /* North */
        GL11.glNormal3d(0, 0, -1);
        RenderHelper.addVertexWithTexture(0, 0, 0, 0, 0);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 0, 1, 0);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 0, 1, 1);
        RenderHelper.addVertexWithTexture(1, 0, 0, 0, 1);
        /* South */
        GL11.glNormal3d(0, 0, 1);
        RenderHelper.addVertexWithTexture(0, 0, 1, 0, 0);
        RenderHelper.addVertexWithTexture(1, 0, 1, 0, 1);
        RenderHelper.addVertexWithTexture(1, 1D / 8D, 1, 1, 1);
        RenderHelper.addVertexWithTexture(0, 1D / 8D, 1, 1, 0);
        GL11.glEnd();
    }
    GL11.glPopMatrix();
}