GrabBag/App/WorkpieceProject/WorkpiecePositionApp/IYWorkpiecePositionStatus.h
2025-12-10 00:01:32 +08:00

43 lines
1.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef IYWORKPIECEPOSITIONSTATUS_H
#define IYWORKPIECEPOSITIONSTATUS_H
#include <string>
#include <functional>
#include <vector>
#include <QImage>
#include <QMetaType>
#include "IBinocularMarkReceiver.h" // 使用 VrMark3D
#include "IVisionApplicationStatus.h"
// 工件中心点位置结构体
struct WorkpieceCenterPosition : public PositionData<double> {
WorkpieceCenterPosition() : PositionData<double>() {}
WorkpieceCenterPosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw)
: PositionData<double>(_x, _y, _z, _roll, _pitch, _yaw) {}
WorkpieceCenterPosition(const WorkpieceCenterPosition&) = default;
WorkpieceCenterPosition& operator=(const WorkpieceCenterPosition&) = default;
WorkpieceCenterPosition(const PositionData<double>& pos) : PositionData<double>(pos) {}
};
// 检测结果结构体
struct WorkpiecePositionDetectionResult : public DetectionResultData<WorkpieceCenterPosition> {
std::vector<VrMark3D> marks; // BinocularMark检测结果使用通用类型
WorkpiecePositionDetectionResult() = default;
WorkpiecePositionDetectionResult(const WorkpiecePositionDetectionResult&) = default;
WorkpiecePositionDetectionResult& operator=(const WorkpiecePositionDetectionResult&) = default;
};
// 状态回调接口
class IYWorkpiecePositionStatus : public IVisionApplicationStatus<WorkpiecePositionDetectionResult>
{
public:
virtual ~IYWorkpiecePositionStatus() = default;
virtual void OnBinocularMarkConnectionChanged(bool connected) = 0;
virtual void OnEpicEyeConnectionChanged(bool connected) = 0;
};
Q_DECLARE_METATYPE(WorkpieceCenterPosition)
Q_DECLARE_METATYPE(WorkpiecePositionDetectionResult)
#endif // IYWORKPIECEPOSITIONSTATUS_H