changeset 97:b3a1c26e2f22

corrected getObjectInInterval for MovingObject and timeintervals for TemporalIndicator
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 14 Jun 2011 14:14:24 -0400
parents 9928c2fa72cc
children b85912ab4064
files python/moving.py
diffstat 1 files changed, 9 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/python/moving.py	Mon Jun 13 16:50:40 2011 -0400
+++ b/python/moving.py	Tue Jun 14 14:14:24 2011 -0400
@@ -359,11 +359,12 @@
     def getObjectInTimeInterval(self, inter):
         '''Returns a new object extracted from self,
         restricted to time interval inter'''
-        if inter.inside(self.timeInterval):
-            inter = TimeInterval(inter.first-self.getFirstInstant(), inter.last-self.getFirstInstant())
-            obj = MovingObject(self.num, inter, self.positions.getTrajectoryInInterval(inter), self.geometry, self.userType)
+        intersection = inter.intersection(self.getTimeInterval())
+        if not intersection.empty():
+            trajectoryInterval = TimeInterval(intersection.first-self.getFirstInstant(), intersection.last-self.getFirstInstant())
+            obj = MovingObject(self.num, intersection, self.positions.getTrajectoryInInterval(trajectoryInterval), self.geometry, self.userType)
             if self.velocities:
-                obj.velocities = self.velocities.getTrajectoryInInterval(inter)
+                obj.velocities = self.velocities.getTrajectoryInInterval(trajectoryInterval)
             return obj
         else:
             print 'The object does not exist at '+str(inter)
@@ -481,7 +482,10 @@
     def getTimeInterval(self):
         if not self.timeInterval and type(self.values)==dict:
             instants = self.values.keys()
-            self.timeInterval = TimeInterval(instants[0], instants[-1])
+            if instants:
+                self.timeInterval = TimeInterval(instants[0], instants[-1])
+            else:
+                self.timeInterval = TimeInterval()
         return self.timeInterval
 
     def getValues(self):