/*********版权所有（C）2024，武汉高德红外股份有限公司***************
* 文件名称：API_UnderStitch.h
* 文件标识：
* 内容摘要：吊舱产品下视扫描拼接算法
* 其它说明：
* 当前版本：
* 创建作者：04046wcw
* 创建日期：2025/02/01
*******************************************************************/
#pragma once

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

#include "StitchStruct.h"

// 视频帧下视地理拼接
class STD_STITCH_API API_UnderStitch
{
public:
    virtual ~API_UnderStitch() = default;

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

    // 设置输出标识和路径
    virtual void SetOutput(std::string name, std::string outdir) = 0;

    // 运行拼接流程
    virtual SINT32 Run(GD_VIDEO_FRAME_S img, FrameInfo para) = 0;

    // 中止拼接流程
    virtual void Stop() = 0;

    // 运行参数配置
    virtual void SetConfig(UPanConfig config) = 0;

    // 立即优化并输出当前全景图
    virtual SINT32 OptAndOutCurrPan() = 0;

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

    // 获取全景图mat
    virtual cv::Mat ExportPanMat() = 0;



public:
    static API_UnderStitch* Create(std::string cachedir = "./cache");
    static void Destroy(API_UnderStitch* obj);
};
