]> git.tdb.fi Git - r2c2.git/blob - source/designer/svgexporter.h
20af4d3eda370c0fb7f287efa7951dc6929ab583
[r2c2.git] / source / designer / svgexporter.h
1 #ifndef SVGEXPORTER_H_
2 #define SVGEXPORTER_H_
3
4 #include <libxml++/libxml++.h>
5 #include "libr2c2/layout.h"
6
7 class SvgExporter
8 {
9 private:
10         const R2C2::Layout &layout;
11         float gauge;
12         xmlpp::Element *root;
13         xmlpp::Element *defs;
14         std::set<const R2C2::TrackType *> tracks_created;
15         std::set<const R2C2::TrackAppearance *> appearances_created;
16         std::list<std::string> styles;
17
18 public:
19         SvgExporter(const R2C2::Layout &);
20
21         void save(const std::string &);
22 private:
23         std::string create_appearance(const R2C2::TrackAppearance &);
24         std::string create_point_data(const R2C2::Vector &);
25         std::string create_line_data(const R2C2::Vector &, const R2C2::Vector &);
26         std::string create_curve_data(const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &);
27         std::string create_track_type(const R2C2::TrackType &);
28         void save_track(const R2C2::Track &);
29 };
30
31 #endif