#ifndef IYWORKPIECEHOLESTATUS_H #define IYWORKPIECEHOLESTATUS_H #include #include #include #include #include #include // 使用 AppCommon 提供的通用接口和类型 #include "IVisionApplicationStatus.h" // 算法 workpieceType 的高16位表示方向:1=反向,0=正向。 inline bool IsReversedWorkpieceType(int workpieceType) { const std::uint32_t packedType = static_cast(workpieceType); return ((packedType >> 16) & 0xFFFFu) == 1u; } // 孔位置结构体 struct HolePosition : public PositionData { int workpieceType = 0; // 算法原始工件类型:高16位为方向,1=反向,0=正向 // 默认构造函数 HolePosition() : PositionData() {} // 带参构造函数 HolePosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw) : PositionData(_x, _y, _z, _roll, _pitch, _yaw) {} // 拷贝构造函数和赋值运算符 HolePosition(const HolePosition&) = default; HolePosition& operator=(const HolePosition&) = default; // 从 PositionData 拷贝构造 HolePosition(const PositionData& pos) : PositionData(pos) {} }; // 工件孔检测结果结构体 struct WorkpieceHoleDetectionResult : public DetectionResultData { int workpieceType = 0; // 第一个工件的算法原始类型(包含高16位方向) // 默认构造函数 WorkpieceHoleDetectionResult() = default; // 拷贝构造函数和赋值运算符 WorkpieceHoleDetectionResult(const WorkpieceHoleDetectionResult&) = default; WorkpieceHoleDetectionResult& operator=(const WorkpieceHoleDetectionResult&) = default; }; // 状态回调接口 class IYWorkpieceHoleStatus : public IVisionApplicationStatus { public: virtual ~IYWorkpieceHoleStatus() = default; }; // 声明Qt元类型,使这些结构体能够在信号槽中传递 Q_DECLARE_METATYPE(HolePosition) Q_DECLARE_METATYPE(WorkpieceHoleDetectionResult) #endif // IYWORKPIECEHOLESTATUS_H