X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrack.cpp;h=030af70bc85fd1d2e667b4e47a24830a7ac915ea;hb=e5cd9e4fbc577036a0385c985b6b65df8218d0a2;hp=7c08b6c46766c0d3e116c775d2f9f802e5c81653;hpb=90790c9a28793d31b9ea38eea2f55652a0e9297b;p=r2c2.git diff --git a/source/libmarklin/track.cpp b/source/libmarklin/track.cpp index 7c08b6c..030af70 100644 --- a/source/libmarklin/track.cpp +++ b/source/libmarklin/track.cpp @@ -104,7 +104,11 @@ void Track::set_turnout_id(unsigned i) turnout_id = i; layout.create_blocks(*this); if(layout.has_driver() && turnout_id) + { layout.get_driver().add_turnout(turnout_id); + if(type.is_double_address()) + layout.get_driver().add_turnout(turnout_id+1); + } } void Track::set_sensor_id(unsigned i) @@ -296,6 +300,7 @@ TrackPoint Track::get_point(unsigned epi, unsigned path, float d) const float s = sin(rot); p.pos = Point(pos.x+c*p.pos.x-s*p.pos.y, pos.y+s*p.pos.x+c*p.pos.y, 0); + p.dir += rot; if(type.get_endpoints().size()==2) { float len = type.get_path_length(path); @@ -315,6 +320,11 @@ TrackPoint Track::get_point(unsigned epi, unsigned path, float d) const return p; } +TrackPoint Track::get_point(unsigned epi, float d) const +{ + return get_point(epi, active_path, d); +} + void Track::save(list &st) const { st.push_back((DataFile::Statement("position"), pos.x, pos.y, pos.z));