/*********版权所有（C）2024，武汉高德红外股份有限公司***************
* 文件名称：API_VideoStitch.h
* 文件标识：
* 内容摘要：
* 其它说明：
* 当前版本：
* 创建作者：
* 创建日期：
*******************************************************************/
#pragma once

#ifdef _WIN32
#define STD_STITCH_API __declspec(dllexport)
#else
#define STD_STITCH_API  __attribute__ ((visibility("default")))
#endif

#include "Arith_CommonDef.h"
#include "opencv2/opencv.hpp"
#include "PlatformDefine.h"
// 帧内外方位元素
struct FrameInfo
{
    AirCraftInfo craft;
    CamInfo camInfo;
    ServoInfo servoInfo;
    int nEvHeight;//相对高差
    int nWidth;
    int nHeight;
};

// 全景图配置
struct PanInfo
{
    int m_pan_width;
    int m_pan_height;
    float scale;// 比例尺
    float map_shiftX;// 平移X
    float map_shiftY;// 平移Y
};


class STD_STITCH_API API_VideoStitch
{
public:
    virtual ~API_VideoStitch() = default;

    // 初始化拼接
    virtual PanInfo		Init(FrameInfo info) = 0;

    // 输入帧
    virtual BYTE8       Updata(GD_VIDEO_FRAME_S img, FrameInfo para) = 0;

	// 获取全景图
	virtual GD_VIDEO_FRAME_S ExportPanAddr() = 0;

public:
    static API_VideoStitch* Create(SINT32 nWidth, SINT32 nHeight);
    static void Destroy(API_VideoStitch* obj);
};
