/*
 * Author: Paul Koshevoy
 * v4x1.java  Sat, Jan 17 1998, 15:30:00 1998
 */

public class v4x1
{
public double v[];

public v4x1(v3x1 vec)
    {
	v = new double[4];
	v[0] = vec.x;
	v[1] = vec.y;
	v[2] = vec.z;
	v[3] = 1;
    }

public v4x1(v4x1 vec)
    {
	v = new double[4];
	v[0] = vec.v[0];
	v[1] = vec.v[1];
	v[2] = vec.v[2];
	v[3] = vec.v[3];
    }

public v4x1(double[] vec)
    {
	v = vec;
    }

public v4x1(double x, double y, double z)
    {
	v = new double[4];
	v[0] = x;
	v[1] = y;
	v[2] = z;
	v[3] = 1;
    }

public v4x1(double x, double y, double z, double h)
    {
	v = new double[4];
	v[0] = x;
	v[1] = y;
	v[2] = z;
	v[3] = h;
    }

public boolean equals(v4x1 a)
    {
	if((v[0]==a.v[0]) && (v[1]==a.v[1]) && (v[2]==a.v[2]) && (v[3]==a.v[3]))
	    return true;
	return false;
    }

public static v4x1 homogenize(v4x1 a)
    {
	double[] vec = new double[4];
	vec[0] = a.v[0]/a.v[3];
	vec[1] = a.v[1]/a.v[3];
	vec[2] = a.v[2]/a.v[3];
	vec[3] = 1;
	return (new v4x1(vec));
    }

public void dump(String s)
    {
	System.out.println(s+"["+v[0]+" "+v[1]+" "+v[2]+" "+v[3]+"]");
    }
}

