#!/usr/bin/env python3 # -*- coding: utf-8 -*- from .consts import CLOCKWISE from .qt5 import QtCore class Point(QtCore.QPoint): """ Point of coordinates (x, y) """ x = property(QtCore.QPoint.x, QtCore.QPoint.setX) y = property(QtCore.QPoint.y, QtCore.QPoint.setY) def rotate(self, center, direction=CLOCKWISE): """ Returns the Point image of the rotation of self through 90° CLOKWISE or COUNTERCLOCKWISE around center""" if self == center: return self p = self - center p = Point(-direction * p.y, direction * p.x) p += center return p def __add__(self, o): return Point(self.x + o.x, self.y + o.y) def __sub__(self, o): return Point(self.x - o.x, self.y - o.y) def __mul__(self, k): return Point(k * self.x, k * self.y) def __truediv__(self, k): return Point(self.x / k, self.y / k) __radd__ = __add__ __rsub__ = __sub__ __rmul__ = __mul__ __rtruediv__ = __truediv__ def __repr__(self): return "Point({}, {})".format(self.x, self.y) __str__ = __repr__