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)
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);
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));