cloudcompare学习笔记-插件1

简介:

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

如何自制插件

命名:

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

  • 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

总结:

Element Example
Class ccMyClass
File ccMyClass.h and ccMyClass.cpp
Attribute/variable myAttribute
Static attribute/variable s_myAttribute
Method getMethod()
Static method GetMethod()
Structure myStruct
Enumerator CC_MY_ENUMERATOR
Macro MACRO_myMethod
Const variables MY_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实体都可以在插件里调用,详见

  • CCLib doxygen documentation
  • qCC doxygen documentation

实践:

在 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,实现自己的功能

你可能感兴趣的:(激光雷达)