changeset 694:c4363aa6f0e5 dev

updated function to find road users for interactions
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 30 Jun 2015 17:56:14 -0400
parents 5ee22bf7e4d5
children 957126bfb456
files python/events.py
diffstat 1 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/python/events.py	Tue Jun 30 15:46:31 2015 -0400
+++ b/python/events.py	Tue Jun 30 17:56:14 2015 -0400
@@ -113,20 +113,23 @@
         return self.roadUserNumbers
 
     def setRoadUsers(self, objects):
-        nums = list(self.getRoadUserNumbers())
-        if objects[nums[0]].getNum() == nums[0]:
+        nums = sorted(list(self.getRoadUserNumbers()))
+        if nums[0]<len(objects) and objects[nums[0]].getNum() == nums[0]:
             self.roadUser1 = objects[nums[0]]
-        if objects[nums[1]].getNum() == nums[1]:
+        if nums[1]<len(objects) and objects[nums[1]].getNum() == nums[1]:
             self.roadUser2 = objects[nums[1]]
 
-        i = 0
-        while i < len(objects) and self.roadUser2 is None:
-            if objects[i].getNum() in nums:
-                if self.roadUser1 is None:
-                    self.roadUser1 = objects[i]
-                else:
-                    self.roadUser2 = objects[i]
-            i += 1
+        if self.roadUser1 is None or self.roadUser2 is None:
+            self.roadUser1 = None
+            self.roadUser2 = None
+            i = 0
+            while i < len(objects) and self.roadUser2 is None:
+                if objects[i].getNum() in nums:
+                    if self.roadUser1 is None:
+                        self.roadUser1 = objects[i]
+                    else:
+                        self.roadUser2 = objects[i]
+                i += 1
 
     def getIndicator(self, indicatorName):
         return self.indicators.get(indicatorName, None)