GrabBag/App/WorkpieceHole/WorkpieceHoleApp/IYWorkpieceHoleStatus.h

55 lines
1.7 KiB
C
Raw Normal View History

#ifndef IYWORKPIECEHOLESTATUS_H
#define IYWORKPIECEHOLESTATUS_H
#include <string>
#include <functional>
#include <vector>
#include <QImage>
#include <QMetaType>
// 使用 AppCommon 提供的通用接口和类型
#include "IVisionApplicationStatus.h"
// 孔位置结构体
struct HolePosition : public PositionData<double> {
// 默认构造函数
HolePosition() : PositionData<double>() {}
// 带参构造函数
HolePosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw)
: PositionData<double>(_x, _y, _z, _roll, _pitch, _yaw) {}
// 拷贝构造函数和赋值运算符
HolePosition(const HolePosition&) = default;
HolePosition& operator=(const HolePosition&) = default;
// 从 PositionData 拷贝构造
HolePosition(const PositionData<double>& pos)
: PositionData<double>(pos) {}
};
// 工件孔检测结果结构体
struct WorkpieceHoleDetectionResult : public DetectionResultData<HolePosition> {
int workpieceType = 0; // 工件类型
// 默认构造函数
WorkpieceHoleDetectionResult() = default;
// 拷贝构造函数和赋值运算符
WorkpieceHoleDetectionResult(const WorkpieceHoleDetectionResult&) = default;
WorkpieceHoleDetectionResult& operator=(const WorkpieceHoleDetectionResult&) = default;
};
// 状态回调接口
class IYWorkpieceHoleStatus : public IVisionApplicationStatus<WorkpieceHoleDetectionResult>
{
public:
virtual ~IYWorkpieceHoleStatus() = default;
};
// 声明Qt元类型使这些结构体能够在信号槽中传递
Q_DECLARE_METATYPE(HolePosition)
Q_DECLARE_METATYPE(WorkpieceHoleDetectionResult)
#endif // IYWORKPIECEHOLESTATUS_H