]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/tracktype.cpp
Rename TrackPoint to a more generic OrientedPoint
[r2c2.git] / source / libr2c2 / tracktype.cpp
index fe3a54cd824d7471cb78c95b47b8ba9ceb33e8df..e9136ac741e704e574199f0d1630a499d6844306 100644 (file)
@@ -61,7 +61,7 @@ const TrackType::Endpoint &TrackType::get_endpoint(unsigned i) const
        return endpoints[i];
 }
 
-TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
+OrientedPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
 {
        if(epi>=endpoints.size())
                throw out_of_range("TrackType::get_point");
@@ -76,8 +76,8 @@ TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
                unsigned n_part_eps = (i->is_dead_end() ? 1 : 2);
                for(unsigned j=0; j<n_part_eps; ++j)
                {
-                       TrackPoint p = i->get_point(j ? i->get_length() : 0);
-                       Vector span = p.pos-endpoints[epi].pos;
+                       OrientedPoint p = i->get_point(j ? i->get_length() : 0);
+                       Vector span = p.position-endpoints[epi].pos;
                        if(dot(span, span)<1e-6)
                        {
                                part = &*i;
@@ -96,9 +96,9 @@ TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
                {
                        if(part_ep==1)
                                d = plen-d;
-                       TrackPoint p = part->get_point(d);
+                       OrientedPoint p = part->get_point(d);
                        if(part_ep==1)
-                               p.dir += Angle::half_turn();
+                               p.rotation += Angle::half_turn();
                        return p;
                }
                else
@@ -113,15 +113,15 @@ TrackPoint TrackType::get_point(unsigned epi, unsigned path, float d) const
        }
 }
 
-TrackPoint TrackType::get_nearest_point(const Vector &p) const
+OrientedPoint TrackType::get_nearest_point(const Vector &p) const
 {
-       TrackPoint result;
+       OrientedPoint result;
        float dist = -1;
 
        for(vector<TrackPart>::const_iterator i=parts.begin(); i!=parts.end(); ++i)
        {
-               TrackPoint n = i->get_nearest_point(p);
-               float d = distance(n.pos, p);
+               OrientedPoint n = i->get_nearest_point(p);
+               float d = distance(n.position, p);
                if(d<dist || dist<0)
                {
                        result = n;
@@ -145,16 +145,16 @@ void TrackType::collect_endpoints()
                for(unsigned j=0; j<n_part_eps; ++j)
                        if(!i->get_link(j))
                        {
-                               TrackPoint p = i->get_point(j ? i->get_length() : 0);
+                               OrientedPoint p = i->get_point(j ? i->get_length() : 0);
                                if(j==0)
-                                       p.dir += Angle::half_turn();
+                                       p.rotation += Angle::half_turn();
 
                                bool found = false;
                                for(vector<Endpoint>::iterator k=endpoints.begin(); k!=endpoints.end(); ++k)
                                {
-                                       Vector d = k->pos-p.pos;
+                                       Vector d = k->pos-p.position;
 
-                                       Angle da = wrap_balanced(k->dir-p.dir);
+                                       Angle da = wrap_balanced(k->dir-p.rotation);
 
                                        if(dot(d, d)<1e-6 && abs(da).radians()<0.01)
                                        {
@@ -165,7 +165,7 @@ void TrackType::collect_endpoints()
                                }
 
                                if(!found)
-                                       endpoints.push_back(Endpoint(p.pos.x, p.pos.y, p.dir, 1<<i->get_path()));
+                                       endpoints.push_back(Endpoint(p.position.x, p.position.y, p.rotation, 1<<i->get_path()));
                        }
        }
 }