How to texture map back of object

Hi, I'm trying to make an object that is essentially a playing card.  I've got the geometry figured out, as well as adding a texture to the "front" of the card, but I can't figure out how to map a seperate texture to the back of the card.



My Disc object (current texturing the face of the card, but not the backside)


public class Disc extends TriMesh
{
    public Disc(DisplaySystem display)
    {
        super("Temp");
       
        Vector3f[] vertexes={
            new Vector3f(0f,0f,0f),
            new Vector3f(0f,1f,0f),
            new Vector3f(0.5f,0.87f,0f),
            new Vector3f(0.87f,0.5f,0f),
            new Vector3f(1f,0f,0f),
            new Vector3f(0.87f,-0.5f,0f),
            new Vector3f(0.50f,-0.87f,0f),
            new Vector3f(0f,-1f,0f),
            new Vector3f(-0.5f,-0.87f,0f),
            new Vector3f(-0.87f,-0.5f,0f),
            new Vector3f(-1f,0f,0f),
            new Vector3f(-0.87f,0.5f,0f),
            new Vector3f(-0.5f,0.87f,0f)
        };
       
        Vector3f[] normals={
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1),
            new Vector3f(0,0,1)
        };
      
       
        ColorRGBA[] colors={
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1),
            new ColorRGBA(1,1,1,1)
        };
       
        Vector2f[] texCoords ={
            new Vector2f(0.5f,0.5f),
            new Vector2f(0.5f,1f),
            new Vector2f(0.75f,0.935f),
            new Vector2f(0.935f,0.75f),
            new Vector2f(1f,0.5f),
            new Vector2f(0.935f,0.25f),
            new Vector2f(0.75f,0.065f),
            new Vector2f(0.5f,0f),
            new Vector2f(0.25f,0.065f),
            new Vector2f(0.065f,0.25f),
            new Vector2f(0f,0.5f),
            new Vector2f(0.065f,0.75f),
            new Vector2f(0.25f,0.935f)
        };
       
        int[] indexes = {
            0,1,2,0,2,3,0,3,4,0,4,5,0,5,6,0,6,7,0,7,8,0,8,9,0,9,10,0,10,11,0,11,12,0,12,1
        };
       
        this.reconstruct(BufferUtils.createFloatBuffer(vertexes),BufferUtils.createFloatBuffer(normals),
                            BufferUtils.createFloatBuffer(colors),BufferUtils.createFloatBuffer(texCoords),
                            BufferUtils.createIntBuffer(indexes));
        this.setModelBound(new BoundingBox());
        this.updateModelBound();
        URL monkeyLoc;
        monkeyLoc=Main.class.getClassLoader().getResource("disc.png");
   // Get a TextureState
  TextureState ts=display.getRenderer().createTextureState();
  // Use the TextureManager to load a texture
  Texture t = TextureManager.loadTexture(monkeyLoc,
   Texture.MM_LINEAR,
   Texture.FM_LINEAR);
  // Assign the texture to the TextureState
  ts.setTexture(t);
  this.setRenderState(ts);
  this.setLocalScale(5f);
    }
}



What code to I need to add to do the backside.. do I need to add another set of vertices/normals/textureCoordinates?

Thanks in advance for your help!

Yes, you need more geometry to achieve this. This is because normals, colors, texture-coords, etc are assigned on a per-vertex way, not on a per-face way. This is the standard in 3D engines, too, since low-level 3D libraries (like OpenGL) natively store the geometry in this way.

do I need to add another set of vertices/normals/textureCoordinates?

Yes