algoLib/sourceCode/SG_fireBrick_Export.h

49 lines
1.4 KiB
C
Raw Normal View History

2025-06-08 10:46:41 +08:00
#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"
//<2F>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD>ΪX<CEAA><58><><EFBFBD>򣩣<EFBFBD>ƽ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD>ᴹֱ<E1B4B9><D6B1><EFBFBD><EFBFBD>ΪY<CEAA><EFBFBD><E1A3AC>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪZ<CEAA><5A>
typedef struct
{
bool validFlag; //ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
double x;
double y;
double z;
double pitchAngle; //<2F><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
double rollAngle; //<2F><>ת<EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
double yawAngle; //ƫת<C6AB>ǣ<EFBFBD><C7A3><EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD>ƫת, <20><><EFBFBD><EFBFBD>
}SSG_6AxisAttitude;
typedef struct
{
bool validFlag; //ָʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ч
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);