DisjointSets manages disjoint sets of integers (set IDs) from zero to the maximum number of sets. The mapping (for example from nodes to set IDs) is the responsibility of the user.
The first template parameter (the type of the set elements) is now gone because it was not necessary.

The scope of some attribute bit specifiers (for the constructor of GraphAttributes) has grown such that some other could be removed: GraphAttributes::nodeStyle now implies GraphAttributes::nodeColor which has hence been removed. In the same way, use GraphAttributes::edgeStyle instead of GraphAttributes::edgeColor. GraphAttributes::nodeLevel has just been removed.

Some attribute access methods have been renamed for consistency. The following table shows the changes.

old name

new name

remark

arrowEdge

arrowType

attribute type has been changed from GraphAttributes::EdgeArrow to EdgeArrow

colorEdge

strokeColor

colors are now represented by Color (instead of String)

colorNode

fillColor

colors are now represented by Color (instead of String)

edgeWidth

strokeWidth

attribute type has been changed from double to float

labelEdge

label

labelNode

label

lineWidthNode

strokeWidth

attribute type has been changed from double to float

nodeLine

strokeColor

colors are now represented by Color (instead of String)

nodePattern

fillPattern

attribute type has been changed from GraphAttributes::BrushPattern to FillPattern;
use setFillPattern to change the attribute value

shapeNode

shape

attribute type has been changed from int to Shape

styleEdge

strokeType

attribute type has been changed from GraphAttributes::EdgeStyle to StrokeType;
use setStrokeType to change the attribute value

styleNode

strokeType

attribute type has been changed from GraphAttributes::EdgeStyle to StrokeType;
use setStrokeType to change the attribute value

The setter method directed has been renamed to setDirected.

Some types and attributes have been removed as they are not used anymore:

Because Abacus' own timers are replaced by OGDF timers,
the file abacus/timer.h has been removed. Instead include ogdf/basic/Stopwatch.h and use the StopwatchWallClock or StopwatchCPU classes. Note that they must not be initialized with Abacus objects.

Abacus is not fully const correct.
For the OGDF integration, missing const declarations have been inserted.
However, when using old Abacus code (written against the original Abacus) this may lead to non-compiling code when you inherit from Abacus classes
with virtual methods that were non-const and are now const.
For example, virtual Constraint methods like print and coeff are all declared const now.
If you define non-const print and coeff in your own constraints,
the const print and coeff version are still undefined.
C++ compilers like g++ may hence display errors like ”cannot allocate an object of abstract type ‘YourConstraintType’”.
Adding const keywords in the right position(s) should solve the problems.