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:
authorEugenio Pignataro <info@oscurart.com.ar>2017-12-13 18:29:08 +0300
committerEugenio Pignataro <info@oscurart.com.ar>2017-12-13 18:29:08 +0300
commit36190021e9293d647aeb5171dd16e668845199e6 (patch)
tree1356996fc44c7e17b63b8f8a4f603343dea4086d /oscurart_tools
parente6b81de7e1765aa62c56c46a724d67751f321111 (diff)
New Tool: multi mesh edit
Diffstat (limited to 'oscurart_tools')
-rw-r--r--oscurart_tools/__init__.py17
-rw-r--r--oscurart_tools/oscurart_meshes.py59
2 files changed, 71 insertions, 5 deletions
diff --git a/oscurart_tools/__init__.py b/oscurart_tools/__init__.py
index 367e7475..de285c15 100644
--- a/oscurart_tools/__init__.py
+++ b/oscurart_tools/__init__.py
@@ -178,6 +178,7 @@ class OscPanelMesh(Panel):
return context.scene.oscurart.osc_mesh_tools
def draw(self, context):
+ scene = context.scene
layout = self.layout
col = layout.column(align=1)
@@ -200,10 +201,15 @@ class OscPanelMesh(Panel):
colrow.operator("mesh.uv_island_copy", icon="COPYDOWN")
colrow.operator("mesh.uv_island_paste", icon="PASTEDOWN")
colrow = col.row(align=1)
- colrow.operator("view3d.modal_operator", icon="STICKY_UVS_DISABLE")
+ colrow.operator("view3d.modal_operator", icon="STICKY_UVS_DISABLE")
colrow = col.row(align=1)
colrow.operator("lattice.mirror_selected", icon="LATTICE_DATA")
-
+ colrow = col.row(align=1)
+ colrow.label(text="Multimesh")
+ colrow.prop_search(scene, "multimeshedit", bpy.data, "groups", text="")
+ colrow = col.row(align=1)
+ colrow.operator("mesh.create_edit_multimesh", icon="IMPORT")
+ colrow.operator("mesh.apply_edit_multimesh", icon="EXPORT")
class OscPanelShapes(Panel):
bl_idname = "Oscurart Shapes Tools"
@@ -225,8 +231,8 @@ class OscPanelShapes(Panel):
col.operator("mesh.create_lmr_groups_osc", icon="GROUP_VERTEX")
col.operator("mesh.split_lr_shapes_osc", icon="SHAPEKEY_DATA")
colrow = col.row(align=1)
- colrow.operator("mesh.create_symmetrical_layout_osc", icon="SETTINGS")
- colrow.operator("mesh.create_asymmetrical_layout_osc", icon="SETTINGS")
+ colrow.operator("mesh.create_symmetrical_layout_osc", icon="IMPORT")
+ colrow.operator("mesh.create_asymmetrical_layout_osc", icon="EXPORT")
class OscPanelRender(Panel):
@@ -436,6 +442,7 @@ class OscurartToolsAddonPreferences(AddonPreferences):
def register():
+ from bpy.types import Scene
bpy.utils.register_module(__name__)
bpy.types.Scene.oscurart = PointerProperty(type=View3DOscPanel)
@@ -445,6 +452,8 @@ def register():
bpy.types.Scene.quick_animation_in = IntProperty(default=1)
bpy.types.Scene.quick_animation_out = IntProperty(default=250)
+ Scene.multimeshedit = StringProperty()
+
# SETEO VARIABLE DE ENTORNO
bpy.types.Scene.SearchAndSelectOt = StringProperty(
default="Object name initials"
diff --git a/oscurart_tools/oscurart_meshes.py b/oscurart_tools/oscurart_meshes.py
index 55181446..1b0d9d3c 100644
--- a/oscurart_tools/oscurart_meshes.py
+++ b/oscurart_tools/oscurart_meshes.py
@@ -637,4 +637,61 @@ class PasteUvIsland(Operator):
def execute(self, context):
defPasteUvsIsland(self, context)
- return {'FINISHED'} \ No newline at end of file
+ return {'FINISHED'}
+
+
+
+class createEditMultimesh(Operator):
+ """Create Edit Multi Mesh"""
+ bl_idname = "mesh.create_edit_multimesh"
+ bl_label = "Create edit multimesh"
+ bl_options = {"REGISTER", "UNDO"}
+
+
+ # creo el merge para editar
+ def execute(self,context):
+ global relvert
+ global me
+ global ob
+ temp = [[ob , [vert.co for vert in ob.data.vertices]]for ob in bpy.data.groups[bpy.context.scene.multimeshedit].objects]
+ vi = 0
+ pi = 0
+ relvert = {}
+ vertlist = []
+ polylist = []
+ for ob in temp:
+ for vert in ob[0].data.vertices:
+ #print(vert.co[:])
+ vertlist.append(vert.co+ob[0].location)
+ for poly in ob[0].data.polygons:
+ #print(poly.vertices[:])
+ polylist.append(tuple([vert+vi for vert in poly.vertices[:]]))
+ relvert[ob[0]] = {vert.index:vert.index+vi for vert in ob[0].data.vertices}
+ vi += len(ob[0].data.vertices)
+ ob[0].hide = 1
+ me = bpy.data.meshes.new("editMesh")
+ ob = bpy.data.objects.new("editMesh", me)
+ bpy.context.scene.objects.link(ob)
+ me.from_pydata(vertlist,[],polylist)
+ bpy.ops.object.select_all(action="DESELECT")
+ bpy.context.scene.objects.active = ob
+ bpy.ops.object.mode_set(mode='EDIT', toggle=False)
+ return {'FINISHED'}
+
+
+class ApplyEditMultimesh(Operator):
+ """Apply Edit Multi Mesh"""
+ bl_idname = "mesh.apply_edit_multimesh"
+ bl_label = "Apply edit multimesh"
+ bl_options = {"REGISTER", "UNDO"}
+
+ def execute(self,context):
+ bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+ for object,rv in relvert.items():
+ for source, target in rv.items():
+ object.data.vertices[source].co = me.vertices[target].co-object.location
+ object.hide = 0
+ bpy.context.scene.objects.unlink(ob)
+ return {'FINISHED'}
+
+ \ No newline at end of file