From c5428a4ea5e4d3d801049601d605fe0af9e67a2c Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Sun, 14 Aug 2022 12:32:37 +0200 Subject: [PATCH] keep a more accurate track of boundaries --- tools/grid.py | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/tools/grid.py b/tools/grid.py index 91be2bd..7a5863b 100644 --- a/tools/grid.py +++ b/tools/grid.py @@ -34,22 +34,29 @@ class Grid: def __init__(self, default=False): self.__default = default self.__grid = {} - self.minX = 0 - self.minY = 0 - self.maxX = 0 - self.maxY = 0 - self.minZ = 0 - self.maxZ = 0 + self.minX = None + self.minY = None + self.maxX = None + self.maxY = None + self.minZ = None + self.maxZ = None self.mode3D = False def __trackBoundaries(self, pos: Coordinate): - self.minX = pos.x if pos.x < self.minX else self.minX - self.minY = pos.y if pos.y < self.minY else self.minY - self.maxX = pos.x if pos.x > self.maxX else self.maxX - self.maxY = pos.y if pos.y > self.maxY else self.maxY + if self.minX is None: + self.minX, self.maxX, self.minY, self.maxY = pos.x, pos.x, pos.y, pos.y + else: + self.minX = pos.x if pos.x < self.minX else self.minX + self.minY = pos.y if pos.y < self.minY else self.minY + self.maxX = pos.x if pos.x > self.maxX else self.maxX + self.maxY = pos.y if pos.y > self.maxY else self.maxY + if self.mode3D: - self.minZ = pos.z if pos.z < self.minZ else self.minZ - self.maxZ = pos.z if pos.z > self.maxZ else self.maxZ + if self.minZ is None: + self.minZ = self.maxZ = pos.z + else: + self.minZ = pos.z if pos.z < self.minZ else self.minZ + self.maxZ = pos.z if pos.z > self.maxZ else self.maxZ def rangeX(self, pad: int = 0, reverse=False): if reverse: