// AUTOGENERATED FILE - DO NOT MODIFY!
// This file generated by Djinni from mynteye_types.djinni

#pragma once

#include "calibration_model.hpp"
#include <cstdint>
#include <utility>
#include <vector>

namespace mynteye_jni {

/** Stream intrinsics */
struct Intrinsics final {
    /** The calibration model */
    CalibrationModel calib_model;
    /** The width of the image in pixels */
    int32_t width;
    /** The height of the image in pixels */
    int32_t height;
    /** The focal length of the image plane, as a multiple of pixel width (pinhole) */
    double fx;
    /** The focal length of the image plane, as a multiple of pixel height (pinhole) */
    double fy;
    /** The horizontal coordinate of the principal point of the image (pinhole) */
    double cx;
    /** The vertical coordinate of the principal point of the image (pinhole) */
    double cy;
    /**
     * The distortion coefficients
     *   pinhole: k1,k2,p1,p2,k3
     *   kannala_brandt: k2,k3,k4,k5,mu,mv,u0,v0
     */
    std::vector<double> coeffs;

    Intrinsics(CalibrationModel calib_model_,
               int32_t width_,
               int32_t height_,
               double fx_,
               double fy_,
               double cx_,
               double cy_,
               std::vector<double> coeffs_)
    : calib_model(std::move(calib_model_))
    , width(std::move(width_))
    , height(std::move(height_))
    , fx(std::move(fx_))
    , fy(std::move(fy_))
    , cx(std::move(cx_))
    , cy(std::move(cy_))
    , coeffs(std::move(coeffs_))
    {}
};

}  // namespace mynteye_jni
