import Point3D;

public class Normal {

  // variables

  public float x, y, z;

  // constructors

  public Normal(Point3D p) {
    float mag = (float) java.lang.Math.sqrt(p.x * p.x + p.y * p.y + p.z * p.z);
    x = p.x / mag;
    y = p.y / mag;
    z = p.z / mag;
  }

  public Normal(Point3D p1, Point3D p2, Point3D p3) {
    // devise "vectors"
    Point3D v1 = new Point3D(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z);
    Point3D v2 = new Point3D(p3.x - p1.x, p3.y - p1.y, p3.z - p1.z);
    // cross v1 and v2
    x = v1.y * v2.z - v1.z * v2.y;
    y = v1.z * v2.x - v1.x * v2.z;
    z = v1.x * v2.y - v1.y * v2.x;
    float mag = (float) java.lang.Math.sqrt(x * x + y * y + z * z);
    x = x / mag;
    y = y / mag;
    z = z / mag;
  }

}
    
