]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/trackpart.cpp
Fix memory leaks and other bad stuff
[r2c2.git] / source / libmarklin / trackpart.cpp
index 046b9276ac23025a34ac586ef2509d74ca2b1d7f..f2b61be1f37f2050105d94f020d4347aeb1dd2dc 100644 (file)
@@ -16,35 +16,35 @@ TrackPart::TrackPart():
        dir(0),
        length(0),
        radius(0),
-       route(0),
+       path(0),
        dead_end(false)
 { }
 
 void TrackPart::collect_endpoints(vector<Endpoint> &eps) const
 {
-       eps.push_back(Endpoint(pos.x, pos.y, dir+M_PI, 1<<route));
+       eps.push_back(Endpoint(pos.x, pos.y, dir+M_PI, 1<<path));
 
        if(dead_end)
                ;
        else if(radius)
        {
-               float a=((radius<0) ? -length : length);
-               Point p=get_point(length*abs(radius));
-               eps.push_back(Endpoint(p.x, p.y, dir+a, 1<<route));
+               float a = ((radius<0) ? -length : length);
+               Point p = get_point(length*abs(radius));
+               eps.push_back(Endpoint(p.x, p.y, dir+a, 1<<path));
        }
        else
-               eps.push_back(Endpoint(pos.x+cos(dir)*length, pos.y+sin(dir)*length, dir, 1<<route));
+               eps.push_back(Endpoint(pos.x+cos(dir)*length, pos.y+sin(dir)*length, dir, 1<<path));
 }
 
 Point TrackPart::get_point(float d) const
 {
        if(radius)
        {
-               float a=d/radius;
-               float c=cos(a);
-               float s=sin(a);
-               float rx=radius*sin(dir);
-               float ry=-radius*cos(dir);
+               float a = d/radius;
+               float c = cos(a);
+               float s = sin(a);
+               float rx = radius*sin(dir);
+               float ry = -radius*cos(dir);
                return Point(pos.x+c*rx-s*ry-rx, pos.y+c*ry+s*rx-ry);
        }
        else
@@ -53,34 +53,34 @@ Point TrackPart::get_point(float d) const
 
 
 TrackPart::Loader::Loader(TrackPart &p):
-       part(p)
+       Msp::DataFile::BasicLoader<TrackPart>(p)
 {
        add("start",    &Loader::start);
        add("length",   &TrackPart::length);
        add("radius",   &TrackPart::radius);
-       add("route",    &TrackPart::route);
+       add("path",     &TrackPart::path);
        add("dead_end", &TrackPart::dead_end);
 }
 
 void TrackPart::Loader::finish()
 {
-       if(part.radius)
+       if(obj.radius)
        {
-               part.length*=M_PI/180;
-               part.radius/=1000;
+               obj.length *= M_PI/180;
+               obj.radius /= 1000;
        }
        else
-               part.length/=1000;
+               obj.length /= 1000;
 
-       part.pos.x/=1000;
-       part.pos.y/=1000;
-       part.dir*=M_PI/180;
+       obj.pos.x /= 1000;
+       obj.pos.y /= 1000;
+       obj.dir *= M_PI/180;
 }
 
 void TrackPart::Loader::start(float x, float y, float d)
 {
-       part.pos=Point(x, y);
-       part.dir=d;
+       obj.pos = Point(x, y);
+       obj.dir = d;
 }
 
 } // namespace Marklin