#pragma once #include "IVrConfig.h" #include "workpieceHolePositioning_Export.h" #include "SG_baseDataType.h" #include /** * @brief 配置参数到算法参数的转换工具 * * 将 VrXxx 配置结构体转换为算法库所需的结构体, * 并提供算法参数的日志打印功能。 */ namespace AlgoParamConverter { /// 工件孔参数转换 WD_workpieceHoleParam ToAlgoParam(const VrWorkpieceHoleParam& param); /// 线段分割参数转换 SSG_lineSegParam ToAlgoParam(const VrLineSegParam& param); /// 滤波参数转换 SSG_outlierFilterParam ToAlgoParam(const VrOutlierFilterParam& param); /// 树生长参数转换 SSG_treeGrowParam ToAlgoParam(const VrTreeGrowParam& param); /// 平面校准参数转换(cameraCalibParam 为 nullptr 时使用默认单位矩阵) SSG_planeCalibPara ToAlgoPlaneCalibParam(const VrCameraPlaneCalibParam* cameraCalibParam); /** * @brief 打印所有算法参数日志 * @param logTag 日志标识字符串,如 "[Algo Thread]" * @param workpiecePara 工件孔参数 * @param lineSegPara 线段分割参数 * @param filterParam 滤波参数 * @param growParam 树生长参数 * @param groundCalibPara 平面校准参数 * @param clibMatrix 手眼标定矩阵 (4x4) */ void LogAlgoParams(const std::string& logTag, const WD_workpieceHoleParam& workpiecePara, const SSG_lineSegParam& lineSegPara, const SSG_outlierFilterParam& filterParam, const SSG_treeGrowParam& growParam, const SSG_planeCalibPara& groundCalibPara, const double clibMatrix[16]); } // namespace AlgoParamConverter