#ifndef IYWORKPIECEPOSITIONSTATUS_H #define IYWORKPIECEPOSITIONSTATUS_H #include #include #include #include #include #include "IBinocularMarkReceiver.h" // 使用 VrMark3D #include "IVisionApplicationStatus.h" // 工件中心点位置结构体 struct WorkpieceCenterPosition : public PositionData { WorkpieceCenterPosition() : PositionData() {} WorkpieceCenterPosition(double _x, double _y, double _z, double _roll, double _pitch, double _yaw) : PositionData(_x, _y, _z, _roll, _pitch, _yaw) {} WorkpieceCenterPosition(const WorkpieceCenterPosition&) = default; WorkpieceCenterPosition& operator=(const WorkpieceCenterPosition&) = default; WorkpieceCenterPosition(const PositionData& pos) : PositionData(pos) {} }; // 检测结果结构体 struct WorkpiecePositionDetectionResult : public DetectionResultData { std::vector marks; // BinocularMark检测结果(使用通用类型) WorkpiecePositionDetectionResult() = default; WorkpiecePositionDetectionResult(const WorkpiecePositionDetectionResult&) = default; WorkpiecePositionDetectionResult& operator=(const WorkpiecePositionDetectionResult&) = default; }; // 状态回调接口 class IYWorkpiecePositionStatus : public IVisionApplicationStatus { 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