from __future__ import annotations from collections.abc import Sequence from typing import TYPE_CHECKING from ._core import ( Camera, CameraModel, TriangulationConfig, TriangulationOptions, CoreProposalDebug, FullProposalDebug, GroupingDebug, MergeDebug, PairCandidate, PreviousPoseFilterDebug, PreviousPoseMatch, ProposalGroupDebug, TriangulationTrace, build_pair_candidates, filter_pairs_with_previous_poses, make_camera, triangulate_debug, triangulate_poses, ) if TYPE_CHECKING: import numpy as np import numpy.typing as npt from ._helpers import CameraLike, PoseViewLike def convert_cameras(cameras: "Sequence[CameraLike]") -> list[Camera]: from ._helpers import convert_cameras as _convert_cameras return _convert_cameras(cameras) def pack_poses_2d( views: "Sequence[PoseViewLike]", *, joint_count: int | None = None ) -> "tuple[npt.NDArray[np.float32], npt.NDArray[np.uint32]]": from ._helpers import pack_poses_2d as _pack_poses_2d return _pack_poses_2d(views, joint_count=joint_count) def make_triangulation_config( cameras: "Sequence[CameraLike]", roomparams: "npt.NDArray[np.generic] | Sequence[Sequence[float]]", joint_names: "Sequence[str]", *, min_match_score: float = 0.95, min_group_size: int = 1, ) -> TriangulationConfig: from ._helpers import make_triangulation_config as _make_triangulation_config return _make_triangulation_config( cameras, roomparams, joint_names, min_match_score=min_match_score, min_group_size=min_group_size, ) __all__ = [ "Camera", "CameraModel", "TriangulationConfig", "TriangulationOptions", "CoreProposalDebug", "FullProposalDebug", "GroupingDebug", "MergeDebug", "PairCandidate", "PreviousPoseFilterDebug", "PreviousPoseMatch", "ProposalGroupDebug", "TriangulationTrace", "build_pair_candidates", "convert_cameras", "filter_pairs_with_previous_poses", "make_camera", "make_triangulation_config", "pack_poses_2d", "triangulate_debug", "triangulate_poses", ]