-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2010 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#ifndef SVGEXPORTER_H_
#define SVGEXPORTER_H_
#include <libxml++/libxml++.h>
-#include "libmarklin/layout.h"
+#include "libr2c2/layout.h"
class SvgExporter
{
private:
- const Marklin::Layout &layout;
- float gauge;
- float rail_width;
+ const R2C2::Layout &layout;
+ 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 Marklin::Layout &);
+ SvgExporter(const R2C2::Layout &);
void save(const std::string &);
private:
- void save_track(const Marklin::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