#ifndef IYSTATORWORKPIECEPOSITIONSTATUS_H #define IYSTATORWORKPIECEPOSITIONSTATUS_H #include #include #include #include #include // 使用 AppCommon 提供的通用接口和类型 #include "IVisionApplicationStatus.h" struct WorkpiecePoint3D { double x = 0.0; double y = 0.0; double z = 0.0; WorkpiecePoint3D() = default; WorkpiecePoint3D(double xValue, double yValue, double zValue) : x(xValue), y(yValue), z(zValue) {} }; // 机械臂六轴位姿和算法原始工件数据同时保留,供 UI 与协议层使用。 struct WorkpiecePosition : public PositionData { int workpieceType = 0; int sourceDetectionIndex = -1; double value = 0.0; // 原始算法中心经手眼矩阵变换后的机器人坐标,不包含工具 offset; // PositionData::x/y/z 才是加入工具 offset 后的最终目标点。 WorkpiecePoint3D center; WorkpiecePoint3D xDir; WorkpiecePoint3D yDir; WorkpiecePoint3D zDir; WorkpiecePosition() = default; WorkpiecePosition(const WorkpiecePosition&) = default; WorkpiecePosition& operator=(const WorkpiecePosition&) = default; }; struct StatorWorkpiecePositionDetectionResult : public DetectionResultData { StatorWorkpiecePositionDetectionResult() = default; StatorWorkpiecePositionDetectionResult(const StatorWorkpiecePositionDetectionResult&) = default; StatorWorkpiecePositionDetectionResult& operator=(const StatorWorkpiecePositionDetectionResult&) = default; }; // 状态回调接口 class IYStatorWorkpiecePositionStatus : public IVisionApplicationStatus { public: virtual ~IYStatorWorkpiecePositionStatus() = default; }; Q_DECLARE_METATYPE(WorkpiecePoint3D) Q_DECLARE_METATYPE(WorkpiecePosition) Q_DECLARE_METATYPE(StatorWorkpiecePositionDetectionResult) #endif // IYSTATORWORKPIECEPOSITIONSTATUS_H