2025-09-14 21:15:44 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
2025-12-06 00:11:43 +08:00
|
|
|
|
#include "SG_algo_Export.h"
|
2025-09-14 21:15:44 +08:00
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
2025-09-11 19:37:22 +08:00
|
|
|
|
typedef enum
|
|
|
|
|
|
{
|
|
|
|
|
|
keSX_ScanMode_V = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8>
|
|
|
|
|
|
keSX_ScanMode_H, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>к<EFBFBD><D0BA><EFBFBD>ɨ<EFBFBD><C9A8>
|
|
|
|
|
|
keSX_ScanMode_Both, //<2F><><EFBFBD>д<EFBFBD>ֱɨ<D6B1>裬Ҳ<E8A3AC><D2B2>ˮƽɨ<C6BD><C9A8>
|
|
|
|
|
|
} ESX_WeldScanMode;
|
2025-09-14 21:15:44 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
double lapHeight;//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
|
|
|
|
|
|
double weldMinLen; //<2F><>С<EFBFBD><D0A1><EFBFBD>쳤<EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9>˿<EFBFBD><CBBF>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>ٺ<EFBFBD><D9BA><EFBFBD>
|
|
|
|
|
|
int weldRefPoints; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD>IJο<C4B2><CEBF>㣬Ĭ<E3A3AC><C4AC><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ㣩
|
2025-09-11 19:37:22 +08:00
|
|
|
|
ESX_WeldScanMode scanMode;
|
2025-09-14 21:15:44 +08:00
|
|
|
|
}SSX_lapWeldParam;
|
|
|
|
|
|
|
2026-11-03 22:45:50 +08:00
|
|
|
|
typedef struct
|
|
|
|
|
|
{
|
|
|
|
|
|
SWD_segFeature startSeg;
|
|
|
|
|
|
SWD_segFeature curSegBuff[5];
|
|
|
|
|
|
int bufCounter;
|
|
|
|
|
|
}SWD_weldSegment;
|
|
|
|
|
|
|
2026-08-13 16:22:03 +08:00
|
|
|
|
SG_APISHARED_EXPORT const char* wd_weldSeamAlgoVersion(void);
|
|
|
|
|
|
|
2025-09-14 21:15:44 +08:00
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>Ͳο<CDB2><CEBF><EFBFBD>ƽƽ<C6BD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ƽ
|
|
|
|
|
|
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>淨<EFBFBD><E6B7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT SSG_planeCalibPara sx_getBaseCalibPara(
|
2025-09-14 21:15:44 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT void sx_lineDataR(
|
2025-09-14 21:15:44 +08:00
|
|
|
|
std::vector< SVzNL3DPosition>& a_line,
|
|
|
|
|
|
const double* camPoseR,
|
|
|
|
|
|
double groundH);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
|
2025-11-10 23:24:06 +08:00
|
|
|
|
SG_APISHARED_EXPORT void sx_getLapWeldPostion(
|
2025-09-14 21:15:44 +08:00
|
|
|
|
std::vector< std::vector<SVzNL3DPosition>>& scanLines,
|
|
|
|
|
|
const SSG_cornerParam cornerPara,
|
|
|
|
|
|
SSG_treeGrowParam growParam,
|
|
|
|
|
|
SSX_lapWeldParam lapWeldParam,
|
2025-09-11 19:37:22 +08:00
|
|
|
|
SSG_planeCalibPara groundCalibPara,
|
2025-09-14 21:15:44 +08:00
|
|
|
|
std::vector<std::vector<SVzNL3DPoint>>& objOps,
|
|
|
|
|
|
int* errCode);
|
|
|
|
|
|
|
2026-11-03 22:45:50 +08:00
|
|
|
|
//<2F><><EFBFBD>麸<EFBFBD><E9BAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼλ<CABC><CEBB>
|
|
|
|
|
|
SG_APISHARED_EXPORT void BQ_checkWeldingStartLine(
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& a_line,
|
|
|
|
|
|
const int lineIdx,
|
|
|
|
|
|
const double innerPara_lineDeviTh, //ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>ߵ<EFBFBD><DFB5>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3>㵽<EFBFBD><E3B5BD><EFBFBD><EFBFBD><EFBFBD>յ㹹<D5B5><E3B9B9>ֱ<EFBFBD>ߵľ<DFB5><C4BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
const double innerPara_endingZDeviTh, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>߶˵<DFB6><CBB5><EFBFBD>Zƫ<5A><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
const double innerPara_endingDistTh, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD>߶˵<DFB6><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SWD_weldSegment& weldStartLine);
|
|
|
|
|
|
|
2026-08-13 16:22:03 +08:00
|
|
|
|
//<2F><><EFBFBD>㺸<EFBFBD><E3BAB8>λ<EFBFBD><CEBB>
|
|
|
|
|
|
SG_APISHARED_EXPORT void BQ_getWeldSeamPose(
|
|
|
|
|
|
std::vector<SSG_gapFeatureTree>& trees,
|
2026-11-03 22:45:50 +08:00
|
|
|
|
const SWD_segFeature& weldingStartLine,
|
|
|
|
|
|
const SWD_segFeature& weldingEndLine,
|
2026-08-13 16:22:03 +08:00
|
|
|
|
int weldRefPoints, //<2F><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>ο<EFBFBD><CEBF><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
std::vector<SVzNL3DPoint>& weldOps, //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
std::vector<SVzNL3DPosition>& weldRawPoints, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>debug
|
|
|
|
|
|
int* errCode);
|