C++:结构体变量可以被多个cpp文件共同使用
问题描述:点云过滤部分的参数写成一个QT界面进行调整参数,那么就需要保持界面参数和函数里面参数的一致性,由于参数众多,我使用结构体进行构造,但是在使用extern方法时候出现问题,无法保持一致性。
解决代码:有两个文件-头文件filiter.h-cpp文件filiter.cpp
step1:filiter.h:注意这里只是声明。
typedef struct{
//范围过滤
double XMin;
double XMax;
double YMin;
double YMax;
double ZMin;
double ZMax;
//体素降采样
float voxel_X;
float voxel_Y;
float voxel_Z;
//随机降采样
int random_Sample;
int random_Seed;
//半径去噪
double radius;
int radius_points;
//统计去噪
int radius_MeanK;
double radius_StddevMulThres;
}filiter_para;
定义外部变量
extern filiter_para para;
filiter.cpp
定义全局变量
filiter_para para;
赋初始值
filiter::filiter()
{
//范围过滤
para.XMin=0.0;
para.XMax=1.0;
para.YMin=0.0;
para.YMax=1.0;
para.ZMin=0.0;
para.ZMax=1.0;
//体素降采样
para.voxel_X=0.01;
para.voxel_Y=0.01;
para.voxel_Z=0.01;
//随机降采样
para.random_Sample=20000;
para.random_Seed=1;
//半径去噪
para.radius=0.5;
para.radius_points=3;
//统计去噪
para.radius_MeanK=50;
para.radius_StddevMulThres=1.0;
}
需要使用para的文件加上头文件
#include "filiter.h"