From 2471f6815e6d8e939d0781e925a6f67ae898e1ae Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Wed, 25 Jul 2007 12:12:23 +0000 Subject: Add a method to create a rectangular curve (bzr r3297) --- src/sp-image.cpp | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'src/sp-image.cpp') diff --git a/src/sp-image.cpp b/src/sp-image.cpp index 9f6767050..d535874e9 100644 --- a/src/sp-image.cpp +++ b/src/sp-image.cpp @@ -36,6 +36,8 @@ #include "xml/quote.h" #include +#include "libnr/nr-matrix-fns.h" + #include "io/sys.h" #include #if ENABLE_LCMS @@ -1397,21 +1399,11 @@ sp_image_set_curve(SPImage *image) return; } - SPCurve *c = sp_curve_new(); - - double const x = image->x.computed; - double const y = image->y.computed; - double const w = image->width.computed; - double const h = image->height.computed; - - sp_curve_moveto(c, x, y); - sp_curve_lineto(c, x + w, y); - sp_curve_lineto(c, x + w, y + h); - sp_curve_lineto(c, x, y + h); - sp_curve_lineto(c, x, y); - - sp_curve_closepath_current(c); - + NRRect rect; + sp_image_bbox(image, &rect, NR::identity(), 0); + NR::Maybe rect2 = rect.upgrade(); + SPCurve *c = sp_curve_new_from_rect(rect2); + if (image->curve) { image->curve = sp_curve_unref(image->curve); } @@ -1420,8 +1412,7 @@ sp_image_set_curve(SPImage *image) image->curve = sp_curve_ref(c); } - sp_curve_unref(c); - + sp_curve_unref(c); } /** -- cgit v1.2.3