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:
authorNutti <nutti.metro@gmail.com>2018-02-16 15:04:36 +0300
committerNutti <nutti.metro@gmail.com>2018-02-16 15:04:36 +0300
commitfdc914d653d4cf9e8c6ad5ea3d71fdefb9529491 (patch)
treef06d9e4b851a39c62ee8d4308a3587211df23bfa /uv_magic_uv/muv_fliprot_ops.py
parentbfab29085ca84ad74125aa18a26a0025a1e09ace (diff)
Magic UV: Release v5.0
* Add features - Align UV Cursor - UV Cursor Location - Align UV - Smooth UV - UV Inspection - Select UV - Texture Wrap - UV Sculpt * Improve features - Copy/Paste UV: Add menu to UV/Image Editor - World Scale UV: Add information about Texel Density - UV Bounding Box: Add option "Bound" - Texture Projection: Add option "Assign UVMap" - UVW: Add option "Assign UVMap" * Improve UI * Fixed bugs * Optimization/Refactoring
Diffstat (limited to 'uv_magic_uv/muv_fliprot_ops.py')
-rw-r--r--uv_magic_uv/muv_fliprot_ops.py127
1 files changed, 0 insertions, 127 deletions
diff --git a/uv_magic_uv/muv_fliprot_ops.py b/uv_magic_uv/muv_fliprot_ops.py
deleted file mode 100644
index 334eb14c..00000000
--- a/uv_magic_uv/muv_fliprot_ops.py
+++ /dev/null
@@ -1,127 +0,0 @@
-# <pep8-80 compliant>
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-__author__ = "Nutti <nutti.metro@gmail.com>"
-__status__ = "production"
-__version__ = "4.5"
-__date__ = "19 Nov 2017"
-
-import bpy
-import bmesh
-from bpy.props import (
- BoolProperty,
- IntProperty,
-)
-from . import muv_common
-
-
-class MUV_FlipRot(bpy.types.Operator):
- """
- Operation class: Flip and Rotate UV coordinate
- """
-
- bl_idname = "uv.muv_fliprot"
- bl_label = "Flip/Rotate UV"
- bl_description = "Flip/Rotate UV coordinate"
- bl_options = {'REGISTER', 'UNDO'}
-
- flip = BoolProperty(
- name="Flip UV",
- description="Flip UV...",
- default=False
- )
- rotate = IntProperty(
- default=0,
- name="Rotate UV",
- min=0,
- max=30
- )
- seams = BoolProperty(
- name="Seams",
- description="Seams",
- default=True
- )
-
- def execute(self, context):
- self.report({'INFO'}, "Flip/Rotate UV")
- obj = context.active_object
- bm = bmesh.from_edit_mesh(obj.data)
- if muv_common.check_version(2, 73, 0) >= 0:
- bm.faces.ensure_lookup_table()
-
- # get UV layer
- if not bm.loops.layers.uv:
- self.report({'WARNING'}, "Object must have more than one UV map")
- return {'CANCELLED'}
- uv_layer = bm.loops.layers.uv.verify()
-
- # get selected face
- dest_uvs = []
- dest_pin_uvs = []
- dest_seams = []
- dest_face_indices = []
- for face in bm.faces:
- if face.select:
- dest_face_indices.append(face.index)
- uvs = [l[uv_layer].uv.copy() for l in face.loops]
- pin_uvs = [l[uv_layer].pin_uv for l in face.loops]
- seams = [l.edge.seam for l in face.loops]
- dest_uvs.append(uvs)
- dest_pin_uvs.append(pin_uvs)
- dest_seams.append(seams)
- if not dest_uvs or not dest_pin_uvs:
- self.report({'WARNING'}, "No faces are selected")
- return {'CANCELLED'}
- self.report({'INFO'}, "%d face(s) are selected" % len(dest_uvs))
-
- # paste
- for idx, duvs, dpuvs, dss in zip(dest_face_indices, dest_uvs,
- dest_pin_uvs, dest_seams):
- duvs_fr = [uv for uv in duvs]
- dpuvs_fr = [pin_uv for pin_uv in dpuvs]
- dss_fr = [s for s in dss]
- # flip UVs
- if self.flip is True:
- duvs_fr.reverse()
- dpuvs_fr.reverse()
- dss_fr.reverse()
- # rotate UVs
- for _ in range(self.rotate):
- uv = duvs_fr.pop()
- pin_uv = dpuvs_fr.pop()
- s = dss_fr.pop()
- duvs_fr.insert(0, uv)
- dpuvs_fr.insert(0, pin_uv)
- dss_fr.insert(0, s)
- # paste UVs
- for l, duv, dpuv, ds in zip(
- bm.faces[idx].loops, duvs_fr, dpuvs_fr, dss_fr):
- l[uv_layer].uv = duv
- l[uv_layer].pin_uv = dpuv
- if self.seams is True:
- l.edge.seam = ds
-
- self.report({'INFO'}, "%d face(s) are flipped/rotated" % len(dest_uvs))
-
- bmesh.update_edit_mesh(obj.data)
- if self.seams is True:
- obj.data.show_edge_seams = True
-
- return {'FINISHED'}