changeset 652:3b13ec964476

removed useless and buggy code
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 24 Apr 2015 17:02:47 +0200
parents 335f6641bf7a
children 107f1ad02b69
files python/traffic_engineering.py
diffstat 1 files changed, 25 insertions(+), 43 deletions(-) [+]
line wrap: on
line diff
--- a/python/traffic_engineering.py	Fri Apr 17 17:33:32 2015 +0200
+++ b/python/traffic_engineering.py	Fri Apr 24 17:02:47 2015 +0200
@@ -26,54 +26,36 @@
         totalTime += h
     return headways
 
-class Vehicle:
-    '''Generic vehicle class
-    1D coordinates for now'''
-    class PredictedTrajectory1D(prediction.PredictedTrajectory):
-        def __init__(self, initialPosition, initialSpeed, control, maxSpeed = None):
-            self.control = control
-            self.maxSpeed = maxSpeed
-            self.probability = None
-            self.predictedPositions = {0: moving.Point(initialPosition)}
-            self.predictedSpeedOrientations = {0: moving.NormAngle(initialSpeed, 0)}
-            
-        def setAcceleration(self, acceleration):
-            self.control = moving.NormAngle(acceleration, 0)
-            
-        def getControl(self):
-            return self.control
+class RoadUser:
+    '''Simple example of inheritance to plot different road users '''
+    def __init__(self, position, velocity):
+        'Both fields are 2D numpy arrays'
+        self.position = position.astype(float)        
+        self.velocity = velocity.astype(float)
+
+    def move(self, deltaT):
+        self.position += deltaT*self.velocity
+
+    def draw(self, init = False):
+        from matplotlib.pyplot import plot
+        if init:
+            self.plotLine = plot(self.position[0], self.position[1], self.getDescriptor())[0]
+        else:
+            self.plotLine.set_data(self.position[0], self.position[1])
 
 
-    def __init__(self, initialPosition = 0, initialSpeed = 0, acceleration = 0, prt = 2.5, leader = None):
-        self.positions = PredictedTrajectory1D(initialPosition, initialSpeed)
-
-        self.prt = prt
-        self.leader = leader
-        # todo add microModel (Treiber)
-
-    def setAcceleration(self, acceleration):
-        self.positions.setAcceleration(acceleration)
+class PassengerVehicle(RoadUser):
+    def getDescriptor(self):
+        return 'dr'
 
-    def updatePosition(self, dt): # knowledge of time outside of vehicle ??
-        speed = self.speed
-        self.speed += self.acceleration*dt
-        self.position += speed*dt
-        if self.log:
-            self.positions.append(self.position)
-            self.speeds.append(self.speed)
-            self.accelerations.append(self.acceleration)
+class Pedestrian(RoadUser):
+    def getDescriptor(self):
+        return 'xb'
 
-    def updateAcceleration(self, dt):
-        '''Updates acceleration and speed as a function of leader
-        and other factors'''
-        pass
+class Cyclist(RoadUser):
+    def getDescriptor(self):
+        return 'og'
 
-    def update(self, dt):
-        self.updatePosition(dt)
-        self.updateAcceleration(dt) # function of leader
-
-    def printStats(self):
-        print('{0} {1} {2}'.format(self.position, self.speed, self.acceleration))
 
 #########################
 # fundamental diagram