8 TrackType::TrackType(unsigned a):
12 float TrackType::get_total_length() const
15 for(vector<TrackPart>::const_iterator i=parts.begin(); i!=parts.end(); ++i)
25 unsigned TrackType::get_n_routes() const
28 for(vector<TrackPart>::const_iterator i=parts.begin(); i!=parts.end(); ++i)
34 void TrackType::collect_endpoints()
38 for(vector<TrackPart>::iterator i=parts.begin(); i!=parts.end(); ++i)
39 i->collect_endpoints(endpoints);
41 for(vector<Endpoint>::iterator i=endpoints.begin(); i!=endpoints.end();)
44 for(vector<Endpoint>::iterator j=i+1; j!=endpoints.end();)
48 if(dx*dx+dy*dy<0.0001)
50 float da=i->dir-j->dir;
72 TrackType::Loader::Loader(TrackType &t):
75 add("description", &TrackType::description);
76 add("part", &Loader::part);
79 void TrackType::Loader::finish()
81 ttype.collect_endpoints();
84 void TrackType::Loader::part()
88 ttype.parts.push_back(p);
91 } // namespace Marklin