summaryrefslogtreecommitdiffstats
path: root/src/trace
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2011-08-25 19:16:02 +0000
committerKrzysztof Kosinski <tweenk.pl@gmail.com>2011-08-25 19:16:02 +0000
commit093f4174abc07b4ea523617fccdd8028f2670fea (patch)
tree5aba6cd030bc6b0dbb59ec48e32a0b0364b516bd /src/trace
parentGerman translation update (diff)
parentReduce default rendering cache size to 64 MiB (diff)
downloadinkscape-093f4174abc07b4ea523617fccdd8028f2670fea.tar.gz
inkscape-093f4174abc07b4ea523617fccdd8028f2670fea.zip
Merge rendering cache branch (GSoC 2011)
(bzr r10579)
Diffstat (limited to 'src/trace')
-rw-r--r--src/trace/trace.cpp59
1 files changed, 17 insertions, 42 deletions
diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp
index 813f532a4..7c47dc442 100644
--- a/src/trace/trace.cpp
+++ b/src/trace/trace.cpp
@@ -12,8 +12,6 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-
-
#include "trace/potrace/inkscape-potrace.h"
#include "inkscape.h"
@@ -31,23 +29,14 @@
#include "sp-image.h"
#include <2geom/transforms.h>
-#include "display/nr-arena.h"
-#include "display/nr-arena-shape.h"
+#include "display/drawing.h"
+#include "display/drawing-shape.h"
#include "siox.h"
#include "imagemap-gdk.h"
-
-
-namespace Inkscape
-{
-
-namespace Trace
-{
-
-
-
-
+namespace Inkscape {
+namespace Trace {
/**
* Get the selected image. Also check for any SPItems over it, in
@@ -247,25 +236,25 @@ Tracer::sioxProcessImage(SPImage *img,
return Glib::RefPtr<Gdk::Pixbuf>(NULL);
}
- NRArenaItem *aImg = img->get_arenaitem(desktop->dkey);
+ Inkscape::DrawingItem *aImg = img->get_arenaitem(desktop->dkey);
//g_message("img: %d %d %d %d\n", aImg->bbox.x0, aImg->bbox.y0,
// aImg->bbox.x1, aImg->bbox.y1);
- double width = (double)(aImg->bbox.x1 - aImg->bbox.x0);
- double height = (double)(aImg->bbox.y1 - aImg->bbox.y0);
+ double width = aImg->geometricBounds()->width();
+ double height = aImg->geometricBounds()->height();
- double iwidth = (double)simage.getWidth();
- double iheight = (double)simage.getHeight();
+ double iwidth = simage.getWidth();
+ double iheight = simage.getHeight();
double iwscale = width / iwidth;
double ihscale = height / iheight;
- std::vector<NRArenaItem *> arenaItems;
+ std::vector<Inkscape::DrawingItem *> arenaItems;
std::vector<SPShape *>::iterator iter;
for (iter = sioxShapes.begin() ; iter!=sioxShapes.end() ; iter++)
{
SPItem *item = *iter;
- NRArenaItem *aItem = item->get_arenaitem(desktop->dkey);
+ Inkscape::DrawingItem *aItem = item->get_arenaitem(desktop->dkey);
arenaItems.push_back(aItem);
}
@@ -278,25 +267,22 @@ Tracer::sioxProcessImage(SPImage *img,
for (int row=0 ; row<iheight ; row++)
{
- double ypos = ((double)aImg->bbox.y0) + ihscale * (double) row;
+ double ypos = aImg->geometricBounds()->top() + ihscale * (double) row;
for (int col=0 ; col<simage.getWidth() ; col++)
{
//Get absolute X,Y position
- double xpos = ((double)aImg->bbox.x0) + iwscale * (double)col;
+ double xpos = aImg->geometricBounds()->left() + iwscale * (double)col;
Geom::Point point(xpos, ypos);
- if (aImg->transform)
- point *= *aImg->transform;
+ point *= aImg->transform();
//point *= imgMat;
//point = desktop->doc2dt(point);
//g_message("x:%f y:%f\n", point[0], point[1]);
bool weHaveAHit = false;
- std::vector<NRArenaItem *>::iterator aIter;
+ std::vector<Inkscape::DrawingItem *>::iterator aIter;
for (aIter = arenaItems.begin() ; aIter!=arenaItems.end() ; aIter++)
{
- NRArenaItem *arenaItem = *aIter;
- NRArenaItemClass *arenaClass =
- (NRArenaItemClass *) NR_OBJECT_GET_CLASS (arenaItem);
- if (arenaClass->pick(arenaItem, point, 1.0f, 1))
+ Inkscape::DrawingItem *arenaItem = *aIter;
+ if (arenaItem->pick(point, 1.0f, 1))
{
weHaveAHit = true;
break;
@@ -338,17 +324,6 @@ Tracer::sioxProcessImage(SPImage *img,
//result.writePPM("siox2.ppm");
- /* Free Arena and ArenaItem */
- /*
- std::vector<NRArenaItem *>::iterator aIter;
- for (aIter = arenaItems.begin() ; aIter!=arenaItems.end() ; aIter++)
- {
- NRArenaItem *arenaItem = *aIter;
- nr_arena_item_unref(arenaItem);
- }
- nr_object_unref((NRObject *) arena);
- */
-
Glib::RefPtr<Gdk::Pixbuf> newPixbuf = Glib::wrap(result.getGdkPixbuf());
//g_message("siox: done");