algoLib/sourceCode/SG_fireBrick_Export.h
2025-06-08 10:46:41 +08:00

49 lines
1.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#if defined(VZ_API_LIBRARY)
# define VZ_APISHARED_EXPORT __declspec(dllexport)
#else
# define VZ_APISHARED_EXPORT __declspec(dllimport)
#endif
#include <VZNL_Types.h>
#include "SG_baseDataType.h"
//以工作轴为X轴(扫描方向平行地面与Z轴垂直的轴为Y轴垂直地面的轴为Z轴
typedef struct
{
bool validFlag; //指示结果是否有效
double x;
double y;
double z;
double pitchAngle; //俯仰角绕Y轴的偏转, 弧度
double rollAngle; //滚转角绕X轴的偏转, 弧度
double yawAngle; //偏转角绕Z轴的偏转, 弧度
}SSG_6AxisAttitude;
typedef struct
{
bool validFlag; //指示结果是否有效
double x;
double y;
double z;
}SSG_3AxisAttitude;
class ISGFireBrick
{
public:
ISGFireBrick() = default;
virtual ~ISGFireBrick() = default;
virtual const char* GetVersion() = 0;
virtual void sgSegHistScale(double) = 0;
virtual void sgCalibCamPose() = 0;
virtual void sgSetPoseSortingMode(ESG_poseSortingMode mode) = 0;
virtual ESG_poseSortingMode sgGetPoseSortingMode() = 0;
virtual void sgScanLineProc(SVzNL3DLaserLine* a_line, double* camPoseR, int* errCode) = 0;
virtual void sgGetBrickPose(SVzNL3DLaserLine* scanData, int nLines, std::vector<SSG_6AxisAttitude>& brickPoses, int* errCode) = 0;
virtual void sgSortBrickPoses(std::vector<SSG_6AxisAttitude>& brickPoses, ESG_poseSortingMode sortingMode) = 0;
};
VZ_APISHARED_EXPORT bool SGCreateFireBrick(double dHistScale, ISGFireBrick** ppFireBrick);