public double Dot(Vector vector) { return this.X * vector.X + this.Y * vector.Y + this.Z * vector.Z + this.W * vector.W; }