#pragma once #include #include #include #include #include "hybridPosePositioning_Export.h" #include "VZNL_Types.h" #include "VrTimeUtils.h" #include "VrError.h" #include "VrLog.h" #include "IVrConfig.h" #include "LaserDataLoader.h" #include "IYStatorWorkpiecePositionStatus.h" #include "WorkpiecePositionModelAdapter.h" class DetectPresenter { private: WorkpiecePositionModelAdapter m_workpieceModel; public: DetectPresenter(/* args */); ~DetectPresenter(); static QString GetAlgoVersion(); /// 同步执行左目二维定位;返回后 detections 完全由应用持有。 int LocateWorkpiece2D(const SVzNLImageData& leftImage, const VrWorkpieceModelParam& modelParam, const VrDebugParam& debugParam, std::vector& detections); /// 使用已经深拷贝的二维定位结果执行定子工件三维定位。 int DetectStatorWorkpiecePosition(int cameraIndex, std::vector>& laserLines, const std::vector& detections, const VrAlgorithmParams& algorithmParams, const VrDebugParam& debugParam, LaserDataLoader& dataLoader, const double clibMatrix[16], int eulerOrder, int dirVectorInvert, const WD_HRM_BinInfo* binInfo, StatorWorkpiecePositionDetectionResult& detectionResult); int DetectBin(int cameraIndex, std::vector>& laserLines, const VrAlgorithmParams& algorithmParams, const VrDebugParam& debugParam, LaserDataLoader& dataLoader, WD_HRM_BinInfo& binInfo); };