def get_projected_tl_tr_bl_br(self) -> tuple[tuple[float, float], tuple[float, float], tuple[float, float], tuple[float, float]]: tl = rotate((self._obj.pos[0], self._obj.pos[1]), (self._obj.pos[0] - 5, self._obj.pos[1] - 5), self.rotation) tr = rotate((self._obj.pos[0], self._obj.pos[1]), (self._obj.pos[0] + 5, self._obj.pos[1] - 5), self.rotation) bl = rotate((self._obj.pos[0], self._obj.pos[1]), (self._obj.pos[0] - 5, self._obj.pos[1] + 5), self.rotation) br = rotate((self._obj.pos[0], self._obj.pos[1]), (self._obj.pos[0] + 5, self._obj.pos[1] + 5), self.rotation) m = Matrix() tl = m.project(*tl, self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) tr = m.project(*tr, self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) bl = m.project(*bl, self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) br = m.project(*br, self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) return tl[0:2], tr[0:2], bl[0:2], br[0:2]
def get_projected_tl_br(self) -> tuple[tuple[float, float], tuple[float, float]]: m = Matrix() x, y, z = m.project(self._obj.pos[0] - 5, self._obj.pos[1] - 5, self._obj.pos[2] - 5, self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) x2, y2, z2 = m.project(self._obj.pos[0] + 5, self._obj.pos[1] + 5, self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) return (x, y), (x2, y2)
def get_projected_origin(self) -> tuple[int, int]: m = Matrix() x, y, z = m.project(self._obj.pos[0], self._obj.pos[1], self._obj.pos[2], self.parent.camera.model_matrix, self.parent.camera.projection_matrix, self.parent.camera.pos.x, self.parent.camera.pos.y, width(), height()) return x, y