Grid.range[XYZ]: make ranges reverable

This commit is contained in:
Stefan Harmuth 2021-12-25 06:48:17 +01:00
parent 709b0f471b
commit 5bf2ec1c47

View File

@ -51,15 +51,24 @@ class Grid:
self.minZ = min(pos.z, self.minZ) self.minZ = min(pos.z, self.minZ)
self.maxZ = max(pos.z, self.maxZ) self.maxZ = max(pos.z, self.maxZ)
def rangeX(self, pad: int = 0): def rangeX(self, pad: int = 0, reverse=False):
if reverse:
return range(self.maxX + pad, self.minX - pad - 1, -1)
else:
return range(self.minX - pad, self.maxX + pad + 1) return range(self.minX - pad, self.maxX + pad + 1)
def rangeY(self, pad: int = 0): def rangeY(self, pad: int = 0, reverse=False):
if reverse:
return range(self.maxY + pad, self.minY - pad - 1, -1)
else:
return range(self.minY - pad, self.maxY + pad + 1) return range(self.minY - pad, self.maxY + pad + 1)
def rangeZ(self, pad: int = 0): def rangeZ(self, pad: int = 0, reverse=False):
if not self.mode3D: if not self.mode3D:
raise ValueError("rangeZ not available in 2D space") raise ValueError("rangeZ not available in 2D space")
if reverse:
return range(self.maxZ + pad, self.minZ - pad - 1, -1)
else:
return range(self.minZ - pad, self.maxZ + pad + 1) return range(self.minZ - pad, self.maxZ + pad + 1)
def toggle(self, pos: Coordinate): def toggle(self, pos: Coordinate):