/*
 * Created on Feb 8, 2005
 *
 */

/**
 * @author knorton
 */
public class Vector2D {
    public	float i,j;
    
    public Vector2D() {
        this.i=0f;
        this.j=0f;
    }
    
    public Vector2D(float i, float j) {
        this.i = i;
        this.j = j;
    }
    
    public float getLength() {
        return (float)Math.sqrt(i*i + j*j);
    }
    
    public void normalize() {
        float l = getLength();
        i /= l;
        j /= l;
    }
    
    public void scale(float s) {
        i *= s;
        j *= s;
    }
    
    public void scale(float si, float sj) {
        i *= si;
        j *= sj;
    }
    
    public void translate(float di, float dj) {
        i += di;
        j += dj;
    }
    
    public void add(Vector2D v) {
    		i += v.i;
    		j += v.j;
    }
    
    public void set(float i,float j) {
    		this.i = i;
    		this.j = j;
    }
    
    public static float dotProduct(Vector2D v1, Vector2D v2) {
        return v1.i*v2.i + v1.j*v2.j;
    }
    
    public static Vector2D crossProduct(Vector2D v1, Vector2D v2) {
        return new Vector2D(v1.i*v2.i,v2.j*v2.j);
    }
    
    public String toString() {
        return "("+i+","+j+")";
    }
}
