#pragma once #include "SG_algo_Export.h" #include #define _OUTPUT_DEBUG_DATA 1 typedef struct { int workpieceType; double holeDiameter; //孔直径 double holeDist_L; //孔间距_长 double holeDist_W; //孔间距_宽 double xLen; //x方向长, 用于结果排序 double yLen; //y方向长, 用于结果排序 double H; }WD_workpieceHoleParam; typedef struct { int workpieceType; std::vector holes; std::vector holesDir; SVzNL3DPoint center; SVzNL3DPoint z_dir; //z方向向量(归一化) SVzNL3DPoint y_dir; //y方向向量(归一化) SVzNL3DPoint x_dir; //x方向向量(归一化) }WD_workpieceInfo; typedef struct { SVzNL3DPoint center; SVzNL3DPoint normDir; //方向向量(归一化) }WD_HolePositionInfo; //读版本号 SG_APISHARED_EXPORT const char* wd_workpieceHolePositioningVersion(void); //相机水平安装计算地面调平参数。。 //旋转矩阵为调平参数,即将平面法向调整为垂直向量的参数 SG_APISHARED_EXPORT SSG_planeCalibPara wd_getGroundCalibPara( std::vector< std::vector>& scanLines); //相机水平时姿态调平,并去除地面 SG_APISHARED_EXPORT void wd_lineDataR( std::vector< SVzNL3DPosition>& a_line, const double* camPoseR, double groundH); //工件孔定位-拓普发工件孔定位 SG_APISHARED_EXPORT void wd_workpieceHolePositioning( std::vector< std::vector>& scanLinesInput, const WD_workpieceHoleParam workpiecePara, const SSG_lineSegParam lineSegPara, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, const SSG_planeCalibPara groundCalibPara, std::vector< WD_workpieceInfo>& workpiecePositioning, int* errCode); //单个孔或凹坑定位-华航孔定位 SG_APISHARED_EXPORT void wd_HolePositioning( std::vector< std::vector>& scanLinesInput, const SSG_lineSegParam lineSegPara, const SSG_cornerParam cornerParam, const SSG_outlierFilterParam filterParam, const SSG_treeGrowParam growParam, std::vector< WD_HolePositionInfo>& holePositioning, int* errCode);