# LICENSE HEADER MANAGED BY add-license-header
#
# Copyright 2018 Kornia Team
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

"""Kornia Geometry Camera — Camera models and camera-related utilities for Kornia.

This subpackage provides camera models, distortion, and projection functions.
"""

from .distortion_affine import distort_points_affine, dx_distort_points_affine, undistort_points_affine
from .distortion_kannala_brandt import (
    distort_points_kannala_brandt,
    dx_distort_points_kannala_brandt,
    undistort_points_kannala_brandt,
)
from .perspective import project_points, unproject_points
from .pinhole import PinholeCamera, cam2pixel, pixel2cam
from .projection_orthographic import (
    dx_project_points_orthographic,
    project_points_orthographic,
    unproject_points_orthographic,
)
from .projection_z1 import dx_project_points_z1, project_points_z1, unproject_points_z1
from .stereo import StereoCamera

__all__ = [
    "PinholeCamera",
    "StereoCamera",
    "cam2pixel",
    "distort_points_affine",
    "distort_points_kannala_brandt",
    "dx_distort_points_affine",
    "dx_distort_points_kannala_brandt",
    "dx_project_points_orthographic",
    "dx_project_points_z1",
    "pixel2cam",
    "project_points",
    "project_points_orthographic",
    "project_points_z1",
    "undistort_points_affine",
    "undistort_points_kannala_brandt",
    "unproject_points",
    "unproject_points_orthographic",
    "unproject_points_z1",
]
