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.
PlanarStraightLayout
andPlanarDrawLayout
now have a module option for the embedder.- Various important bugfixes:
- Fixed crashes when compiling with gcc and
-O2
or-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:
PlanarModule
has been renamed toBoothLueker
; both have been adjusted to the new interface specified byPlanarityModule
.- Introduced a base class
PlanarityModule
specifiying the interface for planarity testing and embedding. - Derived
BoothLueker
andBoyerMyvold
fromPlanarityModule
and 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
PlanarModule
for 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.h
instead.
- Changed the interface of embedder modules from
PlanRep
toGraph
. - Added module option for the embedder to
PlanarStraightLyout
andPlanarDrawLayout
.
Minor Modifications
- renamed some graph load functions (for consistent naming):
loadRomeGraphStream
→loadRomeGraph
loadChacoStream
→loadChacoGraph
loadSimpleGraphStream
→loadSimpleGraph
loadBenchHypergraphStream
→loadBenchHypergraph
- made
Array2D::det()
method const - moved definition of
MemElem
toMallocMemoryAllocator
- replaced ogdf’s
min
/max
bystd::min
/std::max
- renamed
eLabelTyp
→eLabelType
- made destructor of class
Thread
virtual
Bug Fixes
- Fixed crashes when compiling with gcc and
-O2
or-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.cfg
to the subdirectorydoc
- moved project templates to the subdirectory
- Documentation adjusted to latest doxygen version (1.8.1.1).