

public class PointInt
{
    public static final int DIMENSIONS = 3;
    public static final int X = 0;
    public static final int Y = 1;
    public static final int Z = 2;

    int[] coordinates = new int[DIMENSIONS];
    
    public PointInt(int x, int y)
    {
	coordinates[X] = x;
	coordinates[Y] = y;
    }

    public PointInt(int x, int y, int z)
    {
	coordinates[X] = x;
	coordinates[Y] = y;
	coordinates[Z] = z;
    }
    public int x()
    {
	return coordinates[X];
    }
    public int y()
    {
	return coordinates[Y];
    }
    public int z()
    {
	return coordinates[Z];
    }
    public void setx(int x)
    {
	coordinates[X] = x;
    }
    public void sety(int y)
    {
	coordinates[Y] = y;
    }
    public void setz(int z)
    {
	coordinates[Z] = z;
    }

    public static void swap(PointInt p1, PointInt p2)
    {
	int tmp;
	tmp = p1.x(); p1.setx(p2.x()); p2.setx(tmp);
	tmp = p1.y(); p1.sety(p2.y()); p2.sety(tmp);
    }
    public static void xy_swap(PointInt p)
    {
	int tmp;
	tmp = p.x(); 
	p.setx(p.y()); 
	p.sety(tmp);
    }

}
