/*********************/
/*   Christine Tran  */
/*   Problem Set 4   */
/* Graphics Pipeline */
/*   Due: 11/23/98   */
/*********************/

public class Point3D {
    float x, y, z;

    public Point3D() {
    }

    public Point3D(float xval, float yval, float zval) {
        x = xval;
        y = yval;
        z = zval;
    }
    
    public Point3D(Point3D p) {
        copy(p);
    }
    
    public void copy(Point3D p) {
        x = p.x;
        y = p.y;
        z = p.z;
    }

  /**
   *  This method is added
   */
  public Point3D crossProduct(Point3D p)
  {
    // cross-product:
    //               |i   j   k  |
    //               |x   y   z  |
    //               |p.x p.y p.z|
    Point3D q = new Point3D();
    q.x = y * p.z - p.y * z;
    q.y = z * p.x - p.z * x;
    q.z = x * p.y - p.x * y;
    return q;
  }

}
