summaryrefslogtreecommitdiffstats
path: root/src/extension/internal/grid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension/internal/grid.cpp')
-rw-r--r--src/extension/internal/grid.cpp17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp
index cf5c7529d..87e0c14ac 100644
--- a/src/extension/internal/grid.cpp
+++ b/src/extension/internal/grid.cpp
@@ -20,6 +20,8 @@
#include "sp-object.h"
#include "util/glib-list-iterators.h"
+#include "svg/path-string.h"
+
#include "extension/effect.h"
#include "extension/system.h"
@@ -44,30 +46,21 @@ Grid::load (Inkscape::Extension::Extension *module)
namespace {
-Glib::ustring build_op(char op, NR::Point p) {
- gchar *floatstring;
- // FIXME: locale formatting issues?
- floatstring = g_strdup_printf("%c%f,%f ", op, p[NR::X], p[NR::Y]);
- Glib::ustring result(floatstring);
- g_free(floatstring);
- return result;
-}
-
Glib::ustring build_lines(int axis, NR::Rect bounding_area,
float offset, float spacing)
{
NR::Point point_offset(0.0, 0.0);
point_offset[axis] = offset;
- Glib::ustring path_data("");
+ SVG::PathString path_data;
for (NR::Point start_point = bounding_area.min();
start_point[axis] + offset <= (bounding_area.max())[axis];
start_point[axis] += spacing) {
NR::Point end_point = start_point;
end_point[1-axis] = (bounding_area.max())[1-axis];
- path_data += build_op('M', start_point + point_offset)
- + build_op('L', end_point + point_offset);
+ path_data.moveTo(start_point + point_offset)
+ .lineTo(end_point + point_offset);
}
return path_data;