"""UV-based finger mesh unroll / flatten pipeline. Offline: Blender export -> build_or_load_domain -> unroll_map_uv.npz Runtime: live camera frame -> FrameUnwarper -> Sensor (with valid_mask) 3D display: UVDomain.surface.world_xyz """ from .domain import UVDomain from .mesh_uv import align_frame_to_uv_map, barycentric_grid, face_uvs_from_loop_data, uv_triangle_to_image from .precompute import ( build_or_load_domain, build_uv_domain, compute_uv_distortion_metrics, load_calib_json, load_exported_data, recommend_edge_expand, ) from .geometry import resolve_uv_runtime_sizes, scale_camera_geometry, scaled_map_cache_path from .remap import UVRemap, flatten_frame, remap_valid_ratio from .surface import UVSurfaceMap __all__ = [ "UVDomain", "UVRemap", "UVSurfaceMap", "align_frame_to_uv_map", "barycentric_grid", "build_or_load_domain", "build_uv_domain", "compute_uv_distortion_metrics", "face_uvs_from_loop_data", "flatten_frame", "load_calib_json", "load_exported_data", "recommend_edge_expand", "remap_valid_ratio", "resolve_uv_runtime_sizes", "scale_camera_geometry", "scaled_map_cache_path", "uv_triangle_to_image", ]