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 → PlanarizationLayoutUMLLayoutModule inherits from LayoutModulePlanarizationLayout 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 → Array2DHashingArray → HashArrayTwoDHashArray → HashArray2DTwoDHashIterator → HashConstIterator2Dsize_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.