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:
authormifth <paulgeraskin@gmail.com>2014-06-19 14:13:46 +0400
committermifth <paulgeraskin@gmail.com>2014-06-19 14:13:46 +0400
commit79d158f49f6a11b569e97d86506d0562dd60c886 (patch)
treee8957bed15857e593d7ee874308470b1daf15cb2 /uv_texture_atlas.py
parentafb042b87dec03a558ec7c52205cbb6e0c9c2aaf (diff)
[TextureAtlas] small refactoring
Diffstat (limited to 'uv_texture_atlas.py')
-rw-r--r--uv_texture_atlas.py143
1 files changed, 72 insertions, 71 deletions
diff --git a/uv_texture_atlas.py b/uv_texture_atlas.py
index df630ca8..afbfd318 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'}