Beispiel #1
0
	def __init__( self, parentItem, psdLayer ):
		super( MQuadDeckPart, self ).__init__( psdLayer )
		self.parentItem = parentItem
		self.meshes = []
		self.globalMeshes = []
		layerName = psdLayer.name
		meta = parseMetaTag( layerName )
		if meta:
			tags = meta[ 'tags' ]
		else:
			tags = {}

		self.foldMode = 'auto'
		self.altOffset = 0

		if tags.has_key( 'FOLD' ):
			self.foldMode = 'fold'
			args = tags[ 'FOLD' ]
			self.foldPos  = getArrayI( args, 0, 0 )
		
		elif tags.has_key( 'FLOOR' ):
			self.foldMode = 'floor'

		elif tags.has_key( 'WALL' ):
			self.foldMode = 'wall'

		if tags.has_key( 'OFF' ):
			args = tags[ 'OFF' ]
			self.rectOffset = ( getArrayI( args, 0, 0 ), getArrayI( args, 1, 0 ), getArrayI( args, 2, 0 ) )
		else:
			self.rectOffset = ( 0,0,0 )
Beispiel #2
0
    def __init__(self, parentItem, psdLayer):
        super(MQuadDeckPart, self).__init__(psdLayer)
        self.parentItem = parentItem
        self.meshes = []
        self.globalMeshes = []
        layerName = psdLayer.name
        meta = parseMetaTag(layerName)
        if meta:
            tags = meta['tags']
        else:
            tags = {}

        self.foldMode = 'auto'
        self.altOffset = 0

        if tags.has_key('FOLD'):
            self.foldMode = 'fold'
            args = tags['FOLD']
            self.foldPos = getArrayI(args, 0, 0)

        elif tags.has_key('FLOOR') or tags.has_key('F'):
            self.foldMode = 'floor'

        elif tags.has_key('WALL') or tags.has_key('W'):
            self.foldMode = 'wall'

        if tags.has_key('OFF'):
            args = tags['OFF']
            self.rectOffset = (getArrayI(args, 0, 0), getArrayI(args, 1, 0),
                               getArrayI(args, 2, 0))
        else:
            self.rectOffset = (0, 0, 0)
Beispiel #3
0
	def __init__( self, project, psdLayer ):
		super( DeckPartMQuad, self ).__init__( project, psdLayer )
		self.meshes = []
		self.globalMeshes = []		
		#parameter
		layerName = self.rawName
		metaInfo = parseMetaTag( layerName )
		print( metaInfo )
		self.options[ 'floor' ] = (':FLOOR' in layerName)
		self.options[ 'wall'  ] = (':WALL' in layerName)
		self.options[ 'fold'  ] = ('')
Beispiel #4
0
 def __init__(self, project, psdLayer):
     super(DeckPartMQuad, self).__init__(project, psdLayer)
     self.meshes = []
     self.globalMeshes = []
     #parameter
     layerName = self.rawName
     metaInfo = parseMetaTag(layerName)
     print(metaInfo)
     self.options['floor'] = (':FLOOR' in layerName)
     self.options['wall'] = (':WALL' in layerName)
     self.options['fold'] = ('')
Beispiel #5
0
	def processLayer( self, layer ):
		metaInfo = parseMetaTag( layer.name )
		if not metaInfo:
			#invalid name, skip
			logging.warning( 'invalid psd deck layer name:' + layer.name )
			return False

		for processor in self.processors:
			if processor.acceptLayer( layer, metaInfo ):
				processor.processLayer( layer, metaInfo )
				return True
		return False
Beispiel #6
0
	def processLayer( self, layer ):
		metaInfo = parseMetaTag( layer.name )
		if not metaInfo:
			#invalid name, skip
			logging.warning( 'invalid psd deck layer name:' + layer.name )
			return False

		for processor in self.processors:
			if processor.acceptLayer( layer, metaInfo, False ):
				processor.processLayer( layer, metaInfo )
				return True
		if self.defaultProcessor:
			if self.defaultProcessor.acceptLayer( layer, metaInfo, True ):
				self.defaultProcessor.processLayer( layer, metaInfo )
				return True
		return False
Beispiel #7
0
	def __init__( self, name, partLayers ):
		meta = parseMetaTag( name )
		if meta:
			self.name = meta['name']
		else:
			self.name = name
		self.rawName = name
		self.parts = []
		self.heightGuides = []
		self.heightGuideImage = None
		for layer in partLayers:
			layerName = layer.name.encode( 'utf-8' )
			if layerName.startswith( '//' ): continue
			if layerName.startswith( '@' ) :
				if layerName.startswith( '@hmap' ):
					#normal guide
					self.heightGuides.append( layer )
				continue
			part = self.createPart( layer )
			self.parts.append( part )
Beispiel #8
0
 def __init__(self, name, partLayers):
     meta = parseMetaTag(name)
     if meta:
         self.name = meta['name']
     else:
         self.name = name
     self.rawName = name
     self.parts = []
     self.heightGuides = []
     self.heightGuideImage = None
     for layer in partLayers:
         layerName = layer.name.encode('utf-8')
         if layerName.startswith('//'): continue
         if layerName.startswith('@'):
             if layerName.startswith('@hmap'):
                 #normal guide
                 self.heightGuides.append(layer)
             continue
         part = self.createPart(layer)
         self.parts.append(part)
Beispiel #9
0
	def loadPSD( self, path ):
		image = PSDImage.load( path )
		#root layers
		for layer in image.layers:
			if not isinstance( layer, Group ):
				layerName = layer.name.encode( 'utf-8' )
				if layerName == '@guide-top-face':
					x1,y1,x2,y2 = layer.bbox
					self.globalGuideTopFace = y1

		for layer in image.layers:
			layerName = layer.name.encode( 'utf-8' )
			if layerName.startswith( '//' ): continue
			if isinstance( layer, Group ):
				mo = re.match( r'\s*([\w\-\._]+)(\s*:\s*(.*))?\s*', layerName )
				if mo:
					name, profix = mo.group(1), mo.group(3) or self.defaultDeckProfix
					meta = parseMetaTag( layerName )
					for factory in self.deckFactories:
						deck = factory.build( self, layer, name, profix, meta )
						if deck: self.decks.append( deck )
Beispiel #10
0
    def loadPSD(self, path):
        image = PSDImage.load(path)
        #root layers
        for layer in image.layers:
            if not isinstance(layer, Group):
                layerName = layer.name.encode('utf-8')
                if layerName == '@guide-top-face':
                    x1, y1, x2, y2 = layer.bbox
                    self.globalGuideTopFace = y1

        for layer in image.layers:
            layerName = layer.name.encode('utf-8')
            if layerName.startswith('//'): continue
            if isinstance(layer, Group):
                mo = re.match(r'\s*([\w\-\._]+)(\s*:\s*(.*))?\s*', layerName)
                if mo:
                    name, profix = mo.group(
                        1), mo.group(3) or self.defaultDeckProfix
                    meta = parseMetaTag(layerName)
                    for factory in self.deckFactories:
                        deck = factory.build(self, layer, name, profix, meta)
                        if deck: self.decks.append(deck)