From 94d72544b41052215c6ee42fa17b5e9cffe9a609 Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Thu, 5 Mar 2020 20:26:07 +1030 Subject: [PATCH] Start tidying up algorithms module. --- persontracking/algorithms.py | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/persontracking/algorithms.py b/persontracking/algorithms.py index 884ade8..adbbf0b 100644 --- a/persontracking/algorithms.py +++ b/persontracking/algorithms.py @@ -3,13 +3,13 @@ import math class Group: - _minX = None - _maxX = None - _minY = None - _maxY = None - def __init__(self, number, points=[]): self._points = points + self._number = number + self._minX = None + self._maxX = None + self._minY = None + self._maxY = None def add_point(self, point): self._points.append(point) @@ -18,20 +18,21 @@ class Group: def get_points(self): return self._points - # Should use property here. - def set_number(self, number): - self._number = number - - def get_number(self): + @property + def number(self): return self._number + @number.setter + def number(self, number): + self._number = number + def _update_min_max(self, new_point): ''' Updates the in and max points for this group. This is to determine when assigning groups whether the same group is selected. ''' - converted_point = self.convert_lidar_to_cartesian(new_point) + converted_point = convert_lidar_to_cartesian(new_point) if self._minX is None or self._minX > converted_point[0]: self._minX = converted_point[0] @@ -45,11 +46,6 @@ class Group: if self._maxY is None or self._maxY < converted_point[1]: self._maxY = converted_point[1] - def convert_lidar_to_cartesian(self, new_point): - x = new_point[2] * math.sin(new_point[1]) - y = new_point[2] * math.cos(new_point[1]) - return (x, y) - def get_minX(self): return self._minY @@ -63,6 +59,12 @@ class Group: return self._maxY +def convert_lidar_to_cartesian(new_point): + x = new_point[2] * math.sin(new_point[1]) + y = new_point[2] * math.cos(new_point[1]) + return (x, y) + + def calc_groups(scan): ''' Calculates groups of points from a lidar scan. The scan should