Source code for bairstow.vector2
[docs]class vector2:
__slots__ = ("_x", "_y")
def __init__(self, x, y):
"""[summary]
Args:
x ([type]): [description]
y ([type]): [description]
"""
self._x = x
self._y = y
@property
def x(self):
"""[summary]
Returns:
[type]: [description]
"""
return self._x
@property
def y(self):
"""[summary]
Returns:
[type]: [description]
"""
return self._y
[docs] def dot(self, rhs):
"""[summary]
Args:
rhs ([type]): [description]
Returns:
[type]: [description]
"""
return self._x * rhs._x + rhs._y * self._y
def __iadd__(self, rhs):
"""[summary]
Args:
rhs ([type]): [description]
Returns:
[type]: [description]
"""
self._x += rhs.x
self._y += rhs.y
return self
def __add__(self, rhs):
"""[summary]
Args:
rhs ([type]): [description]
Returns:
[type]: [description]
"""
return vector2(self.x + rhs.x, self.y + rhs.y)
def __isub__(self, rhs):
"""[summary]
Args:
rhs ([type]): [description]
Returns:
[type]: [description]
"""
self._x -= rhs.x
self._y -= rhs.y
return self
def __sub__(self, rhs):
"""[summary]
Args:
rhs ([type]): [description]
Returns:
[type]: [description]
"""
return vector2(self.x - rhs.x, self.y - rhs.y)
def __imul__(self, alpha: float):
"""[summary]
Args:
alpha (float): scalar
Returns:
[type]: [description]
"""
self._x *= alpha
self._y *= alpha
return self
def __mul__(self, alpha: float):
"""[summary]
Args:
alpha (float): scalar
Returns:
[type]: [description]
"""
return vector2(self.x * alpha, self.y * alpha)
def __itruediv__(self, alpha: float):
"""[summary]
Args:
alpha (float): scalar
Returns:
[type]: [description]
"""
self._x /= alpha
self._y /= alpha
return self
def __truediv__(self, alpha: float):
"""[summary]
Args:
alpha (float): scalar
Returns:
[type]: [description]
"""
return vector2(self.x / alpha, self.y / alpha)
def __str__(self):
"""[summary]
Returns:
[type]: [description]
"""
return "<{self.x}, {self.y}>".format(self=self)