This is a simple utility which we use for our visualisations and for generating animations. We generally visualize outputs of our fast bundler in SLAM++.
Since the last version, it is possible to display (LIDAR) point clouds, optionally with colors and to perform noise analysis.
It is currently in beta - it is fully functional and contains no known bugs, but the commandline interface will change and new features will be added.
It can display simple text files with one vertex per line. 3D vertices are interpreted as points, 6D vectices are interpreted as cameras. The cameras are represented by 3D position, followed by 3D axis-angle (axis of rotation with magnitude of rotation angle in radians). The cameras are inverse (they represent transformation from world space to camera space).
In addition to that, if a .graph file is available, it can display edges between the vertices. Standard edges, such as EDGE_PROJECT_P2MC or EDGE_PROJECT_P2SC are expected. The parser is, however, minimal and easily extensible. The rationale here is that the viewer is not attempting any parsing of the graph file beyond the indices, nor does it attempt initializing vertex positions from it. That is up to SLAM ++.
Finally, if marginal covariances are available, they can be displayed normalized in false colour. Again, one line per vertex is expected to contain the diagonal of vertex cross-covariance block.
This uses OpenGL ES, and as such could be easily ran on Android or a similar platform. GraphView has intricate keyframe camera animation system, which can be used to create flyby animations. The rendered output has both spatial and temporal antialiassing.
In windows, use the Visual Studio workspace. You can also download pre-built libpng and libjpeg from the Files section.
Note that when building in the 32-bit mode, you will need to disable safe exception handling (SEH) because GLUT is built without it. This presents a minor security issue. Always use the 64-bit mode unless you are specifically targetting an old machine. The 32-bit mode also severely limits the maximum size of the screenshots.
In Linux, use make. Note that the order of linked libraries only works with some Linuxes and you may need to edit the makefile in case you are getting linking errors. This would need a CMakeFile to be resolved properly.
On OS X, you need to use the Makefile.mac
mv Makefile Makefile.linux
mv Makefile.mac Makefile
make
also, in case you get fatal error: 'png.h' file not found
, you need to:
cd ..
mkdir zlib
cd zlib
curl -L -O http://zlib.net/zlib-1.2.8.tar.gz
tar -xjf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
sudo make install
cd ../..
mkdir libpng
curl -L -O http://downloads.sourceforge.net/project/libpng/libpng12/older-releases/1.2.8/libpng-1.2.8.tar.bz2
tar -xjf libpng-1.2.8.tar.bz2
cd libpng-1.2.8
cp scripts/makefile.std Makefile
make
sudo make install
cd ../../GraphViewer/