Example #1
0
from base import pContext
from . import Area


class GuiRoom:
    
    def draw(self, context, layout):
        o = context.scene.objects.active
        layout.prop(o, "name")
        layout.operator("prk.set_material_from_texture")
        layout.operator("prk.extruded_add")


class Room(Area):
    type = "room"
    name = "Room"


pContext.register(Room, GuiRoom)
Example #2
0
                break
            loop = vert.link_loops[1] if vert.link_loops[
                0] == loop else vert.link_loops[0]
            if loop == _loop:
                break
            e1 = e2
        setBmesh(o, bm)

    def getInitialLoop(self, bm):
        # find the first occurrence of a number in the names of vertex groups
        for g in self.obj.vertex_groups:
            g = g.name
            if g.isdigit():
                break
        # getting bottom <vb> and top <vt> vertices
        vb, vt = getVertsForVertexGroup(self.obj, bm, g)
        if vb.co.z > vt.co.z:
            vb, vt = vt, vb
        if len(vb.link_loops) == 1:
            # <vb> and <vt> are located at an open end of the finish
            loop1 = vb.link_loops[0]
        else:  # len(vb.link_loops) == 2
            loop1, loop2 = vb.link_loops
            # ensure that loop1 goes horizontally
            if loop1.link_loop_next.vert == vt:
                loop1 = loop2
        return loop1


pContext.register(FinFlat, GuiFinish)
Example #3
0
from item.opening import Opening
from gui.workshop import common


class GuiDoor:
    
    itemName = "door"
    
    def draw(self, context, layout):
        layout.label("A door")
        
    def draw_workshop(self, context, layout):
        common(context, layout, self)
        
        layout.separator()
        layout.label("Handle:")
        box = layout.box()
        box.label("test")


class Door(Opening):

    type = "door"
    
    name = "Door"
    
    floorToWindow = 0.


pContext.register(Door, GuiDoor)
Example #4
0
        prk = context.scene.prk
        layout.prop(prk, "textureWidth")
        layout.prop(prk, "textureHeight")
        


class Texture:
    """
    A proxy for Blender material made of a diffuse texture from a file
    """
    
    type = "texture"
    
    def __init__(self, createBlenderMaterial=False, **kwargs):
        if createBlenderMaterial:
            self.m = self.create(kwargs)
    
    def create(self, kwargs):
        m = loadMaterialFromFile(materialsPath, materialName)
        nodes = m.node_tree.nodes
        nodes["Image Texture"].image = bpy.data.images.load(kwargs["texturePath"])
        if "w" in kwargs and "h" in kwargs:
            n = nodes["Mapping"]
            n.scale.x = 1./kwargs["w"]
            n.scale.y = 1./kwargs["h"]
        nodes["UV Map"].uv_map = defaultUvMap
        return m


pContext.register(Texture, GuiTexture)
Example #5
0
                # reached the opposite end (end if the finish sequence isn't a closed sequence)
                break
            loop = vert.link_loops[1] if vert.link_loops[0] == loop else vert.link_loops[0]
            if loop == _loop:
                break
            e1 = e2
        setBmesh(o, bm)
    
    def getInitialLoop(self, bm):
        # find the first occurrence of a number in the names of vertex groups
        for g in self.obj.vertex_groups:
            g = g.name
            if g.isdigit():
                break
        # getting bottom <vb> and top <vt> vertices
        vb, vt = getVertsForVertexGroup(self.obj, bm, g)
        if vb.co.z > vt.co.z:
            vb, vt = vt, vb
        if len(vb.link_loops) == 1:
            # <vb> and <vt> are located at an open end of the finish
            loop1 = vb.link_loops[0]
        else: # len(vb.link_loops) == 2
            loop1, loop2 = vb.link_loops
            # ensure that loop1 goes horizontally
            if loop1.link_loop_next.vert == vt:
                loop1 = loop2
        return loop1
    

pContext.register(FinFlat, GuiFinish)
Example #6
0
from item.opening import Opening
from gui.workshop import common


class GuiDoor:

    itemName = "door"

    def draw(self, context, layout):
        layout.label("A door")

    def draw_workshop(self, context, layout):
        common(context, layout, self)

        layout.separator()
        layout.label("Handle:")
        box = layout.box()
        box.label("test")


class Door(Opening):

    type = "door"

    name = "Door"

    floorToWindow = 0.


pContext.register(Door, GuiDoor)
Example #7
0
        return
    def lookup(parent):
        for o in parent.children:
            if o.type == "MESH" and o.data.shape_keys:
                keyBlock = o.data.shape_keys.key_blocks.get("frame_width")
                if keyBlock:
                    keyBlock.value = value/shapeKeyOffset
            if o.children:
                lookup(o) 
    # perform lookup starting from <o>
    lookup(o)


def getFrameWidth(self):
    keyBlock = None
    def lookup(parent):
        for o in parent.children:
            if o.type == "MESH" and o.data.shape_keys:
                keyBlock = o.data.shape_keys.key_blocks.get("frame_width")
                if keyBlock:
                    return keyBlock
            if o.children:
                return lookup(o) 
    # Get the first encountered Blender MESH with the shape key <frame_width>,
    # perform lookup starting from <o> for that
    keyBlock = lookup(bpy.context.object)
    return shapeKeyOffset * keyBlock.value if keyBlock else 0.


pContext.register(Window, GuiWindow)
Example #8
0
            if o.type == "MESH" and o.data.shape_keys:
                keyBlock = o.data.shape_keys.key_blocks.get("frame_width")
                if keyBlock:
                    keyBlock.value = value / shapeKeyOffset
            if o.children:
                lookup(o)

    # perform lookup starting from <o>
    lookup(o)


def getFrameWidth(self):
    keyBlock = None

    def lookup(parent):
        for o in parent.children:
            if o.type == "MESH" and o.data.shape_keys:
                keyBlock = o.data.shape_keys.key_blocks.get("frame_width")
                if keyBlock:
                    return keyBlock
            if o.children:
                return lookup(o)

    # Get the first encountered Blender MESH with the shape key <frame_width>,
    # perform lookup starting from <o> for that
    keyBlock = lookup(bpy.context.object)
    return shapeKeyOffset * keyBlock.value if keyBlock else 0.


pContext.register(Window, GuiWindow)
Example #9
0
        prk = context.scene.prk
        layout.prop(prk, "textureWidth")
        layout.prop(prk, "textureHeight")


class Texture:
    """
    A proxy for Blender material made of a diffuse texture from a file
    """

    type = "texture"

    def __init__(self, createBlenderMaterial=False, **kwargs):
        if createBlenderMaterial:
            self.m = self.create(kwargs)

    def create(self, kwargs):
        m = loadMaterialFromFile(materialsPath, materialName)
        nodes = m.node_tree.nodes
        nodes["Image Texture"].image = bpy.data.images.load(
            kwargs["texturePath"])
        if "w" in kwargs and "h" in kwargs:
            n = nodes["Mapping"]
            n.scale.x = 1. / kwargs["w"]
            n.scale.y = 1. / kwargs["h"]
        nodes["UV Map"].uv_map = defaultUvMap
        return m


pContext.register(Texture, GuiTexture)