Mercurial > hg > nsaunier > traffic-intelligence
comparison python/moving.py @ 776:84420159c5f4 dev
added __eq__ functions for Point and Trajectory
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 05 Feb 2016 17:17:12 -0500 |
| parents | bd13937818a4 |
| children | 1b22d81ef5ff |
comparison
equal
deleted
inserted
replaced
| 775:56153d439f8c | 776:84420159c5f4 |
|---|---|
| 32 def __str__(self): | 32 def __str__(self): |
| 33 return '[{0}, {1}]'.format(self.first, self.last) | 33 return '[{0}, {1}]'.format(self.first, self.last) |
| 34 | 34 |
| 35 def __repr__(self): | 35 def __repr__(self): |
| 36 return self.__str__() | 36 return self.__str__() |
| 37 | |
| 38 def __eq__(self, other): | |
| 39 return ((self.first == other.first) and (self.last == other.last)) or ((self.first == other.last) and (self.last == other.first)) | |
| 37 | 40 |
| 38 def empty(self): | 41 def empty(self): |
| 39 return self.first > self.last | 42 return self.first > self.last |
| 40 | 43 |
| 41 def center(self): | 44 def center(self): |
| 179 def __str__(self): | 182 def __str__(self): |
| 180 return '({:f},{:f})'.format(self.x,self.y) | 183 return '({:f},{:f})'.format(self.x,self.y) |
| 181 | 184 |
| 182 def __repr__(self): | 185 def __repr__(self): |
| 183 return self.__str__() | 186 return self.__str__() |
| 187 | |
| 188 def __eq__(self, other): | |
| 189 return (self.x == other.x) and (self.y == other.y) | |
| 184 | 190 |
| 185 def __add__(self, other): | 191 def __add__(self, other): |
| 186 return Point(self.x+other.x, self.y+other.y) | 192 return Point(self.x+other.x, self.y+other.y) |
| 187 | 193 |
| 188 def __sub__(self, other): | 194 def __sub__(self, other): |
| 658 return ' '.join([self.__getitem__(i).__str__() for i in xrange(self.length())]) | 664 return ' '.join([self.__getitem__(i).__str__() for i in xrange(self.length())]) |
| 659 | 665 |
| 660 def __repr__(self): | 666 def __repr__(self): |
| 661 return self.__str__() | 667 return self.__str__() |
| 662 | 668 |
| 663 | |
| 664 def __iter__(self): | 669 def __iter__(self): |
| 665 self.iterInstantNum = 0 | 670 self.iterInstantNum = 0 |
| 666 return self | 671 return self |
| 667 | 672 |
| 668 def next(self): | 673 def next(self): |
| 669 if self.iterInstantNum >= self.length(): | 674 if self.iterInstantNum >= self.length(): |
| 670 raise StopIteration | 675 raise StopIteration |
| 671 else: | 676 else: |
| 672 self.iterInstantNum += 1 | 677 self.iterInstantNum += 1 |
| 673 return self[self.iterInstantNum-1] | 678 return self[self.iterInstantNum-1] |
| 679 | |
| 680 def __eq__(self, other): | |
| 681 if self.length() == other.length(): | |
| 682 result = True | |
| 683 for p, po in zip(self, other): | |
| 684 result = result and (p == po) | |
| 685 return result | |
| 686 else: | |
| 687 return False | |
| 674 | 688 |
| 675 def setPositionXY(self, i, x, y): | 689 def setPositionXY(self, i, x, y): |
| 676 if i < self.__len__(): | 690 if i < self.__len__(): |
| 677 self.positions[0][i] = x | 691 self.positions[0][i] = x |
| 678 self.positions[1][i] = y | 692 self.positions[1][i] = y |
