43 lines
1.8 KiB
C++
43 lines
1.8 KiB
C++
#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
|