aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar dxiao <dxiao@mit.edu>2011-02-13 16:34:40 -0500
committerGravatar dxiao <dxiao@mit.edu>2011-02-13 16:34:40 -0500
commit43bf9e8b188638ca2e11f5dff691cf54902ac8dc (patch)
tree1e0971dcd76c936aced49a2ac03ecf3d1140c80e
parent938a4e8b26d79b3f1935e03bde319c6d1d42e2cd (diff)
Completed C5SignMapper, first version
-rw-r--r--pixelmappers/C5SignMapper.py95
1 files changed, 79 insertions, 16 deletions
diff --git a/pixelmappers/C5SignMapper.py b/pixelmappers/C5SignMapper.py
index b310c59..79ebe1a 100644
--- a/pixelmappers/C5SignMapper.py
+++ b/pixelmappers/C5SignMapper.py
@@ -9,16 +9,73 @@ class C5SignMapper(PixelMapper):
(Conditons, separated by commas. and and or may also be used)."""
signPosition = {
- "ls" : [(2,8), (2,14), (2,20)],
- "ts" : [(4,22), (10,22), (16,22), (22,22), (27, 22), (33, 22), (39,22),
- (44, 22)],
- "rs" : [(45,2), (45, 8), (45,14), (45,20)],
- "bs" : [(4,2), (10,2), (16,2), (22, 2), (27,2), (34,2), (39,2), (44,2)],
- "wt" : [(12,5), (13, 5), (16,5), (18,5), (21,5), (23,5), (26,5), (27,5),
- (30,5), (34,5), (37,5)],
- "cl" : [(17,8), (21,10), (24,10), (26,12), (31,12)],
- "c5" : [(6,17), (11,17), (15,17), (19,17), (22, 17), (27,17), (33,16),
- (34, 16), (38,17), (42,17)]}
+ "ls" : {
+ 'all' : [(2,2),(2,8), (2,14), (2,20)],
+ '1' : [(2,2)],
+ '2' : [(2,8)],
+ '3' : [(2,14)],
+ '4' : [(2,20)] },
+ "ts" : {
+ 'all' : [(4,22), (10,22), (16,22), (22,22), (27, 22), (33, 22), (39,22), (44, 22)],
+ '1' : [(4,22)],
+ '2' : [(10,22)],
+ '3' : [(16,22)],
+ '4' : [(22,22)],
+ '5' : [(27,22)],
+ '6' : [(33,22)],
+ '7' : [(39,22)],
+ '8' : [(44,22)] },
+ "rs" : {
+ 'all' : [(45,2), (45, 8), (45,14), (45,20)],
+ '1' : [(45,2)],
+ '2' : [(45,8)],
+ '3' : [(45,14)],
+ '4' : [(45,20)] },
+ "bs" : {
+ 'all' : [(4,2), (10,2), (16,2), (22, 2), (27,2), (34,2), (39,2), (44,2)],
+ '1' : [(4,2)],
+ '2' : [(10,2)],
+ '3' : [(16,2)],
+ '4' : [(22,2)],
+ '5' : [(27,2)],
+ '6' : [(33,2)],
+ '7' : [(39,2)],
+ '8' : [(44,2)] },
+ "wt" : {
+ 'all' : [(12,5), (13, 5), (16,5), (18,5), (21,5), (23,5), (26,5), (27,5), (30,5), (34,5), (37,5)],
+ '1' : [(12,5), (13,5)],
+ '2' : [(16,5)],
+ '3' : [(18,5)],
+ '4' : [(21,5)],
+ '5' : [(23,5)],
+ '6' : [(26,5),(27,5)],
+ '7' : [(30,5)],
+ '8' : [(34,5)],
+ '9' : [(37,5)] },
+ "cl" : {
+ 'all' : [(17,8), (21,10), (24,10), (26,12), (31,12)],
+ 'in' : [(21,10),(24,10),(26,12)],
+ 'out' : [(17,8),(31,12)],
+ '1' : [(17,8)],
+ '2' : [(21,10)],
+ '3' : [(24,10)],
+ '4' : [(26,12)],
+ '5' : [(31,12)] },
+ "c5" : {
+ 'all' : [(6,17), (11,17), (15,17), (19,17), (22, 17), (27,17), (33,16), (34, 16), (38,17), (42,17)],
+ 'con' : [(6,17), (11,17), (15,17), (19,17), (22, 17), (27,17)],
+ 'five': [(33,16), (34, 16), (38,17), (42,17)],
+ '1' : [(6,17)],
+ '2' : [(11,17)],
+ '3' : [(15,17)],
+ '4' : [(19,17)],
+ '5' : [(22,17)],
+ '6' : [(27,17)],
+ '7' : [(33,16)],
+ '8' : [(34,16)],
+ '9' : [(38,17)],
+ '10' : [(42,17)] },
+ }
def mappingFunction(self, eventLocation, screen):
if type(eventLocation) == type(tuple()):
@@ -35,19 +92,25 @@ class C5SignMapper(PixelMapper):
return [(bestPixel,1)]
else:
return []
- elif type(eventLocation) == type
else:
- eventLocSplit = eventLocation.split(' :: ')
+ #pixel locs
+ eventLocSplit = eventLocation.split('@')
if len(eventLocSplit) == 2:
- [signPart, eventLocation] = eventLocSplit
- signParts = [signPosition[x] for x in signPart.split(' ')]
+ [eventLocation, signPart] = eventLocSplit
+ signParts = signPart.split('.')
+ pixelLocs = signPosition[signParts[0]][signParts[1]]
+ screen = [p for p in screen if (p.location in pixelLocs)]
+
#{x}>5,{y}<k
ret = []
eventLocation = eventLocation.replace('{x}', 'pixel.location[0]')
eventLocation = eventLocation.replace('{y}', 'pixel.location[1]')
- conditions = eventLocation.split(',')
- conditionLambdas = [eval('lambda pixel:'+condition) for condition in conditions]
+ if len(eventLocation) > 0:
+ conditions = eventLocation.split(',')
+ conditionLambdas = [eval('lambda pixel:'+condition) for condition in conditions]
+ else:
+ conditionLambdas = []
for pixel in screen:
try:
pixelValid = True