Esempio n. 1
0
	def build( self, projContext ):
		( dx0, dy0, dx1,dy1 ) = self.getDeckRect()
		# w = dx1 - dx0
		# h = dy1 - dy0
		w = self.w
		h = self.h
		
		ox, oy, oz = self.getDeckOffset()
		localGuideTopFace = self.h - ( self.alt - oy )
		oy = oy + oz
		oz = - oz
		# print self.fullName, w, h, '|', ox, oy, oz, '|', localGuideTopFace
		#build mesh
		#format: x,y,z/ u,v /color
		if localGuideTopFace < h:
			x0 = 0
			y0 = 0
			z0 = 0
			x1 = w
			y1 = h - localGuideTopFace
			z1 = 0
			u0 = float(x0) / w
			v0 = float(y0) / h
			u1 = float(x1) / w
			v1 = float(y1) / h
			quadFront = {
				'verts' : [
					[ x0 + ox, y0 +oy, z0 + oz ], 
					[ x1 + ox, y0 +oy, z0 + oz ], 
					[ x1 + ox, y1 +oy, z1 + oz ], 
					[ x0 + ox, y1 +oy, z1 + oz ]
				],
				'uv' : [
					[ u0,v0 ],
					[ u1,v0 ],
					[ u1,v1 ],
					[ u0,v1 ],
				]
			}
			self.meshes.append( quadFront )

		if localGuideTopFace > 0:
			x0 = 0
			y0 = h - localGuideTopFace
			z0 = 0
			x1 = w
			y1 = h
			z1 = -( y1 - y0 )
			u0 = float(x0) / w
			v0 = float(y0) / h
			u1 = float(x1) / w
			v1 = float(y1) / h
			quadTop = {
				'verts' : [
					[ x0 + ox, y0 + oy, z0 + oz ], 
					[ x1 + ox, y0 + oy, z0 + oz ], 
					[ x1 + ox, y1 + oy, z1 + oz ], 
					[ x0 + ox, y1 + oy, z1 + oz ]
				],
				'uv' : [
					[ u0,v0 ],
					[ u1,v0 ],
					[ u1,v1 ],
					[ u0,v1 ],
				]
			}
			self.meshes.append( quadTop )
		normalOption = {
			'guide-top-face' : localGuideTopFace
		}
		self.imgNormal = makeNormalMap( self.getTextureMap(), normalOption )
Esempio n. 2
0
	def build( self, projContext ):
		foldMode = 'auto'
		if self.options['floor']:
			foldMode = 'floor'
		elif self.options['wall']:
			foldMode = 'wall'

		( w, h ) = self.getSize()
		( x, y ) = self.getOffset()

		localGuideTopFace = h
		if foldMode == 'auto':
			guideTopFace = projContext.get( 'guide-top-face', 0 )
			localGuideTopFace = clamp( guideTopFace - y, 0, h )
		elif foldMode == 'wall':
			localGuideTopFace = 0
		elif foldMode == 'floor':
			localGuideTopFace = h

		img = DeckPartImg ( '', w, h, (0, 0, w, h) )	
		img.node = None
		img.src = self
		self.imgInfo = img
		#build normal
		tex = self.getTextureMap()
		normalOption = {
			'guide-top-face' : localGuideTopFace
		}
		self.imgNormal = makeNormalMap( tex, normalOption )
		self.guideTopFace = localGuideTopFace

		#build mesh
		#format: x,y,z/ u,v /color
		if localGuideTopFace < h:
			x0 = 0
			y0 = 0
			z0 = 0
			x1 = w
			y1 = h - localGuideTopFace
			z1 = 0
			u0 = float(x0) / w
			v0 = float(y0) / h
			u1 = float(x1) / w
			v1 = float(y1) / h
			quadFront = {
				'verts' : [
					[ x0,y0,z0 ], 
					[ x1,y0,z0 ], 
					[ x1,y1,z1 ], 
					[ x0,y1,z1 ]
				],
				'uv' : [
					[ u0,v0 ],
					[ u1,v0 ],
					[ u1,v1 ],
					[ u0,v1 ],
				]
			}
			self.meshes.append( quadFront )

		if localGuideTopFace > 0:
			x0 = 0
			y0 = h - localGuideTopFace
			z0 = 0
			x1 = w
			y1 = h
			z1 = -( y1 - y0 )
			u0 = float(x0) / w
			v0 = float(y0) / h
			u1 = float(x1) / w
			v1 = float(y1) / h
			quadTop = {
				'verts' : [
					[ x0,y0,z0 ], 
					[ x1,y0,z0 ], 
					[ x1,y1,z1 ], 
					[ x0,y1,z1 ]
				],
				'uv' : [
					[ u0,v0 ],
					[ u1,v0 ],
					[ u1,v1 ],
					[ u0,v1 ],
				]
			}
			self.meshes.append( quadTop )
Esempio n. 3
0
	def onBuild( self, project ):
		foldMode = self.foldMode
		concave  = False
		
		( w, h ) = self.getSize()
		( x, y ) = self.getOffset()
		(rectOffX, rectOffY, rectOffZ) = self.rectOffset

		localGuideTopFace = h
		if foldMode == 'auto':
			concave = False
			guideTopFace = project.getOption( 'global-guide-top-face', 0 )
			localGuideTopFace = clamp( guideTopFace - y, 0, h )

		elif foldMode == 'fold':
			foldPos = self.foldPos
			if foldPos < 0: 
				concave = True
				localGuideTopFace = clamp( - foldPos , 0, h )
			else:
				concave = False
				localGuideTopFace = clamp( h - foldPos , 0, h )

		elif foldMode == 'wall':
			concave = False
			localGuideTopFace = 0

		elif foldMode == 'floor':
			concave = False
			localGuideTopFace = h

		img = DeckPartImg ( '', w, h, (0, 0, w, h) )	
		img.node = None
		img.src = self
		self.imgInfo = img

		#build normal
		px0, py0, px1, py1 = self.parentItem.aabb
		offx = self.getLeft() - px0
		offy = self.getTop()  - py0
		tex = self.getTextureMap()
		normalOption = {
			'guide-top-face'      : localGuideTopFace,
			'concave'             : concave,
			'height_guide'        : self.parentItem.heightGuideImage,
			'height_guide_offset' : ( offx, offy ),
			'height_guide_opacity': 1.0
		}
		self.imgNormal    = makeNormalMap( tex, normalOption )
		self.guideTopFace = localGuideTopFace

		#build mesh
		#format: x,y,z/ u,v /color
		if concave:
			if localGuideTopFace < h: #TOP
				x0 = 0 + rectOffX
				y0 = 0 + rectOffY
				z0 = 0 + rectOffZ
				x1 = w + rectOffX
				y1 = h - localGuideTopFace + rectOffY
				z1 = -( y1 - y0 ) + rectOffZ
				u0 = float(x0) / w
				v0 = float(y0) / h
				u1 = float(x1) / w
				v1 = float(y1) / h
				quadWall = {
					'verts' : [
						[ x0,y0,z0 ], 
						[ x1,y0,z0 ], 
						[ x1,y1,z1 ], 
						[ x0,y1,z1 ]
					],
					'uv' : [
						[ u0,v0 ],
						[ u1,v0 ],
						[ u1,v1 ],
						[ u0,v1 ],
					]
				}
				self.meshes.append( quadWall )

			if localGuideTopFace > 0: #WALL
				x0 = 0 + rectOffX
				y0 = h - localGuideTopFace + rectOffY
				z0 = -y0 + rectOffZ
				x1 = w + rectOffX
				y1 = h + rectOffY
				z1 = -y0 + rectOffZ
				u0 = float(x0) / w
				v0 = float(y0) / h
				u1 = float(x1) / w
				v1 = float(y1) / h
				quadTop = {
					'verts' : [
						[ x0,y0,z0 ], 
						[ x1,y0,z0 ], 
						[ x1,y1,z1 ], 
						[ x0,y1,z1 ]
					],
					'uv' : [
						[ u0,v0 ],
						[ u1,v0 ],
						[ u1,v1 ],
						[ u0,v1 ],
					]
				}
				self.meshes.append( quadTop )

		else:
			if localGuideTopFace < h: #WALL
				x0 = 0 + rectOffX
				y0 = 0 + rectOffY
				z0 = 0 + rectOffZ
				x1 = w + rectOffX
				y1 = h - localGuideTopFace + rectOffY
				z1 = 0 + rectOffZ
				u0 = float(x0) / w
				v0 = float(y0) / h
				u1 = float(x1) / w
				v1 = float(y1) / h
				quadWall = {
					'verts' : [
						[ x0,y0,z0 ], 
						[ x1,y0,z0 ], 
						[ x1,y1,z1 ], 
						[ x0,y1,z1 ]
					],
					'uv' : [
						[ u0,v0 ],
						[ u1,v0 ],
						[ u1,v1 ],
						[ u0,v1 ],
					]
				}
				self.meshes.append( quadWall )

			if localGuideTopFace > 0: #TOP
				x0 = 0 + rectOffX
				y0 = h - localGuideTopFace + rectOffY
				z0 = 0 + rectOffZ
				x1 = w + rectOffX
				y1 = h + rectOffY
				z1 = -( y1 - y0 ) + rectOffZ
				u0 = float(x0) / w
				v0 = float(y0) / h
				u1 = float(x1) / w
				v1 = float(y1) / h
				quadTop = {
					'verts' : [
						[ x0,y0,z0 ], 
						[ x1,y0,z0 ], 
						[ x1,y1,z1 ], 
						[ x0,y1,z1 ]
					],
					'uv' : [
						[ u0,v0 ],
						[ u1,v0 ],
						[ u1,v1 ],
						[ u0,v1 ],
					]
				}
				self.meshes.append( quadTop )
Esempio n. 4
0
    def onBuild(self, project):
        foldMode = self.foldMode
        concave = False

        (w, h) = self.getSize()
        (x, y) = self.getOffset()
        (rectOffX, rectOffY, rectOffZ) = self.rectOffset

        localGuideTopFace = h
        if foldMode == 'auto':
            concave = False
            guideTopFace = project.getOption('global-guide-top-face', 0)
            localGuideTopFace = clamp(guideTopFace - y, 0, h)

        elif foldMode == 'fold':
            foldPos = self.foldPos
            if foldPos < 0:
                concave = True
                localGuideTopFace = clamp(-foldPos, 0, h)
            else:
                concave = False
                localGuideTopFace = clamp(h - foldPos, 0, h)

        elif foldMode == 'wall':
            concave = False
            localGuideTopFace = 0

        elif foldMode == 'floor':
            concave = False
            localGuideTopFace = h

        img = DeckPartImg('', w, h, (0, 0, w, h))
        img.node = None
        img.src = self
        self.imgInfo = img

        #build normal
        px0, py0, px1, py1 = self.parentItem.aabb
        offx = self.getLeft() - px0
        offy = self.getTop() - py0
        tex = self.getTextureMap()
        normalOption = {
            'guide-top-face': localGuideTopFace,
            'concave': concave,
            'height_guide': self.parentItem.heightGuideImage,
            'height_guide_offset': (offx, offy),
            'height_guide_opacity': 1.0
        }
        self.imgNormal = makeNormalMap(tex, normalOption)
        self.guideTopFace = localGuideTopFace

        #build mesh
        #format: x,y,z/ u,v /color
        hh = h - localGuideTopFace
        if concave:
            if localGuideTopFace < h:  #TOP
                x0 = 0 + rectOffX
                y0 = 0 + rectOffY
                z0 = 0 + rectOffZ
                x1 = w + rectOffX
                # y1 = h - localGuideTopFace + rectOffY
                # z1 = -( y1 - y0 ) + rectOffZ
                y1 = y0
                z1 = -hh + rectOffZ
                u0 = 0
                v0 = 0
                u1 = 1
                v1 = float(hh) / h
                quadWall = {
                    'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                              [x0, y1, z1]],
                    'uv': [
                        [u0, v0],
                        [u1, v0],
                        [u1, v1],
                        [u0, v1],
                    ]
                }
                self.meshes.append(quadWall)

            if localGuideTopFace > 0:  #WALL
                x0 = 0 + rectOffX
                y0 = 0 + rectOffY
                z0 = -hh + rectOffZ
                # y0 = h - localGuideTopFace + rectOffY
                # z0 = -y0 + rectOffZ
                x1 = w + rectOffX
                y1 = localGuideTopFace + rectOffY
                z1 = z0
                # y1 = h + rectOffY
                # z1 = -y0 + rectOffZ
                u0 = 0
                v0 = 1
                u1 = 1
                v1 = float(hh) / h
                quadTop = {
                    'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                              [x0, y1, z1]],
                    'uv': [
                        [u0, v0],
                        [u1, v0],
                        [u1, v1],
                        [u0, v1],
                    ]
                }
                self.meshes.append(quadTop)

        else:
            if localGuideTopFace < h:  #WALL
                x0 = 0 + rectOffX
                y0 = 0 + rectOffY
                z0 = 0 + rectOffZ
                x1 = w + rectOffX
                y1 = hh + rectOffY
                z1 = 0 + rectOffZ
                u0 = 0
                v0 = 0
                u1 = 1
                v1 = float(hh) / h
                quadWall = {
                    'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                              [x0, y1, z1]],
                    'uv': [
                        [u0, v0],
                        [u1, v0],
                        [u1, v1],
                        [u0, v1],
                    ]
                }
                self.meshes.append(quadWall)

            if localGuideTopFace > 0:  #TOP
                x0 = 0 + rectOffX
                y0 = hh + rectOffY
                z0 = 0 + rectOffZ
                x1 = w + rectOffX
                # y1 = h + rectOffY
                # z1 = -( y1 - y0 ) + rectOffZ
                y1 = y0
                z1 = z0 - localGuideTopFace
                u0 = 0
                v0 = float(hh) / h
                u1 = 1
                v1 = 1
                quadTop = {
                    'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                              [x0, y1, z1]],
                    'uv': [
                        [u0, v0],
                        [u1, v0],
                        [u1, v1],
                        [u0, v1],
                    ]
                }
                self.meshes.append(quadTop)
Esempio n. 5
0
    def build(self, projContext):
        (dx0, dy0, dx1, dy1) = self.getDeckRect()
        # w = dx1 - dx0
        # h = dy1 - dy0
        w = self.w
        h = self.h

        ox, oy, oz = self.getDeckOffset()
        localGuideTopFace = self.h - (self.alt - oy)
        oy = oy + oz
        oz = -oz
        # print self.fullName, w, h, '|', ox, oy, oz, '|', localGuideTopFace
        #build mesh
        #format: x,y,z/ u,v /color
        if localGuideTopFace < h:
            x0 = 0
            y0 = 0
            z0 = 0
            x1 = w
            y1 = h - localGuideTopFace
            z1 = 0
            u0 = float(x0) / w
            v0 = float(y0) / h
            u1 = float(x1) / w
            v1 = float(y1) / h
            quadFront = {
                'verts': [[x0 + ox, y0 + oy, z0 + oz],
                          [x1 + ox, y0 + oy, z0 + oz],
                          [x1 + ox, y1 + oy, z1 + oz],
                          [x0 + ox, y1 + oy, z1 + oz]],
                'uv': [
                    [u0, v0],
                    [u1, v0],
                    [u1, v1],
                    [u0, v1],
                ]
            }
            self.meshes.append(quadFront)

        if localGuideTopFace > 0:
            x0 = 0
            y0 = h - localGuideTopFace
            z0 = 0
            x1 = w
            y1 = h
            z1 = -(y1 - y0)
            u0 = float(x0) / w
            v0 = float(y0) / h
            u1 = float(x1) / w
            v1 = float(y1) / h
            quadTop = {
                'verts': [[x0 + ox, y0 + oy, z0 + oz],
                          [x1 + ox, y0 + oy, z0 + oz],
                          [x1 + ox, y1 + oy, z1 + oz],
                          [x0 + ox, y1 + oy, z1 + oz]],
                'uv': [
                    [u0, v0],
                    [u1, v0],
                    [u1, v1],
                    [u0, v1],
                ]
            }
            self.meshes.append(quadTop)
        normalOption = {'guide-top-face': localGuideTopFace}
        self.imgNormal = makeNormalMap(self.getTextureMap(), normalOption)
Esempio n. 6
0
    def build(self, projContext):
        foldMode = 'auto'
        if self.options['floor']:
            foldMode = 'floor'
        elif self.options['wall']:
            foldMode = 'wall'

        (w, h) = self.getSize()
        (x, y) = self.getOffset()

        localGuideTopFace = h
        if foldMode == 'auto':
            guideTopFace = projContext.get('guide-top-face', 0)
            localGuideTopFace = clamp(guideTopFace - y, 0, h)
        elif foldMode == 'wall':
            localGuideTopFace = 0
        elif foldMode == 'floor':
            localGuideTopFace = h

        img = DeckPartImg('', w, h, (0, 0, w, h))
        img.node = None
        img.src = self
        self.imgInfo = img
        #build normal
        tex = self.getTextureMap()
        normalOption = {'guide-top-face': localGuideTopFace}
        self.imgNormal = makeNormalMap(tex, normalOption)
        self.guideTopFace = localGuideTopFace

        #build mesh
        #format: x,y,z/ u,v /color
        if localGuideTopFace < h:
            x0 = 0
            y0 = 0
            z0 = 0
            x1 = w
            y1 = h - localGuideTopFace
            z1 = 0
            u0 = float(x0) / w
            v0 = float(y0) / h
            u1 = float(x1) / w
            v1 = float(y1) / h
            quadFront = {
                'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                          [x0, y1, z1]],
                'uv': [
                    [u0, v0],
                    [u1, v0],
                    [u1, v1],
                    [u0, v1],
                ]
            }
            self.meshes.append(quadFront)

        if localGuideTopFace > 0:
            x0 = 0
            y0 = h - localGuideTopFace
            z0 = 0
            x1 = w
            y1 = h
            z1 = -(y1 - y0)
            u0 = float(x0) / w
            v0 = float(y0) / h
            u1 = float(x1) / w
            v1 = float(y1) / h
            quadTop = {
                'verts': [[x0, y0, z0], [x1, y0, z0], [x1, y1, z1],
                          [x0, y1, z1]],
                'uv': [
                    [u0, v0],
                    [u1, v0],
                    [u1, v1],
                    [u0, v1],
                ]
            }
            self.meshes.append(quadTop)