diff trafficintelligence/moving.py @ 1114:7135b5eaa6b4

correcting poor requirement for interpolateCurvilinearPositions (when changing alignment)
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 21 Jun 2019 15:54:04 -0400
parents 956a66096e91
children cef7aa2f9931
line wrap: on
line diff
--- a/trafficintelligence/moving.py	Thu Jun 20 10:39:21 2019 -0400
+++ b/trafficintelligence/moving.py	Fri Jun 21 15:54:04 2019 -0400
@@ -1450,12 +1450,15 @@
                 i = int(floor(t))
                 p1 = self.getCurvilinearPositionAtInstant(i)
                 p2 = self.getCurvilinearPositionAtInstant(i+1)
-                alpha = t-float(i)
-                if alpha < 0.5:
-                    lane = p1[2]
+                if p1[2] == p2[2]:
+                    alpha = t-float(i)
+                    # if alpha < 0.5:
+                    #     lane = p1[2]
+                    # else:
+                    #     lane = p2[2]
+                    return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], p1[2]]
                 else:
-                    lane = p2[2]
-                return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], lane]
+                    print('Object {} changes lane at {}'.format(self.getNum(), t))
             else:
                 print('Object {} does not exist at {}'.format(self.getNum(), t))
         else: