Veloview阅读笔记2

来源:互联网 发布:c语言体会 编辑:程序博客网 时间:2024/05/21 01:53

Veloview阅读笔记2


源码组织结构

VeloView的源代码主要是VTK类和Qt类的混合。在源代码的文件中VTK类(具有前缀vtk)中不包含任何Qt的依赖。Qt类(具有前缀vv或者pq)依赖于VTK、Qt和ParaView的Qt库。在VeloView中,VTK类的核心被编译程一个插件库,名字叫做libVelodyneHDLPlugin,它可以被加载到ParaView中。VeloView app是用过C++ Qt类和Python代码实现的。Python代码主要功能主要在applogic.py中实现。


ParaView插件

libVelodyneHDLPlugin库依赖于VTK, ParaView, Qt, PythonQt, Boost和 libpcap。通过使用ParaView 4.0,这个插件可以被加载到ParaView应用中。构建可以指定特定Boost库的静态版,所以该插件的依赖是libpcap和PythonQt库,这一点ParaView好。
在Windows下,只要libpcap和PythonQt在同一目录下,这个插件便可被加载。在Mac下,你应该使用install_name_tool来解决这些依赖库的位置,它是相对与@loader_path(加载位置),然后只要将libpcap和PythonQt库文件相对放到libVelodyneHDLPlugin库中即可。
在ParaView中,Velodyne pcap阅读和Velodyne 网络源插件都在Sources菜单中被使能。the Velodyne pcap reader and Velodyne network source plugin are available in the Sources
menu.


VTK readers

VeloView和ParaView的插件VelodyneHDL包含了阅读器/来源。Velodyne pcap阅读器是在vtkVelodyneHDLReader.{cxx,h}中用C++来实现的。当读取pcap文件时,阅读器先扫描整个文件,寻找帧分割(当方位角从360溢出到0度)。该位置会被记录,以便于以后跳到对应帧来寻找相应数据。
网络来源阅读器接受来自Velodyne传感器的UDP数据包。Velodyne传感器使用了Boost的asio库。网络来源在vtkVelodyneHDLSource.{cxx,h}.中被实现。源以生产者/消费者模型管理多个线程,并使用vtkVelodyneHDLReader的一个实例来将数据包转换为VTK点云数据。


VeloView应用程序

VeloView应用程序通过C++的Qt和Python来实现。PythonQt库用于Python来访问C++层。应用的主要逻辑在applogic.py实现。python代码在运行时,通过使用Qt的uitools库来加载使用者的接口(.ui files)。
Qt编辑器可以用来编辑.ui文件。该VeloView应用程序可以使用Python和.UI文件进行扩展。

0 0
原创粉丝点击