一、概述
CloudCompare如何进行二次开发?_cloudcompare 二次开发-CSDN博客
开发一个功能,在原始CC的基础上添加一个拓展功能,如下:
二、功能开发
1、修改MainWindow.UI
重点是:要编译,不然在mainwindow.cpp 哪里是看不到myactionclone 的
2、修改mainwindow.h
3、修改mainwindow.cpp
添加信号槽
实现槽函数
/// <summary>
/// 自定义个一个程序 插件
/// </summary>
void MainWindow::doclone()
{
if (m_selectedEntities.size()==0)
{
return;
}
//获取选中对象转为点云
ccPointCloud* m_cloud = ccHObjectCaster::ToPointCloud(m_selectedEntities[0]);
//创建一个新的点云
ccPointCloud* clonecloud = new ccPointCloud(m_cloud->getName() + QString("-Clone"));
//为克隆对象分配内存
clonecloud->reserve(m_selectedEntities.size());
size_t pointSize = m_cloud->size();
for (size_t i = 0; i < pointSize; ++i)
{
clonecloud->addPoint(*m_cloud->getPoint(i));
}
//创建一个文件夹来放点云
ccHObject* CloudGroup = new ccHObject(QString("CloudGroup"));
CloudGroup->addChild(clonecloud);
m_ccRoot->addElement(CloudGroup);
}
重新生成:
三、结果对比
但是发现了一个问题,原本的cc 是价值不了pcd 文件的,这个功能要加!@!!