@@ -0,0 +1,1262 @@
+package org.team2471.frc.lib.vector;%0A%0Apublic class Vector2 %7B%0A  public final double x;%0A  public final double y;%0A%0A  public Vector2(double x, double y) %7B%0A    this.x = x;%0A    this.y = y;%0A  %7D%0A%0A  public static Vector2 add(Vector2 firstVector, Vector2 secondVector) %7B%0A    return new Vector2(firstVector.x + secondVector.x, firstVector.y + secondVector.y);%0A  %7D%0A%0A  public static Vector2 subtract(Vector2 firstVector, Vector2 secondVector) %7B%0A    return new Vector2(firstVector.x - secondVector.x, firstVector.y - secondVector.y);%0A  %7D%0A%0A  public static Vector2 multiply(Vector2 firstVector, double factor) %7B%0A    return new Vector2(firstVector.x * factor, firstVector.y * factor);%0A  %7D%0A%0A  public static Vector2 divide(Vector2 firstVector, double quotient) %7B%0A    return new Vector2(firstVector.x / quotient, firstVector.y / quotient);%0A  %7D%0A  public static Vector2 perpendicular(Vector2 vector) %7B%0A    return new Vector2(vector.y, -vector.x);%0A  %7D%0A%0A  public static double length(Vector2 vector) %7B%0A    return Math.sqrt(vector.x * vector.x + vector.y * vector.y);%0A  %7D%0A%0A  public static double angle(Vector2 vector) %7B%0A    return Math.atan2(vector.x, vector.y);%0A  %7D%0A%0A  public static Vector2 normalize(Vector2 vector) %7B%0A    return divide(vector, length(vector));%0A  %7D%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%7D%0A

Add vector utility class