Changes since last snapshot
- Graph6 format (with explicit header!) is added to the generic reader
- graph algorithms:
- new isTwoEdgeConnected() to check a graph for 2-edge-connectivity
- renamed and deprecated some forest functions with misleading names
- algorithms in graphalg/ShortestPathAlgorithms.h are now templates
- graph generators:
- new randomSimpleConnectedGraph() generator
- made randomTree() faster
- geometry classes:
- DPoint, IPoint are now template specializations of GenericPoint
- DPolyline, IPolyline are now template specializations of new
GenericPolyline - new GenericLine and new GenericSegment represent (infinite) lines and
(finite) line segments, respectively, replacing DLine being a mix
of both (for double only); breaking changes! - improved intersection methods of these classes
- removed: DVector (simply use DPoint), DScaler, DRound
- new DRect::intersection()
- fixed bug and generalized DPolyline::normalize()
- very basic types:
- removed classes Stack, StackPure, BoundedStack in favor of ArrayBuffer
- made Skiplist usable with range-based for-loops
- new == and != operators for Array and ArrayBuffer
- add Graph::allNodes() and Graph::allEdges() for arrays
- Math:
- Math is now a namespace instead of a static class
- new radiansToDegrees() and degreesToRadians()
- new updateMin() and updateMax()
- new nextPower2()
- further removed classes:
- MixedForceLayout
- HyperGraph (but Hypergraph still exists)
- EList, EFreeList, EStack
- build system (CMake) changes:
- new option OGDF_WARNING_ERRORS to treat (some) warnings as errors
- new option OGDF_DEBUG_MODE to enable even more costly debugging
- NOMINMAX is defined for Windows
- thread affinity is set under Linux for Fast Multipole Embedder
- general (sometimes internal) changes:
- new GenericComparer, replaces simple custom comparers by using lambdas
- many std things imported into the ogdf namespace are now removed from it
(e.g., swap, [io]stream, numeric_limits, cin, cout, endl, flush, ios) - new safeForEach() and safeTestForEach() as simple functions to iterate
over containers destructively (i.e., the current member of an iteration
may be destroyed) - SubsetEnumerator is now less dependent on a particular List type
- further code deduplications and simplifications
- silenced many classes
- replaced some List usages by ArrayBuffer where sufficient
- initialized former uninitialized member variables
- fixed implicit fallthrough warnings
- improved readability and consistency in code
- improved const-correctness
- improved documentation
- new tests and looooooots of bug fixes
Note that the minimum supported version for GCC changed to 4.9.2.