]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/svgexporter.h
Overhaul SvgExporter to use SVG defs for tracks
[r2c2.git] / source / designer / svgexporter.h
index e498d3ddd38048b845e436eeaf74225bfea70faf..20af4d3eda370c0fb7f287efa7951dc6929ab583 100644 (file)
@@ -9,14 +9,23 @@ class SvgExporter
 private:
        const R2C2::Layout &layout;
        float gauge;
-       float rail_width;
+       xmlpp::Element *root;
+       xmlpp::Element *defs;
+       std::set<const R2C2::TrackType *> tracks_created;
+       std::set<const R2C2::TrackAppearance *> appearances_created;
+       std::list<std::string> styles;
 
 public:
        SvgExporter(const R2C2::Layout &);
 
        void save(const std::string &);
 private:
-       void save_track(const R2C2::Track &, xmlpp::Element &);
+       std::string create_appearance(const R2C2::TrackAppearance &);
+       std::string create_point_data(const R2C2::Vector &);
+       std::string create_line_data(const R2C2::Vector &, const R2C2::Vector &);
+       std::string create_curve_data(const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &, const R2C2::Vector &);
+       std::string create_track_type(const R2C2::TrackType &);
+       void save_track(const R2C2::Track &);
 };
 
 #endif