diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp
index 5833db4fd7b1a55db98152d9cab183ef285c97af..cff464e9f1fba1c57e71fd953c17eced7f9a59f5 100644 (file)
--- a/src/trace/trace.cpp
+++ b/src/trace/trace.cpp
#include <sp-item.h>
#include <sp-shape.h>
#include <sp-image.h>
+#include <libnr/nr-matrix-ops.h>
+#include <2geom/transforms.h>
#include <display/nr-arena.h>
#include <display/nr-arena-shape.h>
return Glib::RefPtr<Gdk::Pixbuf>(NULL);
}
- NRArenaItem *aImg = sp_item_get_arenaitem(img, desktop->dkey);
+ NRArenaItem *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);
for (iter = sioxShapes.begin() ; iter!=sioxShapes.end() ; iter++)
{
SPItem *item = *iter;
- NRArenaItem *aItem = sp_item_get_arenaitem(item, desktop->dkey);
+ NRArenaItem *aItem = item->get_arenaitem(desktop->dkey);
arenaItems.push_back(aItem);
}
{
//Get absolute X,Y position
double xpos = ((double)aImg->bbox.x0) + iwscale * (double)col;
- NR::Point point(xpos, ypos);
- point *= aImg->transform;
+ Geom::Point point(xpos, ypos);
+ if (aImg->transform)
+ point *= *aImg->transform;
//point *= imgMat;
//point = desktop->doc2dt(point);
//g_message("x:%f y:%f\n", point[0], point[1]);
return;
}
SPDocument *doc = SP_ACTIVE_DOCUMENT;
- sp_document_ensure_up_to_date(doc);
+ doc->ensure_up_to_date();
SPImage *img = getSelectedSPImage();
}
//### Get pointers to the <image> and its parent
- Inkscape::XML::Node *imgRepr = SP_OBJECT(img)->repr;
+ //XML Tree being used directly here while it shouldn't be.
+ Inkscape::XML::Node *imgRepr = SP_OBJECT(img)->getRepr();
Inkscape::XML::Node *par = sp_repr_parent(imgRepr);
//### Get some information for the new transform()
if (sp_repr_get_double(imgRepr, "height", &dval))
height = dval;
- NR::Matrix trans(NR::translate(x, y));
-
double iwidth = (double)pixbuf->get_width();
double iheight = (double)pixbuf->get_height();
double iwscale = width / iwidth;
double ihscale = height / iheight;
- NR::Matrix scal(NR::scale(iwscale, ihscale));
+ Geom::Translate trans(x, y);
+ Geom::Scale scal(iwscale, ihscale);
//# Convolve scale, translation, and the original transform
- NR::Matrix tf(scal);
- tf *= trans;
+ Geom::Matrix tf(scal * trans);
tf *= img->transform;
if (reprobj)
{
SPItem *newItem = SP_ITEM(reprobj);
- sp_item_write_transform(newItem, pathRepr, tf, NULL);
+ newItem->doWriteTransform(pathRepr, tf, NULL);
}
if (nrPaths == 1)
{
}
//## inform the document, so we can undo
- sp_document_done(doc, SP_VERB_SELECTION_TRACE, _("Trace bitmap"));
+ SPDocumentUndo::done(doc, SP_VERB_SELECTION_TRACE, _("Trace bitmap"));
engine = NULL;