Mercurial Hosting > traffic-intelligence
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 |