
01 July 2013


About STVD
==========

This is a demonstrational implementation of the Short-Term Vector Dijkstra
algorithm for anisotropic geodesic distance calculation on triangle meshes,
as described in:

Practical Anisotropic Geodesy
Marcel Campen, Martin Heistermann, Leif Kobbelt
Eurographics Symposium on Geometry Processing 2013
Volume 32, Number 5

We use the OpenMesh Library (http://openmesh.org) to read input meshes and
to provide a basic halfedge data structure. It should be easy to adapt the
code to a different data structure if necessary.

We included a copy of OpenMesh that is stripped from all unneccessary files
(Examples, Tools, Documentation) to keep the archive size low. In case you
want to use OpenMesh, please download it from its website.

Building
========
Requirements:
    C++ compiler (tested: g++ 4.7.3)
    cmake (tested: 2.6)
    make

# current directory is the STVD source directory
mkdir build
cd build
cmake ..
make


Metric file format
==================

This implementation handles discrete Riemannian metrics, given per-edge in a
simple, text-based file format:

The metric file should consist of one line per edge, which consists of three
space-separated ASCII float numbers, e.g.:
1.234 1.0 4.2

The first number is the direction of the metric tensor main axis, given as an
angle (in radians) relative to the edge, clockwise, as seen from outside the
manifold.

The second and third number describe the magnitudes of major and minor axis.

Note: consider OpenMesh's conventions regarding numbering of the edges when
reading from file formats that only implicitly specify edges.


Output file format
==================

The output file format simply consists of one line per vertex, giving its
distance from the start vertex.