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 系统