From 5de7f02a2b7bd8e79847311da834f025421726c6 Mon Sep 17 00:00:00 2001 From: dxiao Date: Sun, 13 Feb 2011 04:07:06 -0500 Subject: blah --- config/C5Sign.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/C5Sign.xml b/config/C5Sign.xml index 65a45bc..6160b11 100644 --- a/config/C5Sign.xml +++ b/config/C5Sign.xml @@ -175,12 +175,12 @@ colorchange mover - square + decay {'mover':'movebounce'} True - + gaussmap -- cgit v1.2.3 From 2f0fa768ddbcc9eb7b4637d888a89d148c5cd7bf Mon Sep 17 00:00:00 2001 From: dxiao Date: Sun, 13 Feb 2011 14:46:00 -0500 Subject: Added new C5PixelMapper, not yet complete --- pixelmappers/C5SignMapper.py | 63 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pixelmappers/C5SignMapper.py diff --git a/pixelmappers/C5SignMapper.py b/pixelmappers/C5SignMapper.py new file mode 100644 index 0000000..b310c59 --- /dev/null +++ b/pixelmappers/C5SignMapper.py @@ -0,0 +1,63 @@ +from operationscore.PixelMapper import * +import util.Geo as Geo +import sys +class C5SignMapper(PixelMapper): + """C5SignMapper is a modification to SimpleMapper which maps events to the + nearest Pixel. In addtion, it also maps sign artifacts (letters, logo, etc) + to their representative locations if given in the form "ts rs :: conditions" + It also supports strings of the form: {x}>5, {y}<10, {x}*{y}<{x}, etc. + (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)]} + + def mappingFunction(self, eventLocation, screen): + if type(eventLocation) == type(tuple()): + bestDist = sys.maxint + bestPixel = None + [x,y] = eventLocation + for (x,pixel) in screen.pixelsInRange(x-self['CutoffDist'], \ + x+self['CutoffDist']): + pixelDist = Geo.dist(pixel.location, eventLocation) + if pixelDist < bestDist: + bestPixel = pixel + bestDist = pixelDist + if bestPixel != None: + return [(bestPixel,1)] + else: + return [] + elif type(eventLocation) == type + else: + eventLocSplit = eventLocation.split(' :: ') + if len(eventLocSplit) == 2: + [signPart, eventLocation] = eventLocSplit + signParts = [signPosition[x] for x in signPart.split(' ')] + + #{x}>5,{y}