caugrid.py
author Eugen Sawin <sawine@me73.com>
Thu, 30 Dec 2010 14:36:25 +0100
changeset 4 20edf3e369a2
child 5 dd036093fc09
permissions -rw-r--r--
Better circle approximation rule.
     1 class Grid(object):
     2 
     3 	def __init__(self):
     4 		self.cells = {}
     5 		self.minx = 0
     6 		self.maxx = 0
     7 		self.miny = 0
     8 		self.maxy = 0
     9 
    10 	def set(self, pos, value=1):
    11 		if not pos in self.cells or value != self.cells[pos]:
    12 			self.cells[pos] = value
    13 			self.update(pos)
    14 		return self
    15 
    16 	def clear(self, pos):
    17 		if pos in self.cells:
    18 			del self.cells[pos]
    19 			self.update(pos)
    20 		return self
    21 
    22 	def update(self, (x, y)):
    23 		self.minx = min(x, self.minx)
    24 		self.maxx = max(x, self.maxx)
    25 		self.miny = min(y, self.miny)
    26 		self.maxy = max(y, self.maxy)
    27 		return self
    28 
    29 	def width(self):
    30 		return self.maxx - self.minx + 1
    31 
    32 	def height(self):
    33 		return self.maxy - self.miny + 1
    34 
    35 	def __len__(self):
    36 		return len(self.cells)
    37 
    38 	def __str__(self):
    39 		pass