#pragma once #if defined(_MSC_VER) || defined(WIN64) || defined(_WIN64) || defined(__WIN64__) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) # define Q_DECL_EXPORT __declspec(dllexport) # define Q_DECL_IMPORT __declspec(dllimport) #else # define Q_DECL_EXPORT __attribute__((visibility("default"))) # define Q_DECL_IMPORT __attribute__((visibility("default"))) #endif #if defined(SG_API_LIBRARY) # define SG_WELDSHARED_EXPORT Q_DECL_EXPORT #else # define SG_WELDSHARED_EXPORT Q_DECL_IMPORT #endif #include "SG_baseDataType.h" #include #include typedef enum { keSX_ScanMode_V = 0, //激光线垂直焊缝扫描 keSX_ScanMode_H, //激光线平行焊缝扫描 keSX_ScanMode_Both, //既有垂直扫描,也有水平扫描 } ESX_WeldScanMode; typedef struct { double lapHeight;//搭接厚度 double weldMinLen; //最小焊缝长度,用于过滤可能的虚假焊缝 int weldRefPoints; //输出的直线焊缝的参考点,默认是2个(起点和终点) ESX_WeldScanMode scanMode; }SSX_lapWeldParam; //计算一个平面调平参数。 //数据输入中可以有一个地平面和参考调平平面,以最高的平面进行调平 //旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数 SG_WELDSHARED_EXPORT SSG_planeCalibPara sx_getBaseCalibPara( std::vector< std::vector>& scanLines); //相机姿态调平,并去除地面 SG_WELDSHARED_EXPORT void sx_lineDataR( std::vector< SVzNL3DPosition>& a_line, const double* camPoseR, double groundH); //提取搭接焊缝 SG_WELDSHARED_EXPORT void sx_getLapWeldPostion( std::vector< std::vector>& scanLines, const SSG_cornerParam cornerPara, SSG_treeGrowParam growParam, SSX_lapWeldParam lapWeldParam, SSG_planeCalibPara groundCalibPara, std::vector>& objOps, int* errCode);