]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/track.cpp
Don't give out a turnout ID that's already in use
[r2c2.git] / source / libmarklin / track.cpp
index 6ec3c3bf7cefc78041f3ddb357acdfb1b3fa203a..0a9f1ac83f8977f02935fd6f5838d93265a62278 100644 (file)
@@ -168,11 +168,11 @@ int Track::get_endpoint_by_link(Track &other) const
 
 Point Track::get_endpoint_position(unsigned epi) const
 {
-       const vector<Endpoint> &eps = type.get_endpoints();
+       const vector<TrackType::Endpoint> &eps = type.get_endpoints();
        if(epi>=eps.size())
-               throw InvalidParameterValue("Endpoint index out of range");
+               throw InvalidParameterValue("TrackType::Endpoint index out of range");
 
-       const Endpoint &ep = eps[epi];
+       const TrackType::Endpoint &ep = eps[epi];
 
        float c = cos(rot);
        float s = sin(rot);
@@ -185,11 +185,11 @@ Point Track::get_endpoint_position(unsigned epi) const
 
 float Track::get_endpoint_direction(unsigned epi) const
 {
-       const vector<Endpoint> &eps = type.get_endpoints();
+       const vector<TrackType::Endpoint> &eps = type.get_endpoints();
        if(epi>=eps.size())
-               throw InvalidParameterValue("Endpoint index out of range");
+               throw InvalidParameterValue("TrackType::Endpoint index out of range");
 
-       const Endpoint &ep = eps[epi];
+       const TrackType::Endpoint &ep = eps[epi];
 
        return rot+ep.dir;
 }
@@ -197,8 +197,8 @@ float Track::get_endpoint_direction(unsigned epi) const
 bool Track::snap_to(Track &other, bool link)
 {
        float limit = (link && !flex && !other.get_flex()) ? 1e-6 : 1e-4;
-       const vector<Endpoint> &eps = type.get_endpoints();
-       const vector<Endpoint> &other_eps = other.get_type().get_endpoints();
+       const vector<TrackType::Endpoint> &eps = type.get_endpoints();
+       const vector<TrackType::Endpoint> &other_eps = other.get_type().get_endpoints();
 
        for(unsigned i=0; i<eps.size(); ++i)
        {
@@ -244,7 +244,7 @@ bool Track::snap_to(Track &other, bool link)
 
 bool Track::snap(Point &pt, float &d) const
 {
-       const vector<Endpoint> &eps = type.get_endpoints();
+       const vector<TrackType::Endpoint> &eps = type.get_endpoints();
 
        for(unsigned i=0; i<eps.size(); ++i)
        {