public static int Dot(this Arrow left, Arrow right) { return((int)left.X.Multiply(right.X) + (int)left.Y.Multiply(right.Y) + (int)left.Z.Multiply(right.Z)); }
public static int Magnitude(this Arrow arrow) { return(arrow.Dot(arrow)); }
public static Arrow Scale(this Arrow arrow, Sign sign) { return(new Arrow(arrow.X.Multiply(sign), arrow.Y.Multiply(sign), arrow.Z.Multiply(sign))); }
public static Arrow Add(this Arrow left, Arrow right) { return(new Arrow(left.X.Add(right.X), left.Y.Add(right.Y), left.Z.Add(right.Z))); }
public static Arrow Negate(this Arrow arrow) { return(new Arrow(arrow.X.Negate(), arrow.Y.Negate(), arrow.Z.Negate())); }