]> git.tdb.fi Git - r2c2.git/blobdiff - source/3d/tracktype.cpp
Use generic ObjectTypes in Catalogue
[r2c2.git] / source / 3d / tracktype.cpp
index f6b3d5fb8b053635cbb1732c9885860f59cc61e6..d73387c998dbbece809ef234767e77ff8a4b5802 100644 (file)
@@ -9,13 +9,13 @@ using namespace Msp;
 
 namespace R2C2 {
 
-TrackType3D::TrackType3D(Catalogue3D &cat3d, const TrackType &tt):
-       catalogue(cat3d),
+TrackType3D::TrackType3D(Catalogue3D &c, const TrackType &tt):
+       ObjectType3D(c),
        mesh(0),
        object(0),
        own_data(false)
 {
-       const Catalogue &cat = cat3d.get_catalogue();
+       const Catalogue &cat = catalogue.get_catalogue();
        const vector<TrackPart> &parts = tt.get_parts();
 
        const Profile &ballast_profile = cat.get_ballast_profile();
@@ -117,8 +117,8 @@ void TrackType3D::build_part(const TrackPart &part, const Profile &profile, cons
        unsigned n_vertices = profile.get_n_vertices();
        for(unsigned i=0; i<=nsegs; ++i)
        {
-               TrackPoint basep = part.get_point(i*plen/nsegs);
-               Transform trans = Transform::rotation(basep.dir, Vector(0, 0, 1));
+               OrientedPoint basep = part.get_point(i*plen/nsegs);
+               Transform trans = Transform::rotation(basep.rotation, Vector(0, 0, 1));
 
                for(unsigned j=0; j<n_vertices; ++j)
                {
@@ -126,7 +126,7 @@ void TrackType3D::build_part(const TrackPart &part, const Profile &profile, cons
                        Vector p(0, -v.pos.x, v.pos.y);
                        if(mirror)
                                p.y = -p.y;
-                       p = basep.pos+trans.transform(offset+p);
+                       p = basep.position+trans.transform(offset+p);
 
                        Vector n(0, -v.normal.x, v.normal.y);
                        if(mirror)