blob: 84f3b0bc578c8272b8cd64162e15782d6413805a (
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
|
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']:
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
|