#ifndef IYTIREHOLEPOSESTATUS_H #define IYTIREHOLEPOSESTATUS_H #include #include #include #include #include #include "IVisionApplicationStatus.h" // WorkStatus, WorkStatusToString 已在 IVisionApplicationStatus.h 中定义 // 轮胎孔信息结构体 struct TireHoleInfo { // 孔中心点 double centerX = 0.0; double centerY = 0.0; double centerZ = 0.0; // 孔的法向量方向 double normDirX = 0.0; double normDirY = 0.0; double normDirZ = 0.0; // 孔半径 double holeR = 0.0; TireHoleInfo() = default; TireHoleInfo(double cx, double cy, double cz, double nx, double ny, double nz, double r = 0.0) : centerX(cx), centerY(cy), centerZ(cz) , normDirX(nx), normDirY(ny), normDirZ(nz) , holeR(r) {} TireHoleInfo(const TireHoleInfo&) = default; TireHoleInfo& operator=(const TireHoleInfo&) = default; }; // 位置结构体(继承自 PositionData 模板) struct TireHolePosition : public PositionData { TireHolePosition() : PositionData() {} TireHolePosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw) : PositionData(_x, _y, _z, _roll, _pitch, _yaw) {} TireHolePosition(const TireHolePosition&) = default; TireHolePosition& operator=(const TireHolePosition&) = default; TireHolePosition(const PositionData& pos) : PositionData(pos) {} }; // 检测结果结构体 struct DetectionResult : public DetectionResultData { // 轮胎孔信息列表 std::vector tireHoleInfoList; bool success = true; QString message = "检测成功"; DetectionResult() = default; DetectionResult(const DetectionResult&) = default; DetectionResult& operator=(const DetectionResult&) = default; }; // 状态回调接口 class IYTireHolePoseStatus : public IVisionApplicationStatus { public: virtual ~IYTireHolePoseStatus() = default; }; Q_DECLARE_METATYPE(TireHoleInfo) Q_DECLARE_METATYPE(TireHolePosition) Q_DECLARE_METATYPE(DetectionResult) #endif // IYTIREHOLEPOSESTATUS_H