51 lines
1.6 KiB
C
Raw Permalink Normal View History

#pragma once
#include "IVrConfig.h"
#include "workpieceHolePositioning_Export.h"
#include "SG_baseDataType.h"
#include <string>
/**
* @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