Start tidying up algorithms module.

This commit is contained in:
Piv
2020-03-05 20:26:07 +10:30
parent e3f2cbd307
commit 94d72544b4

View File

@@ -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