VeloView Developer Guide
VeloView Developer Guide
VeloView Developer Guide
Table of Contents
1 Build instructions
1.3.1 pcap
1.3.2 Boost
1.3.3 Qt
1.3.4 Python
1.3.5 PythonQt
2
3
1.6 Packaging
2 Developer Guide
1 Build instructions
1.1 Superbuild overview
VeloView uses a cmake superbuild to download and compile third party projects that are dependencies of
VeloView. The superbuild will give you the option to use system installations of third party projects instead
of compiling them as a superbuild step. Some dependencies, on certain platforms, must be compiled by
the superbuild, and there is no option to use a system version.
1.3.1 pcap
The required pcap version is 1.4. On Mac/Linux, only libpcap is required. On Windows, we use the
Winpcap project which includes libpcap but also includes Windows specific drivers. Since the winpcap
project only provides Visual Studio project files, which may be out dated, the superbuild does not attempt
to compile winpcap. Instead, a git repository containing headers and precompiled .lib and .dll files is used.
The repository url is https://github.com/patmarion/winpcap.
1.3.2 Boost
The required boost version is 1.50. Boost is used for threading and synchronization, and for network
communication. The boost thread and asio libraries are used.
1.3.3 Qt
The required Qt version is 4.8. Qt is a desktop widget library that is used to provide user interface
elements like windows and menus across the supported platforms Windows, Mac, and Linux.
1.3.4 Python
The required Python version is 2.7. VeloView uses libpython to embed a Python interpreter in the
VeloView application. The core VeloView features are implemented in C++ libraries, and the libraries are
wrapped for Python using VTK's Python wrapping tools.
1.3.5 PythonQt
PythonQt is used from a specific git commit sha1, but a specific released version. PythonQt is used to
build Qt applications using Python. PythonQt has support for wrapping types derived from Qt objects and
VTK objects.
1.6 Packaging
After building VeloView, the application will be runnable on your system. In order to distribute VeloView to
other users you must generate a VeloView package. The packaging process is different for different
platforms.
Before packaging, you might want to test the VeloView install tree. You can run the make install command
(make sure you have set the CMAKE_INSTALL_PREFIX to a writable location) and then cd to the install
directory and open bin/VeloView.exe. If there are any issues, you should debug them at this point before
continuing with the packaging. Make sure you open the VeloView Python console to make sure there are
no issues with Python initialization.
To generate a Windows installer, run the package command:
make package
The output will be a .exe installer in the current directory.
2 Developer Guide
2.1 Source code organization
The VeloView source code is a mixture of VTK classes and Qt classes. The source code files with the vtk
prefix are VTK classes that do not have any Qt dependencies. The classes with the vv or pq prefixes are
Qt classes that depend on VTK, Qt, and ParaView's Qt libraries. The core VTK classes in VeloView are
compiled into a plugin library named libVelodyneHDLPlugin that can be loaded into ParaView. The
VeloView app is implemented using a mixture of the C++ Qt classes and Python code. The Python code is
mostly organized in the file applogic.py in the veloview Python module.