public static void drawBufferedObject(BufferData bd)
        {
            GL2 gl = RobotPart.gl;
            gl.glEnableClientState(GL2.GL_VERTEX_ARRAY);
            gl.glEnableClientState(GL2.GL_NORMAL_ARRAY);
            if(bd.getTextureId() != -1)
                gl.glEnableClientState(GL2.GL_TEXTURE_COORD_ARRAY);
            gl.glBindBuffer(GL.GL_ARRAY_BUFFER, bd.getVertexId());
            gl.glVertexPointer(3, GL2.GL_FLOAT, 0, 0);
            gl.glBindBuffer(GL.GL_ELEMENT_ARRAY_BUFFER, bd.getElementId());
            gl.glBindBuffer(GL.GL_ARRAY_BUFFER, bd.getNormalId());
            gl.glNormalPointer(GL2.GL_FLOAT, 0, 0);
            if(bd.getTextureId() != -1)
            {
                gl.glBindBuffer(GL.GL_ARRAY_BUFFER, bd.getTextureId());
                // Implement 1D textures in BufferData
                gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, 0);
            }
            gl.glDrawElements(GL2.GL_QUADS, bd.getElementSize(), GL2.GL_UNSIGNED_SHORT, 0);
            gl.glDisableClientState(GL2.GL_VERTEX_ARRAY);
            gl.glDisableClientState(GL2.GL_NORMAL_ARRAY);
            gl.glBindBuffer(GL.GL_ARRAY_BUFFER, 0);
            gl.glBindBuffer(GL.GL_ELEMENT_ARRAY_BUFFER, 0);
        }