]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/track.cpp
Add vehicles
[r2c2.git] / source / libmarklin / track.cpp
index 7c08b6c46766c0d3e116c775d2f9f802e5c81653..030af70bc85fd1d2e667b4e47a24830a7ac915ea 100644 (file)
@@ -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<DataFile::Statement> &st) const
 {
        st.push_back((DataFile::Statement("position"), pos.x, pos.y, pos.z));