summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJohan B. C. Engelen <jbc.engelen@swissonline.ch>2008-06-12 20:38:23 +0000
committerjohanengelen <johanengelen@users.sourceforge.net>2008-06-12 20:38:23 +0000
commitd7aa714a794de9e8f3893fe42b179a9f6d1cbfc7 (patch)
tree2074d31ea6dcf86583eab6876ebb4bc3f8a77b41 /src
parentadd commentary to some methods about 2geom replacements (diff)
downloadinkscape-d7aa714a794de9e8f3893fe42b179a9f6d1cbfc7.tar.gz
inkscape-d7aa714a794de9e8f3893fe42b179a9f6d1cbfc7.zip
add svg_write and read methods for Geom::Matrix
(bzr r5917)
Diffstat (limited to 'src')
-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);