diff --git a/src/marker.cpp b/src/marker.cpp
index aacbee87531af918f955c9392d2ae67de25af2bb..d77aa87d6430d58d01e21c052932fbbba23814ab 100644 (file)
--- a/src/marker.cpp
+++ b/src/marker.cpp
*
* Copyright (C) 1999-2003 Lauris Kaplinski
* 2004-2006 Bryce Harrington
+ * 2008 Johan Engelen
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include "libnr/nr-scale-matrix-ops.h"
#include "libnr/nr-translate-matrix-ops.h"
#include "libnr/nr-rotate-fns.h"
+#include "libnr/nr-convert2geom.h"
+#include <2geom/matrix.h>
#include "svg/svg.h"
#include "display/nr-arena-group.h"
#include "xml/repr.h"
static void sp_marker_release (SPObject *object);
static void sp_marker_set (SPObject *object, unsigned int key, const gchar *value);
static void sp_marker_update (SPObject *object, SPCtx *ctx, guint flags);
-static Inkscape::XML::Node *sp_marker_write (SPObject *object, Inkscape::XML::Node *repr, guint flags);
+static Inkscape::XML::Node *sp_marker_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
static NRArenaItem *sp_marker_private_show (SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
static void sp_marker_private_hide (SPItem *item, unsigned int key);
* Writes the object's properties into its repr object.
*/
static Inkscape::XML::Node *
-sp_marker_write (SPObject *object, Inkscape::XML::Node *repr, guint flags)
+sp_marker_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags)
{
SPMarker *marker;
marker = SP_MARKER (object);
if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) {
- Inkscape::XML::Document *xml_doc = sp_document_repr_doc(SP_OBJECT_DOCUMENT(object));
repr = xml_doc->createElement("svg:marker");
}
repr->setAttribute("preserveAspectRatio", object->repr->attribute("preserveAspectRatio"));
if (((SPObjectClass *) (parent_class))->write)
- ((SPObjectClass *) (parent_class))->write (object, repr, flags);
+ ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags);
return repr;
}
@@ -629,9 +631,9 @@ sp_marker_show_dimension (SPMarker *marker, unsigned int key, unsigned int size)
* show and transform a child item in the arena for all views with the given key.
*/
NRArenaItem *
-sp_marker_show_instance (SPMarker *marker, NRArenaItem *parent,
- unsigned int key, unsigned int pos,
- NR::Matrix const &base, float linewidth)
+sp_marker_show_instance ( SPMarker *marker, NRArenaItem *parent,
+ unsigned int key, unsigned int pos,
+ Geom::Matrix const &base, float linewidth)
{
for (SPMarkerView *v = marker->views; v != NULL; v = v->next) {
if (v->key == key) {
} else {
/* fixme: Orient units (Lauris) */
m = NR::Matrix(rotate_degrees(marker->orient));
- m *= get_translation(base);
+ m *= NR::get_translation(base);
}
if (marker->markerUnits == SP_MARKER_UNITS_STROKEWIDTH) {
m = NR::scale(linewidth) * m;