#ifndef DETECTPRESENTER_H #define DETECTPRESENTER_H #include "VrLog.h" #include "VrError.h" #include "IVrEyeDevice.h" #include "IYHoleDetectionStatus.h" #include "IVrConfig.h" #include "LaserDataLoader.h" #include #include "ProtocolCommon.h" class DetectPresenter { public: DetectPresenter(); ~DetectPresenter(); static QString GetAlgoVersion(); /** * @brief 执行孔洞检测(眼在手上方式) * @param cameraIndex 相机索引 * @param laserLines 激光线数据 * @param algorithmParams 算法参数 * @param debugParam 调试参数 * @param dataLoader 数据加载器 * @param clibMatrix 手眼标定矩阵(4x4),T_end_to_cam * @param eulerOrder 欧拉角顺序 * @param dirVectorInvert 方向向量反向配置 * @param robotPose 机器人法兰位姿,T_base_to_end * @param detectionResult 检测结果输出 * @return 错误码 */ int DetectHoles( int cameraIndex, std::vector>& laserLines, const VrAlgorithmParams& algorithmParams, const VrDebugParam& debugParam, LaserDataLoader& dataLoader, const double clibMatrix[16], int eulerOrder, int dirVectorInvert, const RobotFlangePose& robotPose, HoleDetectionResult& detectionResult); }; #endif // DETECTPRESENTER_H