《点云库PCL学习教程》PCL基础PPT课件.doc

上传人:scccc 文档编号:12576047 上传时间:2021-12-04 格式:DOC 页数:19 大小:64.50KB
返回 下载 相关 举报
《点云库PCL学习教程》PCL基础PPT课件.doc_第1页
第1页 / 共19页
《点云库PCL学习教程》PCL基础PPT课件.doc_第2页
第2页 / 共19页
《点云库PCL学习教程》PCL基础PPT课件.doc_第3页
第3页 / 共19页
《点云库PCL学习教程》PCL基础PPT课件.doc_第4页
第4页 / 共19页
《点云库PCL学习教程》PCL基础PPT课件.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《《点云库PCL学习教程》PCL基础PPT课件.doc》由会员分享,可在线阅读,更多相关《《点云库PCL学习教程》PCL基础PPT课件.doc(19页珍藏版)》请在三一文库上搜索。

1、第3章PCL基础本章首先简述了PCLC+编程规范,为以后章节的阅读和 读者编写出PCL风格的代码做一定铺垫,为了让用户 基于PCL开发出自己的扩展,紧接着通过实例详细介 绍了在PCL框架下如何建立用户自定义类,最后介绍 了 PCL中点的已有类型以及如何自定义点类型以满足 扩展需求。掌握第3章的内容之后,读者可轻松阅读 PCL源码和后续章节中的例子程序,也为读者后续自 行开发奠定了基础。3本章各小节目录3.1 PCL C卄编程规范3.2如何编写新的PCL类33 PCL已有点类型介绍和增加自定义的点类型3.4 PCL中异常处理机制3.1 PCLC卄编程规范架构师为了确保在PCL中所有代码风格的一致

2、性,使 得其他开发者及用户容易理解源码,PCL开发者制 定并遵循着一套严格的编写规范,PCL的开发者都 默认此规范,除非有充足的理由才可以不遵循这 些规范。当然这些规范也并不是一成不变的,但 提出和更改规则的人需要考虑兼容性,那就是匸 新加的规则与现有的所有代码相适应。3.1.1 PCL推荐的命名规范1. 文件命名(1)所有的文件名单词之间应该用下划线隔开,例如unordered_map.hppo(2)头文件的扩展名为.h。(3)模板类实现文件的扩展名是.hpp。(4)源文件的扩展名是.cpp。2. 目录命名所有的目录及其子目录命名应该符合,如果由多个单词 组成,其之间用下划线隔开,PCL中各

3、个目录遵循以 下规则:(1)头文件都应放在源码目录树中的include/下。(2)模板类实现文件都应放在目录树中的include/impl/To(3) 源文件都应放在目录树中的src/下。3. Include语句当文件在同一目录下时Include指示语句用双引号,在其 他情况下则用尖括号,例如:#include <pcl/module_name/file_name.h>#include <pcl/module_name/impl/file_name.hpp>#include "file_namecpp 在同一目录下4. 宏定义命名宏定义中字母都采用大写格式,为

4、头文件所定义的宏最 后面还需要加上下划线,并且名称从include下目录开 始,例如pcl/filters/bilateral.h对应PCL_FILTERS_BILATERL_H_o #ifndef和#(行2定义放在BSD协议后面代码前面。#endif定义一直在文件结尾,并 且加上一句注释掉的宏对应头文件的宏定义,例如:/the BSD license#ifndef PCL_MODULE_NAMEMPL_FILE_NAME_HPP_/为避免重复 包含头文件而定文的宏#define PCL_MODULE_NAME_IMPL_FILE_NAME_HPP_/the code#endif/PCL MO

5、DULE NAME IMPL FILE NAME HPP5. 命名空间命名命名空间多于一个单词的,单词之间应该用下划线连接, 例如:namespace pcl_io6. 类/结构命名类名(和其他自定义类型的名称)应该是CamelCased(驼 峰命名)命名规范,也就是连写单词组成命名,每个单 词首字母大写。但是有例外:如果类名包含一个缩写, 这个缩写应该全部大写,类名和结构名最好是名词组 成的名字,例如PFHEstimation代替了EstimatePFH,下 面是正确的命名代码例子:class ExampleClass;class PFHEstimation;7. 函数/成员函数命名函数和类

6、的成员函数的命名应该采用camelCased,也就 是连写单词组成命名,除了首个单词首字母小写其他 单词首字母大写,它们的参数命名单词之间用下划线 隔开,函数和类的成员函数命名最好采用动词,应该确保这些名字能清楚的表达函数和类成员函数的功能,例如,checkForErrors()而不是errorCheckf), dumpDataToFile()而不是dataFiledump(),正确的用法:intapplyExample(int example_arg);变量命名变量的命名应该单词之间用下划线隔开例如:int my_variable;(1) 迭代子变量命名。迭代子变量应该反应出它们迭 代的对象

7、,例如:std:list<int> pidist;std:list<int>:iterator pidt; /指示迭代的对象为点的索弓|(2) 常量命名。常量的名字应该是全大写,例如:const static int MY CONSTANT 二 1000;(3) 成员变量命名。类的成员变量命名单词之间用下 划线隔开并且以下划线结尾,例如:int examplejnt_; /对阅读PCL源码很有帮助,可明显区分成员变量 与局部麦量9. Return语句return语句需要在括号中设返回值,即规定return语句必须有返回值,大家知道,return如果没有返回值也 会编译,

8、例如:int main()return (0);133.1.2 PCL推荐的缩进与格式在PCL中每个代码块的标准缩进是两个空格,在任何情 况下可以用制表符或者其他空格间隔的方式进行格式 化代码,PCL利用多样化的GNU类型的格式。1命名空间缩进格式在头文件里,命名空间的内容应该缩进两个空格,例如:namespace pciclass Foo在一个实现文件里,对每一个类成员函数或函数的命名 必须添加命名空间限定,例如:void pcl:Foo:bar()2.类格式一个模板类的模板参数必须与类定义在不同行,例如:template<typename T> class Foo3.函数/类成

9、员函数格式每髓:数的返回类型声明必须与函数声明放在不同的行,voidbar();在瞬飜黔瓶样返回类型声明必须与函数声明放voidbar() 或者:voidFoo:bar()或者:template<typename T>voidFoo<T>:bar()4.花括号花括号成对出现,与上一句代码另起一行定义,必须闭 合才组成合理的程序块,例如:if(a<b)else 17下面的情况花括号可以省略,例如:if(a<b)x=2*a;5.空格格式让我们再来强调一次,在PCL中的每一个代码块的标准 缩进是两个空格,这里用单个空格来隔开函数/类成 员函数名字与其参数列表,例如:int exampleMethodfint example_arg);如果在头文件内嵌套应用了命名空间名,需要将其缩进 两个空格,例如:namespace foo namespace bar

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1