OGDF » Release Notes » Bubinga
Released 2007-11-23.
This is the second public release of OGDF. This release focuses on improved usability, but also contains new functionality.
Highlights:
DualGraph
representing the geometric dual graph of a combinatorial embedding.GraphAttributes
.Array
, ArrayBuffer
, BoundedQueue
, BoundedStack
, MinHeap
, and Top10Heap
.Hashing
and HashArray
.DefHashFunc<K>
(instead of function hash()
); this can be extended to further types by specializing DefHashFunc
.HashArray2D
.entry(const I&, const I&)
→ operator()(const I1&,const I2&)
key(I&, I&)
→ key1()
and key2()
DualGraph
represents the geometric dual graph of a combinatorial embedding.PlanarAugmentationFix
).PlanarGridLayoutModule
defines this interface.PlanarStraightLayout
, PlanarDrawLayout
, and MixedModelLayout
implement this interface.GraphAttributes
like other layout algorithms; setting/getting of options made consistent with ogdf naming style. The following changes were done:UMLPlanarizationLayout
→ PlanarizationLayout
UMLLayoutModule
inherits from LayoutModule
PlanarizationLayout
has now a call(GraphAttributes&)
setCliqueSize(int)
→ minCliqueSize(int)
int minCliqueSize()
preProcessCliques(bool)
→ preprocessCliques(bool)
bool preprocessCliques()
SugiyamaLayout
has a new option arrangeCCs
(deciding whether components are laid out separately and arranged afterwards) and a new module option packer (for arranging connected components). Setting arrangeCCs
to false and passing node ranks directly allows to get a layout which truly respects the layering across all connected components.LongestPathRanking
has a new option optimizeEdgeLength
; setting this option to false gives a longest-path ranking as known from the literature; default is true which is same behavior as before (performs additional optimization for reducing edge lengths).ArrayBuffer
, BinaryHeap
, BoundedQueue
, BoundedStack
, MinHeap
, Top10Heap
).size()
returns the current number of elements in the container.capacity()
returns the maximal number of elements that can be stored in the container (if applicable).empty()
returns true if the container contains no elements.full()
returns true if the current number of elements has reached the capacity (if applicable).clear()
removes all elements from the container.Array2
→ Array2D
HashingArray
→ HashArray
TwoDHashArray
→ HashArray2D
TwoDHashIterator
→ HashConstIterator2D
size_t
instead of int
in:BendString::BendString(char, size_t)
BendString::operator[](size_t)
BendString::size()
BendString::set(char, size_t)
BendString::init(char, size_t)
String::String(size_t, const char *)
String::length()
String::operator[](size_t)
String::operator const char *()
; use the new method String::cstr()
instead.const String&
instead of const char*
in:CliqueFinder::writeGraph(Graph &, NodeArray<int> &, const String &)
GraphAttributes::readGML(Graph &, const String &)
GraphAttributes::writeGML(const String &)
GraphAttributes::readXML(Graph &G, const String &fileName)
GraphAttributes::writeXML(const String &, const char*, const char*)
GraphAttributes::readRudy(Graph &, const String &)
GraphAttributes::writeRudy(const String &)
String::compare(const String &,const String &)
GraphAttributes
return now default values for type(node) and type(edge) even if the respective arrays are not initialized.GraphStructure
→ GraphObserver
.assignNode()
, unassignNode()
, and removeNodeAssignment()
in ClusterGraph
are now private (not meant for public use).PlanRepUML(const GraphAttributes&)
.PlanarStraightLayout
and PlanarDrawLayout
to PlanarAugmentation
.OrthoFormerUML
(obsolete).OrthoFormerGENERIC → OrthoShaper
.UMLOrthoLayout → OrthoLayout
.UMLPlanarLayoutModule → LayoutPlanRepModule
.ClusterPlanarizationLayout
:ClusterPlanarizationLayout
does not inherit from UMLLayoutModule
anymore.planarLayouter
to new module type LayoutClusterPlanRepModule
.ClusterOrthoLayout
to LayoutClusterPlanRepModule
.ClusterOrthoFormer
to ClusterOrthoShaper
.ClustererBase
→ ClustererModule
and moved header ClustererModule.h
to ogdf/module/
.LPSolver::checkFeasibility()
.print()
function of BoundedQueue
.LPSolver::
in declaration of LPSolver::checkFeasibility()
(did not compile with some g++ versions).makeVCProj.config
for specifying project template and optional settings for LP-solver.ogdf.vcproj.vs2003.template
as project template.release
, cleanrelease
, etc. (instead of release_all
, release_clean
).debug
, saferelease
(-O0
), and release
(-O1
); default is release
which yields a typical performance gain over the previous release (with -O0
) by a factor of 2.5−12. We discourage using -O2
or -O3
with g++, since this is not stable.