53 std::stringstream m_ss;
66 std::string
operator()(
const std::string &name,
const T val) {
68 m_ss << name <<
"=\"" << val <<
"\" ";
77 std::string m_linewidth;
78 std::string m_line_color;
79 std::string m_fill_color;
81 std::string m_font_face;
82 std::string m_font_size;
83 std::string m_font_align;
84 std::string m_web_font;
85 std::string m_onmouseover_stroke;
86 std::string m_onmouseout_stroke;
87 std::string m_onmouseover_fill;
88 std::string m_onmouseout_fill;
89 std::string m_onmouseover_tooltip;
90 std::string m_onmouseout_tooltip;
91 std::vector<std::string> m_animate_values;
92 std::string m_animate_stroke;
93 std::string m_animate_stroke_opacity;
94 std::string m_animate_fill;
95 std::string m_animate_fill_opacity;
96 std::string m_animate_times;
98 std::string m_font_size_base;
99 std::string m_font_face_base;
106 void circle_begin(
const vfloat2_t ¢re,
float r) noexcept;
109 void circle_end() noexcept;
115 void rect_begin(
const bfloat2_t &x,
float r) noexcept;
118 void rect_end() noexcept;
122 bool mouseover()
const noexcept;
129 TRASE_BACKEND_VISITABLE()
130 TRASE_ANIMATED_BACKEND_VISITABLE()
133 void init(
const vfloat2_t &pixels,
const char *name,
140 float time_span = 0.f) noexcept;
145 void finalise() noexcept;
148 bool is_interactive();
166 static void set_mouse_down(
const vfloat2_t &mouse_pos);
169 static void set_mouse_up();
172 bool mouse_dragging();
178 void mouse_drag_reset_delta();
184 void reset_scissor();
187 void rotate(
const float angle);
192 void reset_transform();
231 void begin_animated_path();
238 void add_animated_path(
const float time);
245 void end_animated_path(
const float time);
251 void rounded_rect(
const bfloat2_t &x,
float r) noexcept;
257 void rect(
const bfloat2_t &x,
float r = 0.f) noexcept;
266 void add_animated_rect(
const bfloat2_t &x,
float time);
274 void add_animated_stroke(
const RGBA &color);
282 void add_animated_fill(
const RGBA &color);
286 void end_animated_rect();
292 void circle(
const vfloat2_t ¢re,
float r) noexcept;
301 void add_animated_circle(
const vfloat2_t ¢re,
float radius,
float time);
305 void end_animated_circle();
312 void circle_with_text(
const vfloat2_t ¢re,
float radius,
321 void arc(
const vfloat2_t ¢re,
const float radius,
const float angle0,
325 void stroke_color(
const RGBA &color);
329 void stroke_color(
const RGBA &color,
const RGBA &color_mouseover);
338 void tooltip(
const vfloat2_t &x,
const char *
string);
343 void clear_tooltip();
346 void stroke_width(
const float lw);
349 void fill_color(
const RGBA &color);
352 void fill_color(
const RGBA &color,
const RGBA &color_mouseover);
355 void font_size(
float size);
358 void font_face(
const char *face);
363 void import_web_font(
const std::string &url);
366 void font_blur(
const float blur);
369 void text_align(
const unsigned int align);
377 void text(
const vfloat2_t &x,
const char *
string,
const char *end);
380 void end_animate(std::string &animate,
const std::string &name);
381 void end_animate_stroke();
382 void end_animate_fill();
383 void shape_styling();
388 #endif // BACKENDSVG_H_
An N-dimensional vector class.
Definition: Vector.hpp:59
a base class for all the backends that support animation over time
Definition: Backend.hpp:62
Colour class with red, green, blue and alpha in range 0 to 255.
Definition: Colors.hpp:48
Definition: BackendSVG.hpp:73
Definition: Backend.cpp:39