]> git.tdb.fi Git - r2c2.git/blob - source/designer/svgexporter.h
Move gauge to TrackAppearance
[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         xmlpp::Element *root;
12         xmlpp::Element *defs;
13         std::set<const R2C2::TrackType *> tracks_created;
14         std::set<const R2C2::TrackAppearance *> appearances_created;
15         std::list<std::string> styles;
16
17 public:
18         SvgExporter(const R2C2::Layout &);
19
20         void save(const std::string &);
21 private:
22         std::string create_appearance(const R2C2::TrackAppearance &);
23         std::string create_point_data(const R2C2::Vector &);
24         std::string create_line_data(const R2C2::Vector &, const R2C2::Vector &);
25         std::string create_curve_data(const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &);
26         std::string create_track_type(const R2C2::TrackType &);
27         void save_track(const R2C2::Track &);
28 };
29
30 #endif