GrabBag/App/StatorWorkpiecePosition/WorkpieceTaperedApp/IYStatorWorkpiecePositionStatus.h

55 lines
1.7 KiB
C++

#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) {}
};
// 父类 PositionData::x/y/z/roll/pitch/yaw 是最终输出给 UI 与协议层的目标位姿。
struct WorkpiecePosition : public PositionData<double> {
int workpieceType = 0;
int sourceDetectionIndex = -1;
double value = 0.0;
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