0 引言

问题背景:pcl中提供了大量工具,用于对点云和三角面片文件进行处理和显示。在研究中,存在很多简易的需求,比如点云坐标转换,
点云的打开显示以及同步显示,点云的最小包络求解,点云的格式转换等等. 在对这些需求进行封装时,发现自己的代码组织混乱,类
的定义不明确,存在很多问题。借此机会,扩展一下面向对象程序设计方面的知识,对需求进行重新封装,追求软件设计上敏捷性和设计
思路上的简洁性。

1 需求列举  

(1)IO

  1. 从任意目录下读入点云文件

  2. 将点云存储到指定目录

  3. 存储点云的变量,存储路径的变量

(2)显示点云

  1. 判断读入点云的格式,即后缀是啥(.pcd文件,.obj文件,. ply等)

  2. 不同格式点云的显示,暂定.pcd文件,.obj文件,. ply文件文件等,在保证上述格式点云正常显示的情况下,保持可扩展的能力.

  3. 存储点云后缀的变量,viewer要有一个变量

(3)格式转换功能

  1. 其他转.pcd

  2. .pcd转其他

(4)minBox,求解点云的最小包络尺寸并打印出来

(5)pcd转pts格式,并保存到指定位置,仍然是格式转换

2 设计方法 CRC cards-class, responsibilities, collaborators

(1)举例:ATM 系统

25 面向对象设计实例——基于PCL点云库的通用工具开发-LMLPHP

05-12 13:57