def smooth(self): smoothed_triangles = [Polygon.copy(tr.points) for tr in self.triangles] for key, value in self.points_to_points.items(): if key in self.bound_points: continue new_point = Polygon.get_center(value) for i in self.points_to_triangles[key]: smoothed_triangles[i].replace_point(key, new_point) self.triangles = smoothed_triangles self.calculate_hashes() return self.triangles