Code

fix bbox calculation for groups that contain groups with nothing in them (zero bbox...
[inkscape.git] / src / display / nr-arena-image.cpp
index debd9bd0edbd8275e637b12c93f30c9e3f6372da..4803228739ce51217085f242a73ddd7226da67e7 100644 (file)
@@ -20,8 +20,6 @@
 #include "display/nr-arena.h"
 #include "display/nr-filter.h"
 #include "display/nr-filter-gaussian.h"
-#include <livarot/Path.h>
-#include <livarot/Shape.h>
 #include "sp-filter.h"
 #include "sp-filter-reference.h"
 #include "sp-gaussian-blur.h"
@@ -36,9 +34,6 @@ int nr_arena_image_y_sample = 1;
  *
  */
 
-// defined in nr-arena-shape.cpp
-void nr_pixblock_render_shape_mask_or(NRPixBlock &m, Shape *theS);
-
 static void nr_arena_image_class_init (NRArenaImageClass *klass);
 static void nr_arena_image_init (NRArenaImage *image);
 static void nr_arena_image_finalize (NRObject *object);
@@ -93,7 +88,7 @@ nr_arena_image_init (NRArenaImage *image)
     image->width = 256.0;
     image->height = 256.0;
 
-    nr_matrix_set_identity (&image->grid2px);
+    image->grid2px.set_identity();
 
     image->style = 0;
 }
@@ -109,9 +104,9 @@ nr_arena_image_finalize (NRObject *object)
 }
 
 static unsigned int
-nr_arena_image_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int state, unsigned int reset)
+nr_arena_image_update( NRArenaItem *item, NRRectL */*area*/, NRGC *gc, unsigned int /*state*/, unsigned int /*reset*/ )
 {
-    NRMatrix grid2px;
+    NR::Matrix grid2px;
 
     NRArenaImage *image = NR_ARENA_IMAGE (item);
 
@@ -119,7 +114,7 @@ nr_arena_image_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int
     nr_arena_item_request_render (item);
 
     /* Copy affine */
-    nr_matrix_invert (&grid2px, &gc->transform);
+    grid2px = gc->transform.inverse();
     double hscale, vscale; // todo: replace with NR::scale
     if (image->px) {
         hscale = image->pxw / image->width;
@@ -129,12 +124,12 @@ nr_arena_image_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int
         vscale = 1.0;
     }
 
-    image->grid2px[0] = grid2px.c[0] * hscale;
-    image->grid2px[2] = grid2px.c[2] * hscale;
-    image->grid2px[4] = grid2px.c[4] * hscale;
-    image->grid2px[1] = grid2px.c[1] * vscale;
-    image->grid2px[3] = grid2px.c[3] * vscale;
-    image->grid2px[5] = grid2px.c[5] * vscale;
+    image->grid2px[0] = grid2px[0] * hscale;
+    image->grid2px[2] = grid2px[2] * hscale;
+    image->grid2px[4] = grid2px[4] * hscale;
+    image->grid2px[1] = grid2px[1] * vscale;
+    image->grid2px[3] = grid2px[3] * vscale;
+    image->grid2px[5] = grid2px[5] * vscale;
 
     image->grid2px[4] -= image->x * hscale;
     image->grid2px[5] -= image->y * vscale;
@@ -175,12 +170,12 @@ nr_arena_image_update (NRArenaItem *item, NRRectL *area, NRGC *gc, unsigned int
 #define b2i (image->grid2px)
 
 static unsigned int
-nr_arena_image_render (cairo_t *ct, NRArenaItem *item, NRRectL *area, NRPixBlock *pb, unsigned int flags)
+nr_arena_image_render( cairo_t *ct, NRArenaItem *item, NRRectL */*area*/, NRPixBlock *pb, unsigned int /*flags*/ )
 {
     nr_arena_image_x_sample = prefs_get_int_attribute ("options.bitmapoversample", "value", 1);
     nr_arena_image_y_sample = nr_arena_image_x_sample;
 
-    bool outline = (item->arena->rendermode == RENDERMODE_OUTLINE);
+    bool outline = (item->arena->rendermode == Inkscape::RENDERMODE_OUTLINE);
 
     NRArenaImage *image = NR_ARENA_IMAGE (item);
 
@@ -288,13 +283,13 @@ distance_to_segment (NR::Point p, NR::Point a1, NR::Point a2)
 }
 
 static NRArenaItem *
-nr_arena_image_pick (NRArenaItem *item, NR::Point p, double delta, unsigned int sticky)
+nr_arena_image_pick( NRArenaItem *item, NR::Point p, double delta, unsigned int /*sticky*/ )
 {
     NRArenaImage *image = NR_ARENA_IMAGE (item);
 
     if (!image->px) return NULL;
 
-    bool outline = (item->arena->rendermode == RENDERMODE_OUTLINE);
+    bool outline = (item->arena->rendermode == Inkscape::RENDERMODE_OUTLINE);
 
     if (outline) {