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

package com.slightech.mynteye;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;

/** Stream intrinsics */
public final class Intrinsics {


    /*package*/ final CalibrationModel mCalibModel;

    /*package*/ final int mWidth;

    /*package*/ final int mHeight;

    /*package*/ final double mFx;

    /*package*/ final double mFy;

    /*package*/ final double mCx;

    /*package*/ final double mCy;

    /*package*/ final ArrayList<Double> mCoeffs;

    public Intrinsics(
            @NonNull CalibrationModel calibModel,
            int width,
            int height,
            double fx,
            double fy,
            double cx,
            double cy,
            @NonNull ArrayList<Double> coeffs) {
        this.mCalibModel = calibModel;
        this.mWidth = width;
        this.mHeight = height;
        this.mFx = fx;
        this.mFy = fy;
        this.mCx = cx;
        this.mCy = cy;
        this.mCoeffs = coeffs;
    }

    /** The calibration model */
    @NonNull
    public CalibrationModel getCalibModel() {
        return mCalibModel;
    }

    /** The width of the image in pixels */
    public int getWidth() {
        return mWidth;
    }

    /** The height of the image in pixels */
    public int getHeight() {
        return mHeight;
    }

    /** The focal length of the image plane, as a multiple of pixel width (pinhole) */
    public double getFx() {
        return mFx;
    }

    /** The focal length of the image plane, as a multiple of pixel height (pinhole) */
    public double getFy() {
        return mFy;
    }

    /** The horizontal coordinate of the principal point of the image (pinhole) */
    public double getCx() {
        return mCx;
    }

    /** The vertical coordinate of the principal point of the image (pinhole) */
    public double getCy() {
        return mCy;
    }

    /**
     * The distortion coefficients
     *   pinhole: k1,k2,p1,p2,k3
     *   kannala_brandt: k2,k3,k4,k5,mu,mv,u0,v0
     */
    @NonNull
    public ArrayList<Double> getCoeffs() {
        return mCoeffs;
    }

    @Override
    public String toString() {
        return "Intrinsics{" +
                "mCalibModel=" + mCalibModel +
                "," + "mWidth=" + mWidth +
                "," + "mHeight=" + mHeight +
                "," + "mFx=" + mFx +
                "," + "mFy=" + mFy +
                "," + "mCx=" + mCx +
                "," + "mCy=" + mCy +
                "," + "mCoeffs=" + mCoeffs +
        "}";
    }

}
