]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/vehicle.cpp
Rename TrackPoint to a more generic OrientedPoint
[r2c2.git] / source / libr2c2 / vehicle.cpp
index 5ea9e5a8d7cb3089c3a2938573a4a9508b2a9c5c..fa44916a19b56cdc5bc5919026917c514994635c 100644 (file)
@@ -166,12 +166,12 @@ const Vehicle::Rod &Vehicle::get_rod(unsigned i) const
 
 void Vehicle::update_position()
 {
-       TrackPoint tp;
+       OrientedPoint p;
 
        if(axles.size()>=2)
        {
                float wheelbase = axles.front().type->position-axles.back().type->position;
-               tp = get_point(track, wheelbase, -axles.back().type->position/wheelbase);
+               p = get_point(track, wheelbase, -axles.back().type->position/wheelbase);
        }
        else if(bogies.size()>=2)
        {
@@ -182,28 +182,28 @@ void Vehicle::update_position()
 
                const vector<Axle> &front_axles = bogies.front().axles;
                float wheelbase = front_axles.front().type->position-front_axles.back().type->position;
-               TrackPoint front_point = get_point(front, wheelbase, -front_axles.back().type->position/wheelbase);
+               OrientedPoint front_point = get_point(front, wheelbase, -front_axles.back().type->position/wheelbase);
 
                const vector<Axle> &back_axles = bogies.back().axles;
                wheelbase = back_axles.front().type->position-back_axles.back().type->position;
-               TrackPoint back_point = get_point(back, wheelbase, -back_axles.back().type->position/wheelbase);
+               OrientedPoint back_point = get_point(back, wheelbase, -back_axles.back().type->position/wheelbase);
 
-               tp = get_point(front_point.pos, back_point.pos, -bogies.back().type->position/bogie_spacing);
+               p = get_point(front_point.position, back_point.position, -bogies.back().type->position/bogie_spacing);
 
-               bogies.front().direction = front_point.dir-tp.dir;
-               bogies.back().direction = back_point.dir-tp.dir;
+               bogies.front().direction = front_point.rotation-p.rotation;
+               bogies.back().direction = back_point.rotation-p.rotation;
        }
        else
-               tp = track.point();
+               p = track.point();
 
        if(!prev)
                check_sensor(type.get_front_axle_offset(), front_sensor);
        if(!next)
                check_sensor(type.get_back_axle_offset(), back_sensor);
 
-       position = tp.pos;
+       position = p.position;
        position.z += layout.get_catalogue().get_rail_elevation();
-       rotation = tp.dir;
+       rotation = p.rotation;
        signal_moved.emit();
 }
 
@@ -347,8 +347,8 @@ void Vehicle::adjust_for_distance(TrackOffsetIter &front, TrackOffsetIter &back,
        int adjust_dir = 0;
        while(1)
        {
-               Vector front_point = front.point().pos;
-               Vector back_point = back.point().pos;
+               Vector front_point = front.point().position;
+               Vector back_point = back.point().position;
 
                float dist = distance(front_point, back_point);
 
@@ -371,24 +371,24 @@ void Vehicle::adjust_for_distance(TrackOffsetIter &front, TrackOffsetIter &back,
        }
 }
 
-TrackPoint Vehicle::get_point(const Vector &front, const Vector &back, float ratio) const
+OrientedPoint Vehicle::get_point(const Vector &front, const Vector &back, float ratio) const
 {
        Vector span = front-back;
 
-       TrackPoint tp;
-       tp.pos = back+span*ratio;
-       tp.dir = Geometry::atan2(span.y, span.x);
+       OrientedPoint p;
+       p.position = back+span*ratio;
+       p.rotation = Geometry::atan2(span.y, span.x);
 
-       return tp;
+       return p;
 }
 
-TrackPoint Vehicle::get_point(const TrackOffsetIter &iter, float tdist, float ratio) const
+OrientedPoint Vehicle::get_point(const TrackOffsetIter &iter, float tdist, float ratio) const
 {
        TrackOffsetIter front = iter.advance(tdist*(1-ratio));
        TrackOffsetIter back = iter.advance(-tdist*ratio);
 
        adjust_for_distance(front, back, tdist, ratio);
-       return get_point(front.point().pos, back.point().pos, ratio);
+       return get_point(front.point().position, back.point().position, ratio);
 }
 
 unsigned Vehicle::get_n_link_slots() const