Code

Rearrange to enable code that does not directly rely on lcms.
[inkscape.git] / src / sp-line.cpp
index 5fed6a62ea1aff7e5c019ae675a5c40f7a4583c4..a3964b171daed3db25feccb635b328c00ce6e346 100644 (file)
@@ -28,10 +28,10 @@ static void sp_line_init (SPLine *line);
 
 static void sp_line_build (SPObject * object, SPDocument * document, Inkscape::XML::Node * repr);
 static void sp_line_set (SPObject *object, unsigned int key, const gchar *value);
-static Inkscape::XML::Node *sp_line_write (SPObject *object, Inkscape::XML::Node *repr, guint flags);
+static Inkscape::XML::Node *sp_line_write (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
 
 static gchar *sp_line_description (SPItem * item);
-static NR::Matrix sp_line_set_transform(SPItem *item, NR::Matrix const &xform);
+static Geom::Matrix sp_line_set_transform(SPItem *item, Geom::Matrix const &xform);
 
 static void sp_line_update (SPObject *object, SPCtx *ctx, guint flags);
 static void sp_line_set_shape (SPShape *shape);
@@ -159,12 +159,11 @@ sp_line_update (SPObject *object, SPCtx *ctx, guint flags)
 
 
 static Inkscape::XML::Node *
-sp_line_write (SPObject *object, Inkscape::XML::Node *repr, guint flags)
+sp_line_write (SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags)
 {
        SPLine *line  = SP_LINE (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:line");
        }
 
@@ -178,7 +177,7 @@ sp_line_write (SPObject *object, Inkscape::XML::Node *repr, guint flags)
        sp_repr_set_svg_double(repr, "y2", line->y2.computed);
 
        if (((SPObjectClass *) (parent_class))->write)
-               ((SPObjectClass *) (parent_class))->write (object, repr, flags);
+               ((SPObjectClass *) (parent_class))->write (object, xml_doc, repr, flags);
 
        return repr;
 }
@@ -189,28 +188,28 @@ sp_line_description(SPItem */*item*/)
     return g_strdup(_("<b>Line</b>"));
 }
 
-static NR::Matrix
-sp_line_set_transform (SPItem *item, NR::Matrix const &xform)
+static Geom::Matrix
+sp_line_set_transform (SPItem *item, Geom::Matrix const &xform)
 {
        SPLine *line = SP_LINE (item);
-       NR::Point points[2];
+       Geom::Point points[2];
 
-       points[0] = NR::Point(line->x1.computed, line->y1.computed);
-       points[1] = NR::Point(line->x2.computed, line->y2.computed);
+       points[0] = Geom::Point(line->x1.computed, line->y1.computed);
+       points[1] = Geom::Point(line->x2.computed, line->y2.computed);
 
        points[0] *= xform;
        points[1] *= xform;
 
-       line->x1.computed = points[0][NR::X];
-       line->y1.computed = points[0][NR::Y];
-       line->x2.computed = points[1][NR::X];
-       line->y2.computed = points[1][NR::Y];
+       line->x1.computed = points[0][Geom::X];
+       line->y1.computed = points[0][Geom::Y];
+       line->x2.computed = points[1][Geom::X];
+       line->y2.computed = points[1][Geom::Y];
 
-       sp_item_adjust_stroke(item, NR::expansion(xform));
+       sp_item_adjust_stroke(item, xform.descrim());
 
        SP_OBJECT (item)->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG);
 
-       return NR::identity();
+       return Geom::identity();
 }
 
 static void