//Wall.java
//Written by Jyoti Sin

import javax.media.j3d.*;
import javax.vecmath.*;
import java.io.*;

public class Wall extends Shape3D {

  public static float y1 = 0.0f;
  public static float y2 = 1.0f;

  private  Appearance app = null;

  public Wall(float x1, float y1, float x2, float y2, Appearance app){
    this.app = app;
    createWall(x1, y1, x2, y2);
  }

  private void createWall(float x1, float z1, float x2, float z2){
    QuadArray wall = new QuadArray(4, QuadArray.COORDINATES|QuadArray.NORMALS |QuadArray.TEXTURE_COORDINATE_2);

    Point3d verts[] = new Point3d[4];

    // front face
    verts[0] = new Point3d(x1, y1, z1);
    verts[1] = new Point3d(x2, y1, z2);
    verts[2] = new Point3d(x2, y2, z2);
    verts[3] = new Point3d(x1, y2, z1);

    Vector3f  norms[] = {
      new Vector3f( 0.0f,  0.0f,  1.0f),        //  Front
      new Vector3f( 0.0f,  0.0f,  1.0f),
      new Vector3f( 0.0f,  0.0f,  1.0f),
      new Vector3f( 0.0f,  0.0f,  1.0f),
    };

    float[] tcoords = {
     // front
	  1.0f, 0.0f,
	  1.0f, 1.0f,
	  0.0f, 1.0f,
	  0.0f, 0.0f,
    };

    wall.setCoordinates(0, verts);
    wall.setTextureCoordinates(0,tcoords);
    wall.setNormals(0,norms);
    setGeometry(wall);
    setAppearance(app);

  }

}//end of class Wall
