X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Fsvgexporter.cpp;h=f7248ef6dfffb5988e85f880c399a4574101ff68;hb=5929b101ee38b5668b328e7b1eac4bf49c912412;hp=74d9ccf0278be2779095a4f284076bbe38ddc7cb;hpb=4c8c03d25ec4d58772ceb5b287deab645fdae19f;p=r2c2.git diff --git a/source/designer/svgexporter.cpp b/source/designer/svgexporter.cpp index 74d9ccf..f7248ef 100644 --- a/source/designer/svgexporter.cpp +++ b/source/designer/svgexporter.cpp @@ -11,14 +11,11 @@ using namespace Msp; using namespace R2C2; SvgExporter::SvgExporter(const Layout &l): - layout(l), - gauge(0) + layout(l) { } void SvgExporter::save(const string &fn) { - gauge = layout.get_catalogue().get_gauge(); - xmlpp::Document *doc = new xmlpp::Document; root = doc->create_root_node("svg", "http://www.w3.org/2000/svg"); @@ -26,7 +23,7 @@ void SvgExporter::save(const string &fn) style->set_attribute("type", "text/css"); styles.push_back(".rail { fill: none; stroke: #000000; }"); styles.push_back(".border { fill: none; stroke: #808080; }"); - styles.push_back(format(".artnr { text-anchor: middle; font-family: sans; font-size: %.3f; }", gauge*750)); + styles.push_back(".artnr { text-anchor: middle; font-family: sans; }"); defs = root->add_child("defs"); @@ -37,6 +34,7 @@ void SvgExporter::save(const string &fn) { save_track(**i); + float gauge = (*i)->get_type().get_appearance().get_gauge(); unsigned n_endpoints = (*i)->get_type().get_endpoints().size(); for(unsigned j=0; jset_child_text(join(styles.begin(), styles.end(), "\n")); root->set_attribute("viewBox", format("%.3f %.3f %.3f %.3f", - minp.x*1000-gauge*3, -maxp.y*1000-gauge*3, (maxp.x-minp.x)*1000+gauge*6, (maxp.y-minp.y)*1000+gauge*6)); + minp.x*1000, -maxp.y*1000, (maxp.x-minp.x)*1000, (maxp.y-minp.y)*1000)); doc->write_to_file_formatted(fn); } string SvgExporter::create_appearance(const TrackAppearance &appearance) { - string key = format("a%p", &appearance); + float gauge = appearance.get_gauge(); + string key = format("a%.0f", gauge*1000); if(!appearances_created.count(&appearance)) { @@ -71,6 +70,7 @@ string SvgExporter::create_appearance(const TrackAppearance &appearance) styles.push_back(format(".%s .rail { stroke-width: %.3f }", key, rail_width*1000)); styles.push_back(format(".%s .border { stroke-width: %.3f }", key, rail_width*500)); + styles.push_back(format(".%s .artnr { font-size: %.3f }", key, gauge*750)); appearances_created.insert(&appearance); } @@ -108,6 +108,7 @@ string SvgExporter::create_track_type(const TrackType &type) group->set_attribute("id", key); group->set_attribute("class", appearance_key); + float gauge = appearance.get_gauge(); float rail_width = appearance.get_rail_profile().get_width(); const vector &endpoints = type.get_endpoints();