summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/svg/svg-affine.cpp28
-rw-r--r--src/svg/svg.h3
2 files changed, 31 insertions, 0 deletions
diff --git a/src/svg/svg-affine.cpp b/src/svg/svg-affine.cpp
index d33947447..0ad54accd 100644
--- a/src/svg/svg-affine.cpp
+++ b/src/svg/svg-affine.cpp
@@ -30,6 +30,7 @@
#include <libnr/nr-scale-matrix-ops.h>
#include <libnr/nr-translate-matrix-ops.h>
#include <libnr/nr-translate-rotate-ops.h>
+#include <libnr/nr-convert2geom.h>
#include "svg.h"
#include "prefs-utils.h"
@@ -38,6 +39,18 @@
#endif
bool
+sp_svg_transform_read(gchar const *str, Geom::Matrix *transform)
+{
+ NR::Matrix mat;
+ if (sp_svg_transform_read(str, &mat)) {
+ *transform = to_2geom(mat);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool
sp_svg_transform_read(gchar const *str, NR::Matrix *transform)
{
int idx;
@@ -162,6 +175,21 @@ sp_svg_transform_read(gchar const *str, NR::Matrix *transform)
#define EQ(a,b) (fabs ((a) - (b)) < 1e-9)
gchar *
+sp_svg_transform_write(Geom::Matrix const &transform)
+{
+ Geom::Matrix const t(transform);
+ return sp_svg_transform_write(&t);
+}
+
+
+gchar *
+sp_svg_transform_write(Geom::Matrix const *transform)
+{
+ NR::Matrix const t(from_2geom(*transform));
+ return sp_svg_transform_write(&t);
+}
+
+gchar *
sp_svg_transform_write(NR::Matrix const &transform)
{
NR::Matrix const t(transform);
diff --git a/src/svg/svg.h b/src/svg/svg.h
index 0e5b4d5d5..a273ceddc 100644
--- a/src/svg/svg.h
+++ b/src/svg/svg.h
@@ -54,8 +54,11 @@ unsigned int sp_svg_length_read_ldd (const gchar *str, SVGLength::Unit *unit, do
std::string sp_svg_length_write_with_units(SVGLength const &length);
+bool sp_svg_transform_read(gchar const *str, Geom::Matrix *transform);
bool sp_svg_transform_read(gchar const *str, NR::Matrix *transform);
+gchar *sp_svg_transform_write(Geom::Matrix const &transform);
+gchar *sp_svg_transform_write(Geom::Matrix const *transform);
gchar *sp_svg_transform_write(NR::Matrix const &transform);
gchar *sp_svg_transform_write(NR::Matrix const *transform);