comparison 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
comparison
equal deleted inserted replaced
1113:19581a4caf90 1114:7135b5eaa6b4
1448 if hasattr(self, 'curvilinearPositions'): 1448 if hasattr(self, 'curvilinearPositions'):
1449 if self.existsAtInstant(t): 1449 if self.existsAtInstant(t):
1450 i = int(floor(t)) 1450 i = int(floor(t))
1451 p1 = self.getCurvilinearPositionAtInstant(i) 1451 p1 = self.getCurvilinearPositionAtInstant(i)
1452 p2 = self.getCurvilinearPositionAtInstant(i+1) 1452 p2 = self.getCurvilinearPositionAtInstant(i+1)
1453 alpha = t-float(i) 1453 if p1[2] == p2[2]:
1454 if alpha < 0.5: 1454 alpha = t-float(i)
1455 lane = p1[2] 1455 # if alpha < 0.5:
1456 # lane = p1[2]
1457 # else:
1458 # lane = p2[2]
1459 return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], p1[2]]
1456 else: 1460 else:
1457 lane = p2[2] 1461 print('Object {} changes lane at {}'.format(self.getNum(), t))
1458 return [(1-alpha)*p1[0]+alpha*p2[0], (1-alpha)*p1[1]+alpha*p2[1], lane]
1459 else: 1462 else:
1460 print('Object {} does not exist at {}'.format(self.getNum(), t)) 1463 print('Object {} does not exist at {}'.format(self.getNum(), t))
1461 else: 1464 else:
1462 print('Object {} has no curvilinear positions'.format(self.getNum())) 1465 print('Object {} has no curvilinear positions'.format(self.getNum()))
1463 1466