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)