Make clear source/target option instead of general setter (bug to remove source/target fixed)

This commit is contained in:
mrg 2021-01-06 09:39:50 -08:00
parent d61fcb3be3
commit b22d2a76a7
1 changed files with 34 additions and 37 deletions

View File

@ -78,81 +78,78 @@ class grid:
for k in self.map: for k in self.map:
self.map[k].blocked=False self.map[k].blocked=False
def set_source(self, n, value=True): def clear_source(self):
for k in self.map:
self.map[k].source=False
self.source = set()
def set_source(self, n):
if not isinstance(n, vector3d): if not isinstance(n, vector3d):
for item in n: for item in n:
self.set_source(item, value) self.set_source(item)
else: else:
self.add_map(n) self.add_map(n)
self.map[n].source=value self.map[n].source=True
self.source.add(n) self.source.add(n)
def set_target(self, n, value=True): def clear_target(self):
for k in self.map:
self.map[k].target=False
self.target = set()
def set_target(self, n):
if not isinstance(n, vector3d): if not isinstance(n, vector3d):
for item in n: for item in n:
self.set_target(item, value) self.set_target(item)
else: else:
self.add_map(n) self.add_map(n)
self.map[n].target=value self.map[n].target=True
self.target.add(n) self.target.add(n)
def add_source(self, track_list, value=True): def add_source(self, track_list):
debug.info(3, "Adding source list={0}".format(str(track_list))) debug.info(3, "Adding source list={0}".format(str(track_list)))
for n in track_list: for n in track_list:
debug.info(4, "Adding source ={0}".format(str(n))) debug.info(4, "Adding source ={0}".format(str(n)))
self.set_source(n, value) self.set_source(n)
self.set_blocked(n, False) # self.set_blocked(n, False)
def add_target(self, track_list, value=True): def add_target(self, track_list):
debug.info(3, "Adding target list={0}".format(str(track_list))) debug.info(3, "Adding target list={0}".format(str(track_list)))
for n in track_list: for n in track_list:
debug.info(4, "Adding target ={0}".format(str(n))) debug.info(4, "Adding target ={0}".format(str(n)))
self.set_target(n, value) self.set_target(n)
self.set_blocked(n, False) # self.set_blocked(n, False)
def add_perimeter_target(self, side="all", value=True): def add_perimeter_target(self, side="all"):
debug.info(3, "Adding perimeter target") debug.info(3, "Adding perimeter target")
perimeter_list = []
# Add the left/right columns # Add the left/right columns
if side=="all" or side=="left": if side=="all" or side=="left":
x = self.ll.x x = self.ll.x
for y in range(self.ll.y, self.ur.y, 1): for y in range(self.ll.y, self.ur.y, 1):
n = vector3d(x, y, 0) perimeter_list.append(vector3d(x, y, 0))
self.set_target(n, value) perimeter_list.append(vector3d(x, y, 1))
self.set_blocked(n, False)
n = vector3d(x, y, 1)
self.set_target(n, value)
self.set_blocked(n, False)
if side=="all" or side=="right": if side=="all" or side=="right":
x = self.ur.x x = self.ur.x
for y in range(self.ll.y, self.ur.y, 1): for y in range(self.ll.y, self.ur.y, 1):
n = vector3d(x, y, 0) perimeter_list.append(vector3d(x, y, 0))
self.set_target(n, value) perimeter_list.append(vector3d(x, y, 1))
self.set_blocked(n, False)
n = vector3d(x, y, 1)
self.set_target(n, value)
self.set_blocked(n, False)
if side=="all" or side=="bottom": if side=="all" or side=="bottom":
y = self.ll.y y = self.ll.y
for x in range(self.ll.x, self.ur.x, 1): for x in range(self.ll.x, self.ur.x, 1):
n = vector3d(x, y, 0) perimeter_list.append(vector3d(x, y, 0))
self.set_target(n, value) perimeter_list.append(vector3d(x, y, 1))
self.set_blocked(n, False)
n = vector3d(x, y, 1)
self.set_target(n, value)
self.set_blocked(n, False)
if side=="all" or side=="top": if side=="all" or side=="top":
y = self.ur.y y = self.ur.y
for x in range(self.ll.x, self.ur.x, 1): for x in range(self.ll.x, self.ur.x, 1):
n = vector3d(x, y, 0) perimeter_list.append(vector3d(x, y, 0))
self.set_target(n, value) perimeter_list.append(vector3d(x, y, 1))
self.set_blocked(n, False)
n = vector3d(x, y, 1) self.set_target(perimeter_list)
self.set_target(n, value)
self.set_blocked(n, False)
def is_target(self, point): def is_target(self, point):
""" """