// // Created by zx on 2021/8/6. // #include "shuttler_verifier.h" shuttler_verifier::shuttler_verifier() { } shuttler_verifier::~shuttler_verifier() { } shuttler_verifier& shuttler_verifier::operator=(const shuttler_verifier& shutter) { m_plane=shutter.m_plane; m_maxd=shutter.m_maxd; m_mind=shutter.m_mind; } void shuttler_verifier::set_condition(Eigen::Vector4f plane, float maxd, float mind) { m_plane=plane; m_maxd=maxd; m_mind=mind; } Error_manager shuttler_verifier::verify(pcl::PointCloud::Ptr cloud) { for(int i=0;isize();++i) { if(pointInRectangle(cloud->points[i])) return FAILED; } return SUCCESS; } bool shuttler_verifier::pointInRectangle(pcl::PointXYZ point) { float a=m_plane[0]; float b=m_plane[1]; float c=m_plane[2]; float d=m_plane[3]; //计算点到该平面的距离 float D=(a*point.x+b*point.y+c*point.z+d)/sqrt(a*a+b*b+c*c); if(D>m_mind && D