[Bf-extensions-cvs] [cc56b808] master: Magic UV: Release v5.1
Nutti
noreply at git.blender.org
Sat Feb 24 03:37:34 CET 2018
Commit: cc56b808ca8338fe5d2b3ff1aba65429025cacf5
Author: Nutti
Date: Sat Feb 24 11:37:05 2018 +0900
Branches: master
https://developer.blender.org/rBAcc56b808ca8338fe5d2b3ff1aba65429025cacf5
Magic UV: Release v5.1
Fixed bugs
===================================================================
M uv_magic_uv/__init__.py
M uv_magic_uv/common.py
M uv_magic_uv/op/__init__.py
M uv_magic_uv/op/align_uv.py
M uv_magic_uv/op/align_uv_cursor.py
M uv_magic_uv/op/copy_paste_uv.py
M uv_magic_uv/op/copy_paste_uv_object.py
M uv_magic_uv/op/copy_paste_uv_uvedit.py
M uv_magic_uv/op/flip_rotate_uv.py
M uv_magic_uv/op/mirror_uv.py
M uv_magic_uv/op/move_uv.py
M uv_magic_uv/op/pack_uv.py
M uv_magic_uv/op/preserve_uv_aspect.py
M uv_magic_uv/op/smooth_uv.py
M uv_magic_uv/op/texture_lock.py
M uv_magic_uv/op/texture_projection.py
M uv_magic_uv/op/texture_wrap.py
M uv_magic_uv/op/transfer_uv.py
M uv_magic_uv/op/unwrap_constraint.py
M uv_magic_uv/op/uv_bounding_box.py
M uv_magic_uv/op/uv_inspection.py
M uv_magic_uv/op/uv_sculpt.py
M uv_magic_uv/op/uvw.py
M uv_magic_uv/op/world_scale_uv.py
M uv_magic_uv/preferences.py
M uv_magic_uv/properites.py
M uv_magic_uv/ui/__init__.py
M uv_magic_uv/ui/uvedit_copy_paste_uv.py
M uv_magic_uv/ui/uvedit_editor_enhance.py
M uv_magic_uv/ui/uvedit_uv_manipulation.py
M uv_magic_uv/ui/view3d_copy_paste_uv_editmode.py
M uv_magic_uv/ui/view3d_copy_paste_uv_objectmode.py
M uv_magic_uv/ui/view3d_uv_manipulation.py
M uv_magic_uv/ui/view3d_uv_mapping.py
===================================================================
diff --git a/uv_magic_uv/__init__.py b/uv_magic_uv/__init__.py
index 97f8bb79..080d2414 100644
--- a/uv_magic_uv/__init__.py
+++ b/uv_magic_uv/__init__.py
@@ -20,15 +20,15 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
bl_info = {
"name": "Magic UV",
"author": "Nutti, Mifth, Jace Priester, kgeogeo, mem, imdjs"
"Keith (Wahooney) Boshoff, McBuff, MaxRobinot, Alexander Milovsky",
- "version": (5, 0, 0),
+ "version": (5, 1, 0),
"blender": (2, 79, 0),
"location": "See Add-ons Preferences",
"description": "UV Toolset. See Add-ons Preferences for details",
diff --git a/uv_magic_uv/common.py b/uv_magic_uv/common.py
index dc8876a0..6d3d9df7 100644
--- a/uv_magic_uv/common.py
+++ b/uv_magic_uv/common.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
from collections import defaultdict
from pprint import pprint
@@ -295,11 +295,23 @@ def measure_uv_area(obj):
for f in sel_faces:
uvs = [l[uv_layer].uv for l in f.loops]
f_uv_area = calc_polygon_2d_area(uvs)
- if tex_layer:
- img = f[tex_layer].image
- if not img:
- return None
- uv_area = uv_area + f_uv_area * img.size[0] * img.size[1]
+
+ if not tex_layer:
+ return None
+ img = f[tex_layer].image
+ # not found, try to search from node
+ if not img:
+ for mat in obj.material_slots:
+ for node in mat.material.node_tree.nodes:
+ tex_node_types = [
+ 'TEX_ENVIRONMENT',
+ 'TEX_IMAGE',
+ ]
+ if (node.type in tex_node_types) and node.image:
+ img = node.image
+ if not img:
+ return None
+ uv_area = uv_area + f_uv_area * img.size[0] * img.size[1]
return uv_area
@@ -565,7 +577,7 @@ def __get_loop_sequence_internal(uv_layer, pairs, island_info, closed):
return loop_sequences, ""
-def get_loop_sequences(bm, uv_layer):
+def get_loop_sequences(bm, uv_layer, closed=False):
sel_faces = [f for f in bm.faces if f.select]
# get candidate loops
@@ -581,11 +593,11 @@ def get_loop_sequences(bm, uv_layer):
first_loop = cand_loops[0]
isl_info = get_island_info_from_bmesh(bm, False)
loop_pairs = __get_loop_pairs(first_loop, uv_layer)
- loop_pairs, err = __sort_loop_pairs(uv_layer, loop_pairs, False)
+ loop_pairs, err = __sort_loop_pairs(uv_layer, loop_pairs, closed)
if not loop_pairs:
return None, err
loop_seqs, err = __get_loop_sequence_internal(uv_layer, loop_pairs,
- isl_info, False)
+ isl_info, closed)
if not loop_seqs:
return None, err
diff --git a/uv_magic_uv/op/__init__.py b/uv_magic_uv/op/__init__.py
index 0b93c96a..75885ef6 100644
--- a/uv_magic_uv/op/__init__.py
+++ b/uv_magic_uv/op/__init__.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
if "bpy" in locals():
import importlib
diff --git a/uv_magic_uv/op/align_uv.py b/uv_magic_uv/op/align_uv.py
index f90f02ff..dcfb57c3 100644
--- a/uv_magic_uv/op/align_uv.py
+++ b/uv_magic_uv/op/align_uv.py
@@ -20,8 +20,8 @@
__author__ = "imdjs, Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import math
from math import atan2, tan, sin, cos
@@ -34,33 +34,6 @@ from bpy.props import EnumProperty, BoolProperty
from .. import common
-def get_closed_loop_sequences(bm, uv_layer):
- sel_faces = [f for f in bm.faces if f.select]
-
- # get candidate loops
- cand_loops = []
- for f in sel_faces:
- for l in f.loops:
- if l[uv_layer].select:
- cand_loops.append(l)
-
- if len(cand_loops) < 2:
- return None, "More than 2 UVs must be selected"
-
- first_loop = cand_loops[0]
- isl_info = common.get_island_info_from_bmesh(bm, False)
- loop_pairs = common.get_loop_pairs(first_loop, uv_layer)
- loop_pairs, err = common.sort_loop_pairs(uv_layer, loop_pairs, True)
- if not loop_pairs:
- return None, err
- loop_seqs, err = common.get_loop_sequence_internal(uv_layer, loop_pairs,
- isl_info, True)
- if not loop_seqs:
- return None, err
-
- return loop_seqs, ""
-
-
# get sum vertex length of loop sequences
def get_loop_vert_len(loops):
length = 0
@@ -143,7 +116,7 @@ class MUV_AUVCircle(bpy.types.Operator):
uv_layer = bm.loops.layers.uv.verify()
# loop_seqs[horizontal][vertical][loop]
- loop_seqs, error = get_closed_loop_sequences(bm, uv_layer)
+ loop_seqs, error = common.get_loop_sequences(bm, uv_layer, True)
if not loop_seqs:
self.report({'WARNING'}, error)
return {'CANCELLED'}
diff --git a/uv_magic_uv/op/align_uv_cursor.py b/uv_magic_uv/op/align_uv_cursor.py
index b33dc68e..cae1c89a 100644
--- a/uv_magic_uv/op/align_uv_cursor.py
+++ b/uv_magic_uv/op/align_uv_cursor.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
from mathutils import Vector
diff --git a/uv_magic_uv/op/copy_paste_uv.py b/uv_magic_uv/op/copy_paste_uv.py
index 3aac3f6d..ee89b5e9 100644
--- a/uv_magic_uv/op/copy_paste_uv.py
+++ b/uv_magic_uv/op/copy_paste_uv.py
@@ -20,8 +20,8 @@
__author__ = "imdjs, Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import math
from math import atan2, sin, cos
diff --git a/uv_magic_uv/op/copy_paste_uv_object.py b/uv_magic_uv/op/copy_paste_uv_object.py
index eb42d99a..d80ee415 100644
--- a/uv_magic_uv/op/copy_paste_uv_object.py
+++ b/uv_magic_uv/op/copy_paste_uv_object.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
import bmesh
diff --git a/uv_magic_uv/op/copy_paste_uv_uvedit.py b/uv_magic_uv/op/copy_paste_uv_uvedit.py
index 5b64505e..96908020 100644
--- a/uv_magic_uv/op/copy_paste_uv_uvedit.py
+++ b/uv_magic_uv/op/copy_paste_uv_uvedit.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>, Jace Priester"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import math
from math import atan2, sin, cos
diff --git a/uv_magic_uv/op/flip_rotate_uv.py b/uv_magic_uv/op/flip_rotate_uv.py
index 907c77c4..30f6b0f7 100644
--- a/uv_magic_uv/op/flip_rotate_uv.py
+++ b/uv_magic_uv/op/flip_rotate_uv.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
import bmesh
diff --git a/uv_magic_uv/op/mirror_uv.py b/uv_magic_uv/op/mirror_uv.py
index d1014c73..f4849d18 100644
--- a/uv_magic_uv/op/mirror_uv.py
+++ b/uv_magic_uv/op/mirror_uv.py
@@ -20,8 +20,8 @@
__author__ = "Keith (Wahooney) Boshoff, Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
from bpy.props import (
diff --git a/uv_magic_uv/op/move_uv.py b/uv_magic_uv/op/move_uv.py
index e0ac418f..6382376c 100644
--- a/uv_magic_uv/op/move_uv.py
+++ b/uv_magic_uv/op/move_uv.py
@@ -20,8 +20,8 @@
__author__ = "kgeogeo, mem, Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
import bmesh
diff --git a/uv_magic_uv/op/pack_uv.py b/uv_magic_uv/op/pack_uv.py
index 692fa93e..a780af3e 100644
--- a/uv_magic_uv/op/pack_uv.py
+++ b/uv_magic_uv/op/pack_uv.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
from math import fabs
diff --git a/uv_magic_uv/op/preserve_uv_aspect.py b/uv_magic_uv/op/preserve_uv_aspect.py
index 9838aec6..bc2f1b81 100644
--- a/uv_magic_uv/op/preserve_uv_aspect.py
+++ b/uv_magic_uv/op/preserve_uv_aspect.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
import bmesh
diff --git a/uv_magic_uv/op/smooth_uv.py b/uv_magic_uv/op/smooth_uv.py
index 6a120d08..aa9b22c0 100644
--- a/uv_magic_uv/op/smooth_uv.py
+++ b/uv_magic_uv/op/smooth_uv.py
@@ -20,8 +20,8 @@
__author__ = "imdjs, Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import bpy
import bmesh
diff --git a/uv_magic_uv/op/texture_lock.py b/uv_magic_uv/op/texture_lock.py
index b0be3534..d6c56f5a 100644
--- a/uv_magic_uv/op/texture_lock.py
+++ b/uv_magic_uv/op/texture_lock.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.com>"
__status__ = "production"
-__version__ = "5.0"
-__date__ = "16 Feb 2018"
+__version__ = "5.1"
+__date__ = "24 Feb 2018"
import math
from math import atan2, cos, sqrt, sin, fabs
diff --git a/uv_magic_uv/op/texture_projection.py b/uv_magic_uv/op/texture_projection.py
index 9c2dc521..77a81aa0 100644
--- a/uv_magic_uv/op/texture_projection.py
+++ b/uv_magic_uv/op/texture_projection.py
@@ -20,8 +20,8 @@
__author__ = "Nutti <nutti.metro at gmail.co
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list