49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
#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); |