qt dyld library not loaded …/libhdf5.100.dylib
分析
无法链接动态库,考虑手动添加链接。
专业修电脑,副业补衣服
本文唠叨了些CloudComapre这个开源软件的插件编写。
虽然这篇是入门教程,但是作为一只有梦想的程序猿,怎能像很多入门教程那样写个残缺的入门教程呢!
所以这是一个完整插件的入门教程,我们要写的插件是qSAF(Scan Angle Filter),这是可以过滤给定范围内点的扫描角度的插件。
下面分三篇来介绍,分别是插件框架篇、数据结构篇、算法实现篇。
这是第一篇,插件框架篇,你可以根据本文改成自己的插件,待卿临幸。
特别注意:本文的CloudCompare源码构建的是Qt工程并使用Qt Creator开发,并不是Visual Studio。
qSAF源码:Github . qSAF
CloudComapre是一个开源的3D点云和网格的处理软件,开可以处理各类点云格式的数据。
本文分三篇来介绍一个完整的CloudComapre插件的编写教程,分别是插件框架篇、数据结构篇、算法实现篇。
这是第二篇,数据结构篇,你可以根据本文改成自己的插件,待卿临幸。
特别注意:本文的CloudCompare源码构建的是Qt工程并使用Qt Creator开发,并不是Visual Studio。
qSAF源码:Github . qSAF
在上回中,我们已经实现了插件的框架,现在要在doAction()
中写插件的具体实现。
我们要做的是一个qSAF(Scan Angle Filter)插件,它可以过滤给定范围内点的扫描角度。
也就是用户输入两个角度值,如20
度、70
度,
过滤输出每个点的扫描角度在大于等于20
度、小于等于70
度的范围的点云。
本文分三篇来介绍一个完整的CloudComapre插件的编写教程,分别是插件框架篇、数据结构篇、算法实现篇。
这是第三篇,算法实现篇,你可以根据本文改成自己的插件,待卿临幸。
特别注意:本文的CloudCompare源码构建的是Qt工程并使用Qt Creator开发,并不是Visual Studio。
qSAF源码:Github . qSAF
在上回中,我们知道了点云中扫描角度的存储结构,下面我们来讲qSAF的具体实现。
新建QT设计器界面类,命名为ccSAFDlg
,在ccSAFDlg.ui
文件设计简单的界面。
因为我们只需要一个范围,一个确认取消键,所以我把它弄成这样子:
对于空文本文件的判断问题引起了我对 IO 库中条件状态和 EOF 的探究。
就是这段程序:
int vehicle_number;
fstream infile;
infile.open("vehicle.txt", ios::in);
if(infile.is_open())
{
while(!infile.eof())
{
infile >> vehicle_number;
......
}
infile.close();
}
它可以打开空文本文件并运行到 while(!infile.eof())
循环里面。由于是空文本文件,它进入里面会造成一些问题,所以需要对文件进行判空。
使用 NTFS-3G 实现,可以挂载 NTFS,还可以挂载 HFS+ 等,以下是在 Centos 7 下安装 NTFS-3G 及挂载 NTFS 分区
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sudo yum update
sudo yum install ntfs-3g
fdisk -l
Mac指定qmake的生成路径时,用 -Wl,-rpath,$$PWD/..
而不是 -Wl,-rpath=$$PWD/..
如下:
macx{
# linux only
# 编译时候指定libs查找位置
QMAKE_LFLAGS_RELEASE += -Wl,-rpath,$$PWD/../../Release/libs -Wl
QMAKE_LFLAGS_DEBUG += -Wl,-rpath,$$PWD/../../Release/libs -Wl
# 指定生成路径
DESTDIR = $$PWD/../../Release
}
Linux则用 -Wl,-rpath=$$PWD/..
unix:!macx{
# linux only
# 编译时候指定libs查找位置
QMAKE_LFLAGS_RELEASE += -Wl,-rpath=$$PWD/../../Release/libs -Wl,-Bsymbolic
QMAKE_LFLAGS_DEBUG += -Wl,-rpath=$$PWD/../../Release/libs -Wl,-Bsymbolic
# 指定生成路径
DESTDIR = $$PWD/../../Release/libs
}