MCPcopy Create free account
hub / github.com/PJLab-ADG/Livox-Mapping / CorrectPoints

Method CorrectPoints

LIO-Livox/src/segment/segment.cpp:621–644  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

619}
620
621int PCSeg::CorrectPoints(float *fPoints,int pointNum,float *gndPos)
622{
623 float RTM[9];
624 float gndHeight=0;
625 float znorm[3]={0,0,1};
626 float tmp[3];
627
628 GetRTMatrix(RTM,gndPos,znorm); // RTM 由当前地面法向量gnd,将平面转到以(0,0,1)为法向量的平面 sy
629
630 gndHeight = RTM[2]*gndPos[3]+RTM[5]*gndPos[4]+RTM[8]*gndPos[5];
631
632 for(int pid=0;pid<pointNum;pid++)
633 {
634 tmp[0]=RTM[0]*fPoints[pid*4]+RTM[3]*fPoints[pid*4+1]+RTM[6]*fPoints[pid*4+2];
635 tmp[1]=RTM[1]*fPoints[pid*4]+RTM[4]*fPoints[pid*4+1]+RTM[7]*fPoints[pid*4+2];
636 tmp[2]=RTM[2]*fPoints[pid*4]+RTM[5]*fPoints[pid*4+1]+RTM[8]*fPoints[pid*4+2]-gndHeight; //将地面高度变换到0 sy
637
638 fPoints[pid*4]=tmp[0];
639 fPoints[pid*4+1]=tmp[1];
640 fPoints[pid*4+2]=tmp[2];
641 }
642
643 return 0;
644}
645
646int AbvGndSeg(int *pLabel, float *fPoints, int pointNum)
647{

Callers 1

DoSegMethod · 0.95

Calls 1

GetRTMatrixFunction · 0.85

Tested by

no test coverage detected