- const TrackType &ttype = track->get_type();
- string info = format("%d %s", ttype.get_article_number(), ttype.get_description());
- if(mode!=CATALOGUE && abs(track->get_slope())>1e-4)
- info += format(" (slope %.1f%%)", abs(track->get_slope()/ttype.get_total_length()*100));
- if(track->get_turnout_id())
- info += format(" (turnout %d)", track->get_turnout_id());
- else if(track->get_sensor_id())
- info += format(" (sensor %d)", track->get_sensor_id());
-
+ const ObjectType &otype = obj->get_type();
+ string info = format("%d %s", otype.get_article_number(), otype.get_description());
+ if(Track *track = dynamic_cast<Track *>(obj))
+ {
+ if(mode!=CATALOGUE && abs(track->get_tilt()).radians()>1e-4)
+ info += format(" (slope %.1f%%)", abs(tan(track->get_tilt())*100));
+ if(track->get_turnout_id())
+ info += format(" (turnout %d)", track->get_turnout_id());
+ else if(track->get_sensor_id())
+ info += format(" (sensor %d)", track->get_sensor_id());
+ }