8 TrackPart::TrackPart():
18 void TrackPart::collect_endpoints(vector<Endpoint> &eps)
20 eps.push_back(Endpoint(x, y, dir+M_PI, 1<<route));
26 float a=((radius<0) ? -length : length);
29 float rx=radius*sin(dir);
30 float ry=-radius*cos(dir);
31 eps.push_back(Endpoint(x+c*rx-s*ry-rx, y+c*ry+s*rx-ry, dir+a, 1<<route));
34 eps.push_back(Endpoint(x+cos(dir)*length, y+sin(dir)*length, dir, 1<<route));
38 TrackPart::Loader::Loader(TrackPart &p):
41 add("start", &Loader::start);
42 add("length", &TrackPart::length);
43 add("radius", &TrackPart::radius);
44 add("route", &TrackPart::route);
45 add("dead_end", &TrackPart::dead_end);
48 void TrackPart::Loader::finish()
52 part.length*=M_PI/180;
63 void TrackPart::Loader::start(float x, float y, float d)
70 } // namespace Marklin