Grid: finalizing shift(), adding shift_zero()

This commit is contained in:
Stefan Harmuth 2022-12-24 06:12:44 +01:00
parent 5bae00234c
commit 9963a21821

View File

@ -292,15 +292,24 @@ class Grid:
else:
raise NotImplementedError(mode)
def shift(self, shift_x: int = None, shift_y: int = None):
self.minX, self.minY = self.minX + shift_x, self.minY + shift_y
self.maxX, self.maxY = self.maxX + shift_x, self.maxY + shift_y
def shift(self, shift_x: int = 0, shift_y: int = 0, shift_z: int = 0):
self.minX, self.minY, self.minZ = self.minX + shift_x, self.minY + shift_y, self.minZ + shift_z
self.maxX, self.maxY, self.minZ = self.maxX + shift_x, self.maxY + shift_y, self.minZ + shift_z
coords = self.__grid
self.__grid = {}
for c, v in coords.items():
nc = Coordinate(c.x + shift_x, c.y + shift_y)
if self.mode3D:
nc = Coordinate(c.x + shift_x, c.y + shift_y, c.z + shift_z)
else:
nc = Coordinate(c.x + shift_x, c.y + shift_y)
self.set(nc, v)
def shift_zero(self, recalc: bool = True):
# self.shift() to (0, 0, 0) being top, left, front
if recalc:
self.recalcBoundaries()
self.shift(0 - self.minX, 0 - self.minY, 0 - self.minZ)
def getPath_BFS(self, pos_from: Coordinate, pos_to: Coordinate, includeDiagonal: bool, walls: List[Any] = None,
stop_at_first: Any = None) -> Union[None, List[Coordinate]]:
queue = deque()