public static void render(
    float scale,
    float rotation,
    Vec3D offset,
    FloatBuffer vertBuffer,
    FloatBuffer normBuffer,
    FloatBuffer textBuffer,
    int numFacets
  ) {
    GL11.glMatrixMode(GL11.GL_MODELVIEW) ;
    GL11.glLoadIdentity() ;
    if (numFacets < 1) numFacets = vertBuffer.capacity() / VFP ;
    if (offset != null) GL11.glTranslatef(offset.x, offset.y, offset.z) ;
    else GL11.glTranslatef(0, 0, 0) ;
    GL11.glRotatef(rotation, 0, 0, 1) ;
    GL11.glScalef(scale, scale, scale) ;
    //
    //  Only set the texture buffer if one has been provided:
    if (textBuffer == null) {
      GL11.glDisable(GL11.GL_TEXTURE_2D) ;
      GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY) ;
    }
    else {
      GL11.glEnable(GL11.GL_TEXTURE_2D) ;
      GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY) ;
      GL11.glTexCoordPointer(2, 0, textBuffer) ;
    }
    //
    //  And only set the normal buffer if one has been provided:
    if (normBuffer == null) GL11.glDisableClientState(GL11.GL_NORMAL_ARRAY) ;
    else {
      GL11.glEnableClientState(GL11.GL_NORMAL_ARRAY) ;
      GL11.glNormalPointer(0, normBuffer) ;
    }
    //
    //  Bind the vertex buffer and render-
    GL11.glVertexPointer(3, 0, vertBuffer) ;
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, numFacets * 3) ;
  }