Geom e.U. Softwareentwicklung
Bernhard Kornberger
Fade2D - An easy to use Delaunay Triangulation Library for C++
Author
Bernhard Kornberger, bkorn.nosp@m.@geo.nosp@m.m.at, Geom e.U. Software Development, http://www.geom.at

Introduction to Fade2D

  • Fade2D is among the fastest Delaunay Triangulation Libraries
  • Available for Windows and Linux
  • Free for scientific research. Commercial licenses and support are available
  • Numerically robust
  • Constrained Delaunay triangulation
  • Zones - polygonal areas, possibly containing holes - can be defined
  • Delaunay meshing

Fade2D introduces the concept of Zones which enable extraction of certain areas of a triangulation. A zone can be defined through a closed, simple polygon. Zones can be combined through set operations. Zones can be remeshed and the member triangles of zones can be retrieved.

constrained-delaunay-zones-transparent.gif
Constrained Delaunay triangulation with zones: The red triangles belong to a single zone.

Delaunay meshing: Fade2D can create a triangular mesh inside an area defined by a Zone.

remesh.gif
Remeshing: Left: A Constrained Delaunay triangulation; Right: A Delaunay mesh


Performance of Fade2D

Fade2D is numerically robust and very fast. It triangulates one million points in less than 0.7 seconds. The diagram below shows that the practical run-time grows only linearly with the number of input points (uniformly distributed in a rectangular area for this benchmark).

performance.png
Performance of Fade2D on a Core i7 870 CPU, 3 GHz


Free license

Fade2D can be used free of charge for personal non-commercial scientific research. A link on your website or in your scientific publications is welcome in this case.

Commercial license

All other applications (including commercial in-house usage) require a commercial license. Benefits of the commercial version are personal support and the possibility to compute 2.5D triangulations (useful, e.g., for terrain triangulation).

In no case can we be made responsible for damages of any kind that arise in connection with the use or non-usability of our software or the information provided on our internet pages. If you don't accept these terms, you are not allowed to use our software. Using Fade2D for military research and applications is not accepted.


Download

Download, unzip and start to play with the included examples. The current release works out of the box for Windows and Linux developers.

For Windows users:

  1. Open the solution file in the vs2010_examples folder and compile the demo source code.

For Linux users:

  1. Install GMP:
    $ sudo apt-get install libgmp3c2 // ...works for Debian and derivates like Ubuntu, Linux Mint, ...
  2. Enter the example[0-6] directory and type make to compile the source code. Start the program and view the output *.ps file with the viewer of your choice (gv, evince, ...)

Getting started

For a steep learning curve you should work through the provided examples. The examples are small and well documented and they draw the computed triangulations. Modify the source code and see what happens to get familiar with the library. The online documentation of Fade2D will also be helpful.


Directories

  • include
    Header files of Fade2D.
  • Release (or Debug)
    This directory contains the library (*.dll/*.lib) for Windows 64-bit and it will contain the executables of the example programs after compilation with Visual Studio.
  • linux_i686 and linux_x86_64
    The 32- and 64-bit shared library (*.so) for Linux developers.
  • data
    Data files used by the demo programs.
  • example[0-5]
    Source code of the examples.
  • vs2010_examples
    Contains VS2010 projects to compile the examples from the example[0-5] directories.

The header and library directories are necessary for development. The other directories can safely be deleted later.


Release notes

Fade2D, version 1.10, March 30th, 2013:
Delaunay Refinement (already included as preview in the previous release) has been improved and is officially released now. Parts of the algorithm can use up to 8 CPUs under Linux if explicitly switched on using Fade2D::enableMultithreading(). There is a new insert method in the API which uses arrays.

Fade2D, version 1.03, Nov. 4th, 2012:
A critical bug has been fixed, please switch to the current version. Performance upgrade: A first step towards multithreading has been made in the Linux version. In order to facilitate the installation for users without administrator privileges the installers have been replaced by a simple zipped directory that contains everything. Meshing through Delaunay Refinement is scheduled for the next release but it is pre-released as an experimental feature in the current version 1.03.

Fade2D, version 1.02, 9/2012:
An additional debug library version for Windows has been added and the directory structure has been reorganized.

Fade2D, version 1.01, 9/2012:
This is a stable public release. Since version 0.9 we have introduced insertion of constraint edges and the zone concept. Moreover the API is under a namespace now. Boost types have been removed from the API to avoid this additional dependency. New demo software has been written and the library is now also available for 64-bit Windows.