#pragma once #include "SG_algo_Export.h" #include #define _OUTPUT_DEBUG_DATA 1 typedef struct { SVzNL3DPoint center; //螺杆端部中心点 SVzNL3DPoint axialDir; //轴向向量 }SSX_rodPoseInfo; // typedef struct { SVzNL3DPoint center; //螺杆端部中心点 SVzNL3DPoint normalDir; //法向向量 }SSX_pointPoseInfo; // typedef struct { double diameter; double len; }SSX_rodParam; //棒材信息 typedef struct { SVzNL3DPoint center; //螺杆端部中心点 SVzNL3DPoint axialDir; //轴向向量 SVzNL3DPoint normalDir; //法向量 SVzNL3DPoint startPt; SVzNL3DPoint endPt; }SSX_rodPositionInfo; typedef struct { SVzNL3DPoint startPt; SVzNL3DPoint endPt; SVzNL3DPoint center; SVzNL3DPoint normalDir; //法向量 }SSX_weldSeamInfo; //读版本号 SG_APISHARED_EXPORT const char* wd_rodAndBarDetectionVersion(void); //计算一个平面调平参数。 //数据输入中可以有一个地平面和参考调平平面,以最高的平面进行调平 //旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数 SG_APISHARED_EXPORT SSG_planeCalibPara sx_rodPosition_getBaseCalibPara( std::vector< std::vector>& scanLines); #if 0 //相机姿态调平,并去除地面 SG_APISHARED_EXPORT void sx_rodPosition_lineDataR( std::vector< SVzNL3DPosition>& a_line, const double* camPoseR, double groundH); #endif //六角头螺杆端部中心点和轴向测量 SG_APISHARED_EXPORT void sx_hexHeadScrewMeasure( std::vector< std::vector>& scanLines, bool isHorizonScan, //true:激光线平行槽道;false:激光线垂直槽道 const SSG_cornerParam cornerPara, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, double rodDiameter, std::vector& screwInfo, int* errCode); //计算定位盘中心点位姿 SG_APISHARED_EXPORT SSX_pointPoseInfo sx_getLocationPlatePose( std::vector< std::vector>& scanLines, const SSG_cornerParam cornerPara, int* errCode); //棒材抓取定位 SG_APISHARED_EXPORT void sx_rodPositioning( std::vector< std::vector>& scanLines, const SSG_planeCalibPara poseCalibPara, const SSG_cornerParam cornerPara, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, const SSX_rodParam rodParam, std::vector& rodInfo, int* errCode); //筑裕钢结构钢筋焊缝定位 SG_APISHARED_EXPORT void sx_rebarWeldSeamPositioning( std::vector< std::vector>& scanLines, const SSG_planeCalibPara poseCalibPara, const SSG_cornerParam cornerPara, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, const SSX_rodParam rodParam, std::vector& weldSeamInfo, int* errCode);