aboutsummaryrefslogtreecommitdiff
path: root/operationscore/PixelAssembler.py
blob: 582b59d06a285e54ebb0422d90e18f6792c537e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from operationscore.SmootCoreObject import *
import util.Geo as Geo
import pdb
class PixelAssembler(SmootCoreObject):
    def init(self):
        self.validateArgs('PixelAssembler.params')
        self.initLayout()
    def layoutFunc(self, lastLocation): #Must be defined by inheriting class.
        #Returns tuple pair (x,y)
        pass
    def getPixelLocations(self): #returns a complete list of locations of Pixels
        #for a strip
        locations = [self.argDict['originLocation']]
        for pixelIndex in range(self['numPixels']-1): #-1 because origin
            #already exists
            newLocation = self.layoutFunc(locations[-1]) 
            if newLocation == None:
                raise Exception('Location cannot be null.  layoutFunc not \
                defined or improperly defined.')
            if Geo.dist(newLocation, locations[-1]) > \
                    self['pixelToPixelSpacing']:
                        import pdb; pdb.set_trace()
                        raise Exception('Illegal pixel location.  Distance \
                        between adjacent pixels must be less than \
                        pixelToPixelSpacing.')
            locations.append(newLocation)
        if self['Reverse']:
            locations.reverse()
        return locations
    def initLayout(self):
        pass
    def getStripArgs(self): #TODO: triage and remove
        return self.argDict