OGDF » Release Notes » Sassafras
Released 2010-10-21.
This release brings various new algorithms and features.
Highlights:
UpwardPlanarization
); outperforms traditional Sugiyama-based methods with respect to crossings by far.FastMultipoleMultilevelEmbedder
), based on the multipole method, well-separated pair decomposition, and a new quadtree space partitioning (Martin Gronemann's Diploma thesis); makes use of SSE and multicore processors and is significantly faster than FMMMLayout
.ModularMultilevelMixer
) with various options for coarsening, placement, and single-level layout.SpringEmbedderKK
) and stress majorization (class StressMajorization
).DominanceLayout
and VisibilityLayout
.MaximumPlanarSubgraph
and MaximumCPlanarSubgraph
).OGDF_MEMORY_POOL_TS
; usually the deafult),OGDF_MEMORY_POOL_NTS
), andOGDF_MEMORY_MALLOC_TS
).Thread
, CriticalSection
, Mutex
, Barrier
.System
provides methods for accessing system-dependent information and functionality (processor features, memory usage, file system).DominanceLayout
, based on dominance layout of st-digraphs.VisibilityLayout
, based on computation of a visibility representation.UpwardPlanarization
); implements the algorithm by Chimani, Gutwenger, Mutzel and Wong. Outperforms traditional Sugiyama-based methods with respect to number of crossings by far. Uses module options for upward planarization and layout:UpwardPlanarizerModule
: its implementation SubgraphUpwardPlanarizer
applies a 2-phase approach: first compute a feasible upward planar subgraph (FUPSModule
with implementation FUPSSimple
), then insert remaining edges (UpwardEdgeInserterModule
with implementation FixedEmbeddingUpwardEdgeInserter
).UPRLayoutModule
: implementation LayerBasedUPRLayout
which makes use of hierarchy layout modules from the Sugiyama framework.SpringEmbedderKK
)StressMajorization
).FastMultipoleMultilevelEmbedder
), based on the multipole method, well-separated pair decomposition, and a new quadtree space partitioning (Martin Gronemann’s Diploma thesis); makes use of SSE and multicore processors and is significantly faster than FMMMLayout
.ModularMultilevelMixer
) with various options for coarsening, placement, and single-level layout.MultilevelBuilder
module (coarsening): EdgeCoverMerger
, IndependentSetMerger
, LocalBiconnectedMerger
, MatchingMerger
, RandomMerger
, SolarMerger
.InitialPlacer
module (placement): BarycenterPlacer
, CirclePlacer
, MedianPlacer
, RandomPlacer
, SolarPlacer
, ZeroPlacer
.computeMinST
in ogdf/basic/extended_graph_alg.h
.OgmlParser
implements a parser for OGML files.writeOGML
and readClusterGraphOGML
in ClusterGraphAttributes
provide reading and writing of OGML files.MaximumPlanarSubgraph
); requires COIN and ABACUS.MaximumCPlanarSubgraph
); requires COIN and ABACUS.GraphAttributes
provides now a flag indicating if the graph is directed or not (default is true): methods directed for getting / setting, support in reading and writing GML files (readGML
and writeGML
).size_t
for providing better compatibility with 64-bit systems.GEMLayout
revised.ClusterPlanarizationLayout
now allows to pass edge weights in its call, which are used for computing a c-planar subgraph (edges with low weight are preferred).Comparer
interfaces:Comparer<E>
renamed to VComparer<E>
(since it relies on virtual functions).OGDF_AUGMENT_COMPARER
and OGDF_AUGMENT_STATICCOMPARER
to allow easy generation of comparers with full interfaces.StdComparer
(standard comparers) and TargetComparer
(for comparing targets of pointers).Array::grow()
allows now to enlarge an array with empty index set.PlanarizationLayout
: changed default planar subgraph to FastPlanarSubgraph
.BCTree::findPathBCTree()
to pointer (instead of reference) to reflect the fact that the returned object has been allocated with new
.isConnected()
, makeConnected()
: improved performance by replacing recursive with iterative implementation.SugiyamaLayout
: possibly incorrect setting of number of crossings if there are several connected components and arrangeCCs = true
.BoyerMyrvold
: incorrect embedding of self-loops.PlanarAugmentationFix
, EmbedderMaxFace
, EmbedderMaxFaceLayers
, EmbedderMinDepth
, EmbedderMinDepthMaxFace
, EmbedderMinDepthMaxFace
, EmbedderMinDepthPiTa
, PlanarizationLayout
.NodeArray
, EdgeArray
, etc.): crashed if copied array was not initialized for a graph.initByNodes()
.FMMMLayout
on Solaris/SPARC.makeConnected()
.LPSolver_coin
..vcxproj
). For creating such a project, use makeVCXProj.py
(instead of makeVCProj.py
). At the moment, there is just one possible template file for VS 2010 (ogdf.vcxproj.vs2010.template
; which is the default).ogdf.dll.vcproj.vs2005.template
in makeVCProj.config
.Psapi.lib
.-pthread
when compiling and linking with g++.