PCL库学习(三)(cloudcompare二次开发)
简介:上一章我们对初级的滤波算法进行了概述,但是如何将滤波算法或者自己的算法嵌入到cloudcompare中是个问题,本章节将介绍基于cloudcompare的二次开发。CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件。我们这一章首先通过修改源码的方式。
1. 界面设计
cloud compare是基于QT做的界面设计,因此首先要安装配置QT,安装教程可看之前的文章。首先创建功能,修改属性名,之后需要对ui进行重新编译。
2. 修改代码
2.1 添加函数声明
对ui进行编译后需要在代码中添加槽函数以及程序代码,添加槽函数也在之前的QT学习章节有过介绍。在mainWindow的头文件中加入函数声明。
2.2 添加槽函数
connect(m_UI->actionSurface_Rec, &QAction::triggered, this, &MainWindow::doActionPCLSurface_Rec);
解析
m_UI->actionSurface_Rec:
m_UI是指向用户界面对象的指针,通常在Qt的界面设计器(Qt Designer)生成的代码中定义。
actionSurface_Rec是一个QAction对象,表示用户界面中的某个动作(如菜单项或工具栏按钮)。
&QAction::triggered:
&QAction::triggered表示QAction类的triggered信号。triggered信号在QAction对象被触发时(例如,用户点击了菜单项或按钮)发出。
this:
this指针指向当前的对象实例。在这个上下文中,它指向一个MainWindow类的实例,表示槽函数属于该实例。
&MainWindow::doActionPCLSurface_Rec:
&MainWindow::doActionPCLSurface_Rec表示MainWindow类的doActionPCLSurface_Rec槽函数。当actionSurface_Rec动作被触发时,将调用这个槽函数。