From b042647b68abdc82490ca6e059993b8eba28904c Mon Sep 17 00:00:00 2001 From: Russell Cohen Date: Wed, 24 Nov 2010 01:09:12 -0500 Subject: Refactoring complete! Made modules/packages as appropriate. Finally. --- layouts/LineLayout.py | 5 +++++ layouts/ZigzagLayout.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ layouts/__init__.py | 0 3 files changed, 50 insertions(+) create mode 100644 layouts/LineLayout.py create mode 100644 layouts/ZigzagLayout.py create mode 100644 layouts/__init__.py (limited to 'layouts') diff --git a/layouts/LineLayout.py b/layouts/LineLayout.py new file mode 100644 index 0000000..3a8b747 --- /dev/null +++ b/layouts/LineLayout.py @@ -0,0 +1,5 @@ +from operationscore.LayoutEngine import * +#Simple layout class that simply makes a line of LEDs +class LineLayout(LayoutEngine): + def layoutFunc(self, lastLocation): + return (lastLocation[0]+self.argDict['spacing'], lastLocation[1]) diff --git a/layouts/ZigzagLayout.py b/layouts/ZigzagLayout.py new file mode 100644 index 0000000..26b27d8 --- /dev/null +++ b/layouts/ZigzagLayout.py @@ -0,0 +1,45 @@ +from operationscore.LayoutEngine import * +import pdb +#Slightly more complex layout class that makes a zig-Zag Led Pattern +#Inheriting classes must specify zigLength, the length in lights of a of a zig +#and zig Axis, the direction of the long X axis (X or Y). +#EG: zig length = 4, zig Axis = X would give: +# X-X-X-X +# | +# X-X-X-X +# | +# X-X-X-X etc. +class ZigzagLayout(LayoutEngine): + def initLayout(self): + if not 'zigLength' in self.argDict: + raise Exception('zigLength must be defined in argDict') + if not 'zigAxis' in self.argDict: + raise Exception('zigAxis must be defined in argDict') + if not 'xDirection' in self.argDict: + self.argDict['xDirection'] = 1 #right + if not 'yDirection' in self.argDict: + self.argDict['yDirection'] = 1 #down + def layoutFunc(self, lastLocation): + if not 'buildQueue' in self.argDict: + self.argDict['buildQueue'] = self.argDict['zigLength'] + + newLoc = list(lastLocation) + if self.argDict['buildQueue'] > 1: + if self.argDict['zigAxis'] == 'X': + newLoc[0] += self.argDict['spacing'] * self.argDict['xDirection'] + else: + newLoc[1] += self.argDict['spacing'] * self.argDict['yDirection'] + self.argDict['buildQueue'] -= 1 + else: + self.argDict['buildQueue'] = self.argDict['zigLength'] + if self.argDict['zigAxis'] == 'X': + newLoc[1] += self.argDict['spacing'] * self.argDict['yDirection'] + else: + newLoc[0] += self.argDict['spacing'] * self.argDict['xDirection'] + if self.argDict['zigAxis'] == 'X': + self.argDict['xDirection'] *= -1 + else: + self.argDict['yDirection'] *= -1 + return newLoc + + diff --git a/layouts/__init__.py b/layouts/__init__.py new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3