author | Francesco Abbate <francesco.bbt@gmail.com> | 2011年12月06日 22:26:34 +0100 |
---|---|---|
committer | Francesco Abbate <francesco.bbt@gmail.com> | 2011年12月06日 22:26:34 +0100 |
commit | 66988c8e83094758e55282c51f45a01933bcc0c9 (patch) | |
tree | 4a90ebd78fe31080e719c23c7f371bff9597d1f0 /agg-plot/canvas_svg.cpp | |
parent | c9a356e30fcd55e51bdfc303ce47921b09fab2b4 (diff) | |
download | gsl-shell-66988c8e83094758e55282c51f45a01933bcc0c9.tar.gz |
-rw-r--r-- | agg-plot/canvas_svg.cpp | 42 |
diff --git a/agg-plot/canvas_svg.cpp b/agg-plot/canvas_svg.cpp new file mode 100644 index 00000000..d8f05cb9 --- /dev/null +++ b/agg-plot/canvas_svg.cpp @@ -0,0 +1,42 @@ +#include "canvas_svg.h" + +const double canvas_svg::default_stroke_width = 1.0; + +static void canvas_draw_svg(svg_vs* vs, FILE* f, int id, agg::rgba8 c) +{ + str s = vs->write_svg(id, c); + canvas_svg::writeln(f, s, " "); +} + +static void canvas_draw_outline_svg(svg_vs* vs, FILE* f, int id, agg::rgba8 c) +{ + str path; + svg_property_list* ls = vs->svg_path(path); + str s = svg_stroke_path(path, canvas_svg::default_stroke_width, id, c, ls); + list::free(ls); + canvas_svg::writeln(f, s, " "); +} + +template <> +void canvas_svg::draw<svg_vs>(svg_vs& vs, agg::rgba8 c) +{ + canvas_draw_svg(&vs, m_output, m_current_id++, c); +} + +template <> +void canvas_svg::draw_outline<svg_vs>(svg_vs& vs, agg::rgba8 c) +{ + canvas_draw_outline_svg(&vs, m_output, m_current_id++, c); +} + +template <> +void canvas_svg::draw<drawable>(drawable& vs, agg::rgba8 c) +{ + canvas_draw_svg(&vs, m_output, m_current_id++, c); +} + +template <> +void canvas_svg::draw_outline<drawable>(drawable& vs, agg::rgba8 c) +{ + canvas_draw_outline_svg(&vs, m_output, m_current_id++, c); +} |