from vec import Vec2 class Path: def __init__(self, points: list[Vec2], extra_data: list): self.points: list[Vec2] = points self.extra_data = extra_data self.vecs: list[Vec2] = [] self._init_vecs() def _init_vecs(self) -> None: for i in range(1, len(self.points) - 1): pt1 = self.points[i-1] pt2 = self.points[i] pt3 = self.points[i+1] d1 = pt1 - pt2 d2 = pt3 - pt2 l1 = d1.mag l2 = d2.mag d1 = d1.normalized() d2 = d1.normalized() d = d1 + d2 d = d.normalized() if d2.cross(d) < 0: d = -d self.vecs.append(d)