def get_gradient_start_and_end_points(self): if self.shade_in_3d: return get_3d_vmob_gradient_start_and_end_points(self) else: direction = self.get_sheen_direction() c = self.get_center() bases = np.array([ self.get_edge_center(vect) - c for vect in [RIGHT, UP, OUT] ]).transpose() offset = np.dot(bases, direction) return (c - offset, c + offset)