public double DistanceTo(Double3 o) => (o - this).Length;
public Double3 Cross(Double3 o) => new Double3(Y * o.Z - Z * o.Y, Z * o.X - X * o.Z, X * o.Y - Y * o.X);
public double DistanceSquaredTo(Double3 o) => (o - this).LengthSquared;
public double Dot(Double3 o) => X * o.X + Y * o.Y + Z * o.Z;