42 lines
1.2 KiB
C++
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;
|
|
};
|