42 lines
1.2 KiB
C++

#pragma once
#include <QString>
#include <mutex>
#include <utility>
#include <vector>
#include "IVrConfig.h"
#include "IYWeldSeamStatus.h"
#include "LaserDataLoader.h"
#include "SG_baseDataType.h"
#include "VZNL_Types.h"
class DetectPresenter
{
public:
DetectPresenter();
static QString GetAlgoVersion();
void ResetIncrementalData();
bool ProcessDetectionLine(EVzResultDataType dataType,
const SVzLaserLineData& lineData,
const VrAlgorithmParams& algorithmParams,
const SSG_planeCalibPara& groundCalibParam,
LaserDataLoader& dataLoader);
bool HasIncrementalData() const;
int DetectWeldSeam(
int cameraIndex,
std::vector<std::pair<EVzResultDataType, SVzLaserLineData>>& laserLines,
const VrAlgorithmParams& algorithmParams,
const SSG_planeCalibPara& groundCalibParam,
const VrDebugParam& debugParam,
LaserDataLoader& dataLoader,
DetectionResult& detectionResult);
private:
mutable std::mutex m_incrementalMutex;
std::vector<std::vector<SVzNL3DPosition>> m_incrementalScanLines;
std::vector<std::vector<SSG_basicFeatureGap>> m_incrementalLineValleys;
};