#pragma once #if defined(VZ_API_LIBRARY) # define VZ_APISHARED_EXPORT __declspec(dllexport) #else # define VZ_APISHARED_EXPORT __declspec(dllimport) #endif #include #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& brickPoses, int* errCode) = 0; virtual void sgSortBrickPoses(std::vector& brickPoses, ESG_poseSortingMode sortingMode) = 0; }; VZ_APISHARED_EXPORT bool SGCreateFireBrick(double dHistScale, ISGFireBrick** ppFireBrick);