Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Leger <stephen@3dservices.ch>2017-08-01 04:48:42 +0300
committerStephen Leger <stephen@3dservices.ch>2017-08-01 04:51:01 +0300
commit45cad6756f10eb708d1a17dae4a70723accc1928 (patch)
tree48e189c5e9053f6c72547ebf425fbbd4966ef840 /archipack/archipack_door.py
parent15ce79c680dd63e5d54cc8ec28ad2c4d87a813ac (diff)
archipack: update to 1.2.8 add roof and freeform floors
Diffstat (limited to 'archipack/archipack_door.py')
-rw-r--r--archipack/archipack_door.py52
1 files changed, 38 insertions, 14 deletions
diff --git a/archipack/archipack_door.py b/archipack/archipack_door.py
index f29c44d1..ffc1e4c4 100644
--- a/archipack/archipack_door.py
+++ b/archipack/archipack_door.py
@@ -37,7 +37,6 @@ from mathutils import Vector
# door component objects (panels, handles ..)
from .bmesh_utils import BmeshEdit as bmed
from .panel import Panel as DoorPanel
-from .materialutils import MaterialUtils
from .archipack_handle import create_handle, door_handle_horizontal_01
from .archipack_manipulator import Manipulable
from .archipack_preset import ArchipackPreset, PresetMenuOperator
@@ -549,7 +548,7 @@ class archipack_door_panel(ArchipackObject, PropertyGroup):
if handle is None:
m = bpy.data.meshes.new("Handle")
handle = create_handle(context, o, m)
- MaterialUtils.add_handle_materials(handle)
+
verts, faces = door_handle_horizontal_01(self.direction, 1)
b_verts, b_faces = door_handle_horizontal_01(self.direction, 0, offset=len(verts))
b_verts = [(v[0], v[1] - self.y, v[2]) for v in b_verts]
@@ -698,6 +697,9 @@ class ARCHIPACK_OT_door_panel(Operator):
),
default='BOTH'
)
+ material = StringProperty(
+ default=""
+ )
def draw(self, context):
layout = self.layout
@@ -736,8 +738,11 @@ class ARCHIPACK_OT_door_panel(Operator):
o.lock_scale[2] = True
o.select = True
context.scene.objects.active = o
+ m = o.archipack_material.add()
+ m.category = "door"
+ m.material = self.material
d.update(context)
- MaterialUtils.add_door_materials(o)
+ # MaterialUtils.add_door_materials(o)
o.lock_rotation[0] = True
o.lock_rotation[1] = True
return o
@@ -1049,8 +1054,14 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
if n_childs < 1:
# create one door panel
- bpy.ops.archipack.door_panel(x=self.x, z=self.z, door_y=self.door_y,
- n_panels=self.n_panels, direction=self.direction)
+ bpy.ops.archipack.door_panel(
+ x=self.x,
+ z=self.z,
+ door_y=self.door_y,
+ n_panels=self.n_panels,
+ direction=self.direction,
+ material=o.archipack_material[0].material
+ )
child = context.active_object
child.parent = o
child.matrix_world = o.matrix_world.copy()
@@ -1062,9 +1073,16 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
if self.n_panels == 2 and n_childs < 2:
# create 2nth door panel
- bpy.ops.archipack.door_panel(x=self.x, z=self.z, door_y=self.door_y,
- n_panels=self.n_panels, direction=1 - self.direction)
+ bpy.ops.archipack.door_panel(
+ x=self.x,
+ z=self.z,
+ door_y=self.door_y,
+ n_panels=self.n_panels,
+ direction=1 - self.direction,
+ material=o.archipack_material[0].material
+ )
child = context.active_object
+
child.parent = o
child.matrix_world = o.matrix_world.copy()
location = self.x / 2 + BATTUE - SPACING
@@ -1123,7 +1141,9 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
p.lock_scale[2] = True
p.parent = linked
p.matrix_world = linked.matrix_world.copy()
- p.location = child.location.copy()
+ m = p.archipack_material.add()
+ m.category = 'door'
+ m.material = o.archipack_material[0].material
else:
p = l_childs[order[i]]
@@ -1135,7 +1155,7 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
if handle is not None:
if h is None:
h = create_handle(context, p, handle.data)
- MaterialUtils.add_handle_materials(h)
+ # MaterialUtils.add_handle_materials(h)
h.location = handle.location.copy()
elif h is not None:
context.scene.objects.unlink(h)
@@ -1223,7 +1243,8 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
panels_distrib=self.panels_distrib,
panels_x=self.panels_x,
panels_y=self.panels_y,
- handle=handle
+ handle=handle,
+ material=o.archipack_material[0].material
)
child = context.active_object
# parenting at 0, 0, 0 before set object matrix_world
@@ -1297,7 +1318,11 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
hole_obj['archipack_hole'] = True
hole_obj.parent = o
hole_obj.matrix_world = o.matrix_world.copy()
- MaterialUtils.add_wall2_materials(hole_obj)
+
+ hole_obj.data.materials.clear()
+ for mat in o.data.materials:
+ hole_obj.data.materials.append(mat)
+
hole = self.hole
v = Vector((0, 0, 0))
offset = Vector((0, -0.001, 0))
@@ -1324,7 +1349,7 @@ class archipack_door(ArchipackObject, Manipulable, PropertyGroup):
matids = hole.mat(16, 0, 1, path_type='RECTANGLE')
uvs = hole.uv(16, v, v, size, v, 0, 0, 0, 0, path_type='RECTANGLE')
bmed.buildmesh(context, o, verts, faces, matids=matids, uvs=uvs)
- MaterialUtils.add_wall2_materials(o)
+
o.select = True
context.scene.objects.active = o
return o
@@ -1534,8 +1559,8 @@ class ARCHIPACK_OT_door(ArchipackCreateTool, Operator):
context.scene.objects.link(o)
o.select = True
context.scene.objects.active = o
- self.load_preset(d)
self.add_material(o)
+ self.load_preset(d)
o.select = True
context.scene.objects.active = o
return o
@@ -1811,7 +1836,6 @@ class ARCHIPACK_OT_door_preset(ArchipackPreset, Operator):
@property
def blacklist(self):
- # 'x', 'y', 'z', 'direction',
return ['manipulators']