GrabBag/App/StatorWorkpiecePosition/WorkpieceTaperedApp/IYStatorWorkpiecePositionStatus.h

58 lines
1.9 KiB
C
Raw Normal View History

2026-08-04 14:23:07 +08:00
#ifndef IYSTATORWORKPIECEPOSITIONSTATUS_H
#define IYSTATORWORKPIECEPOSITIONSTATUS_H
#include <string>
#include <functional>
#include <vector>
#include <QImage>
#include <QMetaType>
// 使用 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<double> {
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<WorkpiecePosition> {
StatorWorkpiecePositionDetectionResult() = default;
StatorWorkpiecePositionDetectionResult(const StatorWorkpiecePositionDetectionResult&) = default;
StatorWorkpiecePositionDetectionResult& operator=(const StatorWorkpiecePositionDetectionResult&) = default;
};
// 状态回调接口
class IYStatorWorkpiecePositionStatus : public IVisionApplicationStatus<StatorWorkpiecePositionDetectionResult>
{
public:
virtual ~IYStatorWorkpiecePositionStatus() = default;
};
Q_DECLARE_METATYPE(WorkpiecePoint3D)
Q_DECLARE_METATYPE(WorkpiecePosition)
Q_DECLARE_METATYPE(StatorWorkpiecePositionDetectionResult)
#endif // IYSTATORWORKPIECEPOSITIONSTATUS_H