Mercurial > hg > nsaunier > 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 |
