[Bf-extensions-cvs] [79d158f] master: [TextureAtlas] small refactoring

mifth noreply at git.blender.org
Thu Jun 19 12:13:50 CEST 2014


Commit: 79d158f49f6a11b569e97d86506d0562dd60c886
Author: mifth
Date:   Thu Jun 19 14:13:46 2014 +0400
https://developer.blender.org/rBA79d158f49f6a11b569e97d86506d0562dd60c886

[TextureAtlas] small refactoring

===================================================================

M	uv_texture_atlas.py

===================================================================

diff --git a/uv_texture_atlas.py b/uv_texture_atlas.py
index df630ca..afbfd31 100644
--- a/uv_texture_atlas.py
+++ b/uv_texture_atlas.py
@@ -187,19 +187,21 @@ class TexAtl_RunStart(Operator):
         if bpy.ops.object.mode_set.poll():
             bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
 
-        if group.bake is True and bpy.data.groups[group.name].objects and bpy.data.objects.get(group.name + "_mergedObject") is None:
+        if group.bake is True and bpy.data.groups[group.name].objects:
 
             # Check if objects are all on the visible Layers.
             isAllObjVisible = check_all_objects_visible(self, context)
 
-            if isAllObjVisible is True:
+            if bpy.data.objects.get(group.name + "_mergedObject") is not None:
+                self.report({'INFO'}, "Old Merged Object Exists!!!")
+            elif isAllObjVisible is False:
+                self.report({'INFO'}, "Not All Objects Are Visible!!!")
+            else:
                 res = int(group.resolution)
                 bpy.ops.object.ms_create_lightmap(
                     group_name=group.name, resolution=res)
                 bpy.ops.object.ms_merge_objects(
                     group_name=group.name, unwrap=False)
-            else:
-                self.report({'INFO'}, "Not All Objects Are Visible!!!")
 
         context.area.type = old_context
 
@@ -551,11 +553,11 @@ class TexAtl_MergeObjects(Operator):
 
         # objToDelete = None
         bpy.ops.object.select_all(action='DESELECT')
-        for obj in scene.objects:
-            if obj.name == self.group_name + "_mergedObject":
-                obj.select = True
-                scene.objects.active = obj
-                bpy.ops.object.delete(use_global=False)
+        ob_merged_old = bpy.data.objects.get(self.group_name + "_mergedObject")
+        if ob_merged_old is not None:
+            ob_merged_old.select = True
+            scene.objects.active = ob_merged_old
+            bpy.ops.object.delete(use_global=True)
 
         me = bpy.data.meshes.new(self.group_name + '_mergedObject')
         ob_merge = bpy.data.objects.new(self.group_name + '_mergedObject', me)
@@ -615,7 +617,7 @@ class TexAtl_MergeObjects(Operator):
             vgroup.add(
                 list(range(len(activeNowObject.data.vertices))), weight=1.0, type='ADD')
 
-            # save object name and object location in merged object
+            # save object name in merged object
             item = ob_merge.ms_merged_objects.add()
             item.name = object.name
 
@@ -675,73 +677,72 @@ class TexAtl_SeparateObjects(Operator):
     def execute(self, context):
         scene = context.scene
 
-        for obj in scene.objects:
-            if obj.name == self.group_name + "_mergedObject":
+        ob_merged = bpy.data.objects.get(self.group_name + "_mergedObject")
+        if ob_merged is not None:
 
-                # if scene.objects.active is not None:
-                    # bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+            # if scene.objects.active is not None:
+                # bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+            bpy.ops.object.select_all(action='DESELECT')
+            ob_merged.hide = False
+            ob_merged.select = True
+            groupSeparate = bpy.data.groups.new(ob_merged.name)
+            groupSeparate.objects.link(ob_merged)
+            ob_merged.select = False
+
+            doUnhidePolygons = False
+            for ms_obj in ob_merged.ms_merged_objects:
+                # select vertex groups and separate group from merged
+                # object
                 bpy.ops.object.select_all(action='DESELECT')
-                ob_merged = obj
-                obj.hide = False
                 ob_merged.select = True
-                groupSeparate = bpy.data.groups.new(ob_merged.name)
-                groupSeparate.objects.link(ob_merged)
-                ob_merged.select = False
-
-                doUnhidePolygons = False
-                for ms_obj in ob_merged.ms_merged_objects:
-                    # select vertex groups and separate group from merged
-                    # object
-                    bpy.ops.object.select_all(action='DESELECT')
-                    ob_merged.select = True
-                    scene.objects.active = ob_merged
-
-                    bpy.ops.object.mode_set(mode='EDIT')
-                    if doUnhidePolygons is False:
-                        # Unhide Polygons only once
-                        bpy.ops.mesh.reveal()
-                        doUnhidePolygons = True
-
-                    bpy.ops.mesh.select_all(action='DESELECT')
-                    ob_merged.vertex_groups.active_index = ob_merged.vertex_groups[
-                        ms_obj.name].index
-                    bpy.ops.object.vertex_group_select()
-                    bpy.ops.mesh.separate(type='SELECTED')
-                    bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
-                    # scene.objects.active.select = False
-
-                    # find separeted object
-                    ob_separeted = None
-                    for obj in groupSeparate.objects:
-                        if obj != ob_merged:
-                            ob_separeted = obj
-                            break
-
-                    # Copy UV Coordinates to the original mesh
-                    if ms_obj.name in scene.objects:
-                        ob_merged.select = False
-                        ob_original = scene.objects[ms_obj.name]
-                        isOriginalToSelect = ob_original.hide_select
-                        ob_original.hide_select = False
-                        ob_original.hide = False
-                        ob_original.select = True
-                        scene.objects.active = ob_separeted
-                        bpy.ops.object.join_uvs()
-                        ob_original.hide_render = False
-                        ob_original.select = False
-                        ob_original.hide_select = isOriginalToSelect
-                        ob_original.data.update()
-
-                    # delete separeted object
-                    bpy.ops.object.select_all(action='DESELECT')
-                    ob_separeted.select = True
-                    bpy.ops.object.delete(use_global=False)
-
-                # delete duplicated object
+                scene.objects.active = ob_merged
+
+                bpy.ops.object.mode_set(mode='EDIT')
+                if doUnhidePolygons is False:
+                    # Unhide Polygons only once
+                    bpy.ops.mesh.reveal()
+                    doUnhidePolygons = True
+
+                bpy.ops.mesh.select_all(action='DESELECT')
+                ob_merged.vertex_groups.active_index = ob_merged.vertex_groups[
+                    ms_obj.name].index
+                bpy.ops.object.vertex_group_select()
+                bpy.ops.mesh.separate(type='SELECTED')
+                bpy.ops.object.mode_set(mode='OBJECT', toggle=False)
+                # scene.objects.active.select = False
+
+                # find separeted object
+                ob_separeted = None
+                for obj in groupSeparate.objects:
+                    if obj != ob_merged:
+                        ob_separeted = obj
+                        break
+
+                # Copy UV Coordinates to the original mesh
+                if ms_obj.name in scene.objects:
+                    ob_merged.select = False
+                    ob_original = scene.objects[ms_obj.name]
+                    isOriginalToSelect = ob_original.hide_select
+                    ob_original.hide_select = False
+                    ob_original.hide = False
+                    ob_original.select = True
+                    scene.objects.active = ob_separeted
+                    bpy.ops.object.join_uvs()
+                    ob_original.hide_render = False
+                    ob_original.select = False
+                    ob_original.hide_select = isOriginalToSelect
+                    ob_original.data.update()
+
+                # delete separeted object
                 bpy.ops.object.select_all(action='DESELECT')
-                ob_merged.select = True
+                ob_separeted.select = True
                 bpy.ops.object.delete(use_global=False)
 
+            # delete duplicated object
+            bpy.ops.object.select_all(action='DESELECT')
+            ob_merged.select = True
+            bpy.ops.object.delete(use_global=False)
+
         return{'FINISHED'}



More information about the Bf-extensions-cvs mailing list