cloudcompare学习笔记-插件

简介:

cloudcompare是一个三维点云处理软件。原始用途是用在两个点云比较或者一个点云和一个三角网格(triangular mesh)比较。软件基于八叉树的数据结构,可以处理大型点云。

速度和储存数据的权衡
储存采用八叉树结构,八叉树可以用于近邻点查询和计算,不适合实时显示(尤其带有细节的情况)。
cloudcompare 1GB最多可以显示3200万个点,过多的点会导致交互卡顿。

如何自制插件

命名:

变量名
开头字母小写,之后的单词开头大写,除了常用名称避免缩写。常用类型命名如下。

  • static variables: should always begin with prefix s_ (in lower case – like s_defaultFilename
  • static methods: should always begin with a upper case letter (like InitGLEW)
  • classes: should always begin with prefix cc (in lower case – like ccConsole)
  • enumerators:
    • all letters in upper case
    • should always begin with prefix CC_
    • words are separated by underscore (like CC_OBJECT_FLAG)
  • macros: begin with prefix MACRO_ followed by a standard method name (like MACRO_SkipUnselected)
  • const variables:
    • all letters in upper case
    • words are separated by underscore (like NORMALS_QUANTIZE_LEVEL)
  • macro const (#define): should be avoided; same syntax as const

文件名
开头小写,一个类包含头文件和源文件。
数据有关类放在db文件夹。图片放在image文件夹。GUI(.ui)文件放在ui_templates文件夹。
Example: ccConsole saved in ccConsole.h and ccConsole.cpp

总结:

ElementExample
ClassccMyClass
FileccMyClass.h and ccMyClass.cpp
Attribute/variablemyAttribute
Static attribute/variables_myAttribute
MethodgetMethod()
Static methodGetMethod()
StructuremyStruct
EnumeratorCC_MY_ENUMERATOR
MacroMACRO_myMethod
Const variablesMY_CONSTANT
Const (#define)MY_CONSTANT

设计qCC插件
1.首先复制粘贴qDummyPlugin文件夹在同一文件夹下(trunk\plugins)。重命名。
2.然后打开文件夹,包含以下文件:.hpp,.cpp,.qrc(Qt的资源文件),CMakeLists.txt。
3.将每个文件名子修改为自己的文件名。
4.打开CMakeList.txt文件,将所有的DUMMY改为自己插件的名字,增加依赖库。
5.接下来激活插件。
首先在头文件里可以看到标准的CloudCompare header。我们需要把插件名字和作者名字修改。在下面,我们需要把Q_DUMMY_PLUGIN_HEADER修改为我们自己的名字(例如: Q_MY_PLUGIN_ HEADER)。更改类描述和类名字。
在源文件,需要改变所有关于插件和类的名称。接下来需要修改getDescription方法(更改Dummy Plugin字符串为自己插件的名字,并把Action的名字也修改)。把我们的代码放在doAction方法下(在两个HERE STARTS THE MAIN PLUGIN ACTION分隔符之间 )。
当使用者按下你的插件图标,CloudCompare会调用你的方法。你可以通过m_app成员调用大部分CloudCompare资源(包括数据集,主窗口,3D窗口)为了确定操作的实体和是否激活插件,我们需要在onNewSelection方法里添加自定义代码。
所有算法和3D实体都可以在插件里调用,详见

实践:

在 CloudCompare-master/plugins/example 文件夹里有三个插件的例子,以 ExamplePlugin 为例子,在用cmakeGUI编译,将PLUGIN_EXAMPLE_STANDEARD勾选,然后点configure后generate,之后在命令行窗口make再make install就可以看到例子的效果。
编译器选择如下:

  • Visual 2013, 2015, 2017 (64 bits)
  • gcc (Linux 64 bits)
  • Unix Makefiles (Mac OS X)
  • CodeBlocks - Unix Makefiles (Mac OS X)

有可能要手动选择Q安装安装位置QT5_ROOT_PATH,在windows上为Qt\5.6\msvc2013_64

如果想在编译器里调试使用插件,需要在’/plugins/CMakePluginTpl.cmake’ 文件里注释
QT_NO_DEBUG。
下文为一个角度扫描插件的实现全过程:
给cloudcompare增加plugin,实现自己的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值