public static Vector3D Normalized(Vector3D a) { return a*(1/a.Length()); }
public static double Project(Vector3D a,Vector3D b){ b=Normalized(b); return Dot(a,b); }
public static double Dot(Vector3D a, Vector3D b) { return a.x*b.x+a.y*b.y+a.z*b.z; }