Hello all.
Revision 10589 removes all trace of libnr from Inkscape's code, which was a major refactoring goal. This is a rather big change and might break various things. Here is a short summary of the changes:
1. NRRect was replaced by Geom:Rect and Geom::OptRect as appropriate. 2. NRRectL was replaced by Geom::IntRect and Geom::OptIntRect as appropriate. Note that the semantics of Geom::IntRect's contains() function for points are slightly incorrect at this time, as max() will be considered part of the rectangle even though it should not be. This doesn't cause any obvious problems for now. 3. SPItem bounding box methods were rewritten. There are now methods for bounding boxes in 3 different coordinate systems: - visualBounds(), geometricBounds(), bounds() - bounds in the item's own coord system - desktopVisualBounds(), desktopGeometricBounds(), desktopBounds() - bounds in desktop coordinate system (origin in bottom left, but user-editable in the future) - documentVisualBounds(), documentGeometricBounds(), documentBounds() - bounds in SVG coordinate system The "geometric" version returns the object bounding box as defined by SVG (does not consider stroke, filters, clipping paths, masks, etc.). The "visual" version considers all of this to return the bounds of the area affected by the object. The legacy "approximate bbox" was removed. 4. NRActiveObject was used only by SPAction. SPAction was converted to GObject and NRActiveObject listeners were replaced by signals. Some changes to verbs were made along the way. 5. nr-point-fns.h was used by some things in the gradient editor and was replaced with code using Geom::LineSegment.
Regards, Krzysztof