CloudCompare如何进行二次开发?

文章目录

0.引言
1.界面设计
2.功能实现
3.结果展示

0.引言

  CloudCompare源代码编译成功后,即可进行二次开发,可以通过修改源码或者制作插件(插件开发详见:CloudCompare如何进行二次开发之插件开发?)实现二次开发。本文二次开发采用修改CloudCompare的源代码的方式,分别修改mainwindow.ui、mainwindow.h、mainwindow.cpp,实现扩展功能,克隆选中的点云。

1.界面设计

  (1)打开mainwindow.ui,扩展功能

(2)编译ui

2.功能实现

  (1)修改mainwindow.h

//定义自己的槽函数
void doclone();

(2)修改mainwindow.cpp

void MainWindow::doclone()
{  
    //选中对象检查,若选中为空返回  
    if (m_selectedEntities.size() == 0)  
    {  
        return;  
    }  

    //获取选中对象转为点云  
    ccPointCloud* m_cloud = ccHObjectCaster::ToPointCloud(m_selectedEntities[0]);  
    //创建一个新的点云  
    ccPointCloud* pc = new ccPointCloud(m_cloud->getName() + QString("-Clone"));  
    //为克隆对象分配内存  
    pc->reserve(m_selectedEntities.size());  
    size_t pointSize = m_cloud->size();  
    for (size_t i = 0; i < pointSize; ++i)  
    {  
        pc->addPoint(*m_cloud->getPoint(i));  
    }  
    //创建一个文件夹来放点云  
    ccHObject* CloudGroup = new ccHObject(QString("CloudGroup"));  
    CloudGroup->addChild(pc);  
    m_ccRoot->addElement(CloudGroup);  
}

(3)生成exe
  ①设置输出路径

 ②生成

3.结果展示

  直接点击工程输出的CloudCompare.exe,得到以下结果。

参考资料:
[1] cacrle. Visual Studio如何使用Qt开发桌面软件?; 2023-04-18 [accessed 2023-04-19].
[2] 问也去. CloudCompare实现点选点云功能; 2021-09-23 [accessed 2023-04-17].
[3] 进击の小黑. CloudCompare简单二次开发教程 上(界面设计与ui文件编译); 2020-12-17 [accessed 2023-04-17].
[4] 进击の小黑. CloudCompare简单二次开发 下(功能实现); 2020-12-18 [accessed 2023-04-17].
[5] 大锅菜~. error MSB6006: “cmd.exe”已退出,代码为3; 2019-07-02 [accessed 2023-04-19].