from dataclasses import dataclass, field
from typing import List


# ===== Single Contour Segment =====
@dataclass
class ContourSegment:
    start_x: float
    start_y: float
    end_x: float
    end_y: float

    @property
    def start(self):
        return (self.start_x, self.start_y)

    @property
    def end(self):
        return (self.end_x, self.end_y)


# ===== Contour Line =====
@dataclass
class ContourLine:
    level: float
    segments: List[ContourSegment] = field(default_factory=list)
