import numpy as np from pydantic import BaseModel, ConfigDict from ..core.gps_point import GPSPoint from ..chunks.sim3_transform import Sim3Transform class AlignmentResult(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) matched: bool homography: np.ndarray gps_center: GPSPoint confidence: float inlier_count: int total_correspondences: int reprojection_error: float = 0.0 class ChunkAlignmentResult(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) matched: bool chunk_id: str chunk_center_gps: GPSPoint rotation_angle: float confidence: float inlier_count: int transform: Sim3Transform reprojection_error: float = 0.0