Today, we released the new version v.2012.07 (Sakura) of OGDF! This release is mainly a clean-up and bug-fix release, bringing support for new compilers and fixing some annoying bugs.
Highlights
- Improved compiler support:
- Support for the latest compiler versions (gcc 4.7, Visual Studio 2012) and new compilers (MinGW, LLVM/clang).
- Adjusted generated project files for Visual Studio, so that source files can now be compiled in parallel.
- Support for shared libraries (DLLs for Visual Studio 2008-2012, shared libraries for gcc, LLVM/clang).
- Clean-up of classes for planarity testing and embedding.
PlanarStraightLayoutandPlanarDrawLayoutnow have a module option for the embedder.- Various important bugfixes:
- Fixed crashes when compiling with gcc and
-O2or-O3. By default, OGDF release builds now use-O2. - Fixed crashes of some embedder modules when the input graph contained blocks just consisting of two parallel edges.
- Fixed a bug in the special handling of isolated nodes when minimizing crossings with
SugiyamaLayout. Previous code did not work as intended, the revised code can decrease the number of crossings in many cases.
- Fixed crashes when compiling with gcc and
Detailed Changelog
New Features
- Clean-up of classes for planarity testing and embedding:
PlanarModulehas been renamed toBoothLueker; both have been adjusted to the new interface specified byPlanarityModule.- Introduced a base class
PlanarityModulespecifiying the interface for planarity testing and embedding. - Derived
BoothLuekerandBoyerMyvoldfromPlanarityModuleand adjusted their interface. - Added new functions for planarity testing and embedding to
extended_graph_alg.h, making it easier to call this functionality:isPlanar(),planarEmbed(),planarEmbedPlanarGraph() - Remark: If you used
PlanarModulefor planarity testing or embedding in your programs, you have to rewrite your code! The simplest way is to use the above functions fromextended_graph_alg.hinstead.
- Changed the interface of embedder modules from
PlanReptoGraph. - Added module option for the embedder to
PlanarStraightLyoutandPlanarDrawLayout.
Minor Modifications
- renamed some graph load functions (for consistent naming):
loadRomeGraphStream→loadRomeGraphloadChacoStream→loadChacoGraphloadSimpleGraphStream→loadSimpleGraphloadBenchHypergraphStream→loadBenchHypergraph
- made
Array2D::det()method const - moved definition of
MemElemtoMallocMemoryAllocator - replaced ogdf’s
min/maxbystd::min/std::max - renamed
eLabelTyp→eLabelType - made destructor of class
Threadvirtual
Bug Fixes
- Fixed crashes when compiling with gcc and
-O2or-O3. By default, OGDF release builds now use-O2. - Fixed crashes of some embedder modules when the input graph contained blocks just consisting of two parallel edges. Affected where
EmbedderMaxFace,EmbedderMaxFaceLayers,EmbedderMinDepth,EmbedderMinDepthMaxFace,EmbedderMinDepthMaxFaceLayers. - Fixed a bug in the special handling of isolated nodes when minimizing crossings with
SugiyamaLayout. Previous code did not work as intended, the revised code can decrease the number of crossings in many cases. - Fixed a bug in
makeConnected(): now also works for empty graphs (just returns) - Added missing header files for
SteinLibParser. - Corrected various errors when compiling
HyperGraph.h.
Build System
- Added support for gcc 4.7.
- Added support for Visual Studio 2012.
- Added support for MinGW on Windows (just 32-bit MinGW version).
- Added support for LLVM/clang on Linux.
- Adjusted generated project files for Visual Studio, so that source files can now be compiled in parallel.
- OGDF can now be built as DLL with Visual Studio 2008-2012
- OGDF can now be built as a shared library on Linux with gcc and LLVM/clang
- Clean-up of OGDF’s main directory:
- moved project templates to the subdirectory
config - moved OGDF’s doxygen configuration file
ogdf-doxygen.cfgto the subdirectorydoc
- moved project templates to the subdirectory
- Documentation adjusted to latest doxygen version (1.8.1.1).

