30concept camera_model =
requires(
const Cam&
cam, Eigen::Matrix<typename Cam::Scalar, 3, 1> p3,
31 Eigen::Matrix<typename Cam::Scalar, 2, 1> p2) {
34 cam.template project<typename Cam::Scalar>(p3)
35 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
37 cam.template unproject<typename Cam::Scalar>(p2)
38 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
40 cam.template apply_intrinsics<typename Cam::Scalar>(p2)
41 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;
43 cam.template remove_intrinsics<typename Cam::Scalar>(p2)
44 } -> std::same_as<Eigen::Matrix<typename Cam::Scalar, 2, 1>>;